From 9e11711c7e414c283e9694179b0e0d6f09ee7801 Mon Sep 17 00:00:00 2001 From: Jad Dayoub Date: Thu, 9 Jul 2026 17:03:32 +0200 Subject: [PATCH 1/3] Update GitHub Actions workflow. Self-hosted runner with Podman container --- .github/workflows/root.yml | 43 +++++++++++++++++++++++++++++++------- .gitignore | 1 + Makefile | 15 ++++++------- 3 files changed, 45 insertions(+), 14 deletions(-) diff --git a/.github/workflows/root.yml b/.github/workflows/root.yml index 9cd48a4..04069fb 100644 --- a/.github/workflows/root.yml +++ b/.github/workflows/root.yml @@ -1,28 +1,57 @@ 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: + 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 diff --git a/.gitignore b/.gitignore index b27cb43..3705bcb 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ User*.cxx *.zip *.html !template.html +/node_modules diff --git a/Makefile b/Makefile index 6bfee6e..dcfbb4f 100644 --- a/Makefile +++ b/Makefile @@ -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: From 1140fdaa08d8c713ae41277b4aec608c26b48724 Mon Sep 17 00:00:00 2001 From: Jad Dayoub Date: Fri, 24 Jul 2026 15:16:50 +0200 Subject: [PATCH 2/3] Trigger CI --- .github/workflows/root.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/root.yml b/.github/workflows/root.yml index 04069fb..b457d59 100644 --- a/.github/workflows/root.yml +++ b/.github/workflows/root.yml @@ -14,6 +14,7 @@ jobs: root-v636: name: ROOT 6.36 runs-on: + group: CPU labels: [self-hosted] container: From 290df8b3c6c2d9e1f6921bcdf259ee0cc3196897 Mon Sep 17 00:00:00 2001 From: Jad Dayoub Date: Fri, 24 Jul 2026 15:20:18 +0200 Subject: [PATCH 3/3] Trigger CI