diff --git a/.gitea/workflows/build_and_test.yml b/.gitea/workflows/build_and_test.yml index fa13a3ce..668c12d6 100644 --- a/.gitea/workflows/build_and_test.yml +++ b/.gitea/workflows/build_and_test.yml @@ -174,18 +174,45 @@ jobs: python3 gitea_upload_file.py "$file" done fi - dials-test: - name: DIALS test + # Artifact-reuse probe: build jfjoch_hdf5_test once here and hand it to dials-test below, instead + # of every rocky9 processing job recompiling it from scratch (~12 min each). Once this round-trip + # is confirmed working on the PSI Gitea, the xds-* jobs can consume the same artifact the same way. + build-hdf5-test: + name: Build jfjoch_hdf5_test runs-on: jfjoch_rocky9 steps: - uses: actions/checkout@v4 - - name: Build processing test + - name: Build jfjoch_hdf5_test shell: bash run: | mkdir -p build cd build cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ${{ env.MARCH_CMAKE_FLAGS }} .. ninja -j16 jfjoch_hdf5_test + # Gitea 1.27 speaks the v4 artifact protocol, but stock actions/upload-artifact@v4 treats any + # non-github.com server as GHES and aborts with GHESNotSupportedError. The christopherhx fork + # (mirrored under gitea.psi.ch/actions) drops that check; pinning upstream @v3 also works. + - name: Upload jfjoch_hdf5_test + uses: https://gitea.psi.ch/actions/gitea-upload-artifact@v4 + with: + name: jfjoch_hdf5_test-rocky9 + path: build/tools/jfjoch_hdf5_test + retention-days: 1 + dials-test: + name: DIALS test + runs-on: jfjoch_rocky9 + needs: build-hdf5-test + steps: + - uses: actions/checkout@v4 + - name: Download jfjoch_hdf5_test + uses: https://gitea.psi.ch/actions/gitea-download-artifact@v4 + with: + name: jfjoch_hdf5_test-rocky9 + path: build/tools + # Artifacts are zipped, which discards the executable bit -- restore it before running. + - name: Restore executable bit + shell: bash + run: chmod +x build/tools/jfjoch_hdf5_test - name: Run DIALS processing on legacy format shell: bash run: |