Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 37 additions & 7 deletions .github/workflows/root.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,58 @@
name: Execute ROOT macros
on:
push:
branches: 'main'
branches:
- 'main'
- 'self-hosted-ci'
pull_request:
workflow_dispatch:
# schedule:
# - cron: '0 2 * * *' # daily at 2am
# timezone: 'Europe/Berlin'

jobs:
root-v636:
name: ROOT 6.36
runs-on: ubuntu-latest
container: rootproject/root:6.36.00-ubuntu25.04
runs-on:
group: CPU
labels: [self-hosted]

container:
image: gitlab-registry.cern.ch/sft/docker/alma9-core:latest
options: --security-opt label=disable --rm
volumes:
- /cvmfs/sft.cern.ch:/cvmfs/sft.cern.ch:ro

steps:
- name: Check out repository
uses: actions/checkout@v5
- name: Execute ROOT macros
run: make

- name: Download assets
run: make download

- name: Run Validation Suite
run: make -j4 validate source_scripts="/cvmfs/sft.cern.ch/lcg/views/LCG_110/x86_64-el9-gcc13-opt/setup.sh"

- name: Export HTML
run: make export_html

- name: Upload produced RNTuple ROOT files
uses: actions/upload-artifact@v7
with:
name: RNTuple-ROOT
path: "write/*.root"
path: "write/**/*.root"
if-no-files-found: error
- name: Upload produced validation JSON files
uses: actions/upload-artifact@v7
with:
name: Validation-JSON
path: "read/*.json"
path: "read/**/*.json"
if-no-files-found: error

- name: Upload validation report
uses: actions/upload-artifact@v7
with:
name: validation-report
path: ${{ github.workspace }}/web/html/cross_validation_results.html
archive: false
retention-days: 30
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ User*.cxx
*.zip
*.html
!template.html
/node_modules
15 changes: 8 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -71,18 +71,19 @@ validate:

# run make read to do cross-validation
@for s_path in $(source_scripts); do \
for w_dir in write/*; do \
(bash -c "source $$s_path && ROOT_VERSION=\$$(root-config --version) && $(MAKE) read dict_dir=\$$ROOT_VERSION write_dir=$$(basename $$w_dir) read_dir=\$$ROOT_VERSION") || exit $$?; \
done; \
bash -c "source $$s_path && ROOT_VERSION=\$$(root-config --version) && \
for w_dir in write/*; do \
$(MAKE) read dict_dir=\$$ROOT_VERSION write_dir=\$$(basename \$$w_dir) read_dir=\$$ROOT_VERSION || exit \$$?; \
done" || exit $$?; \
done

.PHONY: download
download:
$(info Downloading and unpacking assets from GitHub..)
@wget -q -N -P ./assets https://github.com/root-project/rntuple-validation/releases/download/v$(ASSET_VERSION)/$(ROOT_ASSET)
@mkdir -p write && unzip -n -q -d write/$(basename $(ROOT_ASSET)) assets/$(ROOT_ASSET)
@wget -q -N -P ./assets https://github.com/root-project/rntuple-validation/releases/download/v$(ASSET_VERSION)/$(JSON_ASSET)
@mkdir -p read/$(basename $(ROOT_ASSET)) && unzip -n -q -d read/$(basename $(ROOT_ASSET))/$(basename $(JSON_ASSET)) assets/$(JSON_ASSET)
@curl -sSL --create-dirs -o ./assets/$(ROOT_ASSET) -z ./assets/$(ROOT_ASSET) https://github.com/root-project/rntuple-validation/releases/download/v$(ASSET_VERSION)/$(ROOT_ASSET)
@mkdir -p write && unzip -n -q -d write/$(basename $(ROOT_ASSET)) assets/$(basename $(ROOT_ASSET))
@curl -sSL --create-dirs -o ./assets/$(JSON_ASSET) -z ./assets/$(JSON_ASSET) https://github.com/root-project/rntuple-validation/releases/download/v$(ASSET_VERSION)/$(JSON_ASSET)
@mkdir -p read/$(basename $(ROOT_ASSET)) && unzip -n -q -d read/$(basename $(ROOT_ASSET))/$(basename $(JSON_ASSET)) assets/$(basename $(JSON_ASSET))

.PHONY: export_html
export_html:
Expand Down
Loading