test: Bounds regression tests (#4001) #26557
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Builds | |
on: | |
push: | |
pull_request: | |
branches: | |
- main | |
- 'release/**' | |
- 'develop/**' | |
paths-ignore: | |
- "docs/**" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
env: | |
CTEST_OUTPUT_ON_FAILURE: 1 | |
HOMEBREW_NO_INSTALL_CLEANUP: 1 | |
CCACHE_DIR: ${{ github.workspace }}/ccache | |
CCACHE_MAXSIZE: 500M | |
CCACHE_KEY_SUFFIX: r2 | |
DEPENDENCY_TAG: v5 | |
jobs: | |
linux_ubuntu: | |
runs-on: ubuntu-latest | |
container: ghcr.io/acts-project/ubuntu2404:63 | |
env: | |
INSTALL_DIR: ${{ github.workspace }}/install | |
ACTS_LOG_FAILURE_THRESHOLD: WARNING | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
lfs: true | |
- name: Set dependencies URL | |
run: echo "DEPENDENCY_URL=https://acts.web.cern.ch/ACTS/ci/ubuntu-24.04/deps.${DEPENDENCY_TAG}.tar.zst" >> $GITHUB_ENV | |
- name: Install dependencies | |
run: CI/dependencies.sh | |
- name: Restore ccache | |
uses: actions/cache/restore@v4 | |
id: ccache-restore | |
with: | |
path: ${{ env.CCACHE_DIR }} | |
key: ccache-${{ runner.os }}-${{ github.job }}-${{ env.CCACHE_KEY_SUFFIX }}-${{ github.sha }} | |
restore-keys: | | |
ccache-${{ runner.os }}-${{ github.job }}-${{ env.CCACHE_KEY_SUFFIX }}- | |
- name: Configure | |
# setting CMAKE_CXX_STANDARD=20 is a workaround for a bug in the | |
# dd4hep CMake configuration that gets triggered on recent CMake | |
# versions | |
# Need to set git user & email for patching to work (GeoModel plugin) | |
run: > | |
git config --global user.name 'CI' && | |
git config --global user.email '<>' && | |
ccache -z && | |
cmake -B build -S . | |
--preset=github-ci | |
-DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" | |
-DPython_EXECUTABLE=$(which python3) | |
-DACTS_BUILD_PLUGIN_ONNX=ON | |
- name: Build | |
run: cmake --build build | |
- name: ccache stats | |
run: ccache -s | |
- name: Save ccache | |
uses: actions/cache/save@v4 | |
if: always() | |
with: | |
path: ${{ github.workspace }}/ccache | |
key: ${{ steps.ccache-restore.outputs.cache-primary-key }} | |
- name: Unit tests | |
run: ctest --test-dir build -j$(nproc) | |
- name: Integration tests | |
run: cmake --build build --target integrationtests | |
- name: Install | |
run: cmake --build build --target install | |
- name: Package build | |
run: tar czf build.tar.gz -C build --exclude "*.o" --exclude "bin/ActsUnitTest*" --exclude "bin/ActsIntegrationTest*" . | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: acts-linux-ubuntu | |
path: build.tar.gz | |
- name: Downstream configure | |
run: > | |
cmake -B build-downstream -S Tests/DownstreamProject | |
-GNinja | |
-DCMAKE_BUILD_TYPE=Release | |
-DCMAKE_CXX_FLAGS=-Werror | |
-DCMAKE_CXX_STANDARD=20 | |
-DCMAKE_PREFIX_PATH="${INSTALL_DIR}" | |
- name: Downstream build | |
run: cmake --build build-downstream | |
- name: Downstream run | |
run: ./build-downstream/bin/ShowActsVersion | |
linux_examples_test: | |
runs-on: ubuntu-latest | |
container: ghcr.io/acts-project/ubuntu2404:63 | |
needs: [linux_ubuntu] | |
env: | |
ACTS_SEQUENCER_DISABLE_FPEMON: true | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
lfs: true | |
- name: Set dependencies URL | |
run: echo "DEPENDENCY_URL=https://acts.web.cern.ch/ACTS/ci/ubuntu-24.04/deps.${DEPENDENCY_TAG}.tar.zst" >> $GITHUB_ENV | |
- name: Install dependencies | |
run: CI/dependencies.sh | |
- uses: actions/download-artifact@v4 | |
with: | |
name: acts-linux-ubuntu | |
- name: Unpack build | |
run: mkdir build && tar xf build.tar.gz -C build | |
- name: Python level tests | |
shell: bash | |
env: | |
PYTEST_MD_REPORT: true | |
PYTEST_MD_REPORT_VERBOSE: 0 | |
PYTEST_MD_REPORT_OUTPUT: pytest.md | |
run: > | |
geant4-config --install-datasets | |
&& source build/this_acts_withdeps.sh | |
&& python3 -m pip install -r Examples/Python/tests/requirements.txt | |
&& python3 -m pip install pytest-md-report | |
&& pytest -rFsv -k "not exatrkx" -v | |
&& cat ${PYTEST_MD_REPORT_OUTPUT} >> $GITHUB_STEP_SUMMARY | |
linux_physmon: | |
runs-on: ubuntu-latest | |
container: ghcr.io/acts-project/ubuntu2404:63 | |
needs: [linux_ubuntu] | |
env: | |
ACTS_SEQUENCER_DISABLE_FPEMON: true | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
lfs: true | |
- run: apt-get update && apt-get install -y time | |
- name: Set dependencies URL | |
run: echo "DEPENDENCY_URL=https://acts.web.cern.ch/ACTS/ci/ubuntu-24.04/deps.${DEPENDENCY_TAG}.tar.zst" >> $GITHUB_ENV | |
- name: Install dependencies | |
run: CI/dependencies.sh | |
- uses: actions/download-artifact@v4 | |
with: | |
name: acts-linux-ubuntu | |
- name: Unpack build | |
run: mkdir build && tar xf build.tar.gz -C build | |
- name: Save PR number | |
if: ${{ github.event_name == 'pull_request' }} | |
run: | | |
mkdir -p physmon | |
echo ${{ github.event.number }} > physmon/pr_number | |
echo ${{ github.event.pull_request.head.sha }} > physmon/sha | |
- name: Physics performance checks | |
shell: bash | |
run: > | |
echo "::group::Dependencies" | |
&& git config --global safe.directory "$GITHUB_WORKSPACE" | |
&& python3 -m pip install histcmp==0.6.8 matplotlib | |
&& python3 -m pip install -r Examples/Scripts/requirements.txt | |
&& geant4-config --install-datasets | |
&& venv_python=$(which python3) | |
&& echo $venv_python | |
&& source build/this_acts_withdeps.sh | |
&& export PATH=$(dirname $venv_python):$PATH | |
&& echo $PATH | |
&& which python3 | |
&& echo "::endgroup::" | |
&& CI/physmon/phys_perf_mon.sh all physmon | |
- name: Post step summary | |
if: always() | |
run: cat physmon/summary.md >> $GITHUB_STEP_SUMMARY | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: physmon | |
path: physmon | |
linux_physmon_perf_report: | |
needs: [linux_physmon] | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/main' | |
steps: | |
- name: Install dependencies | |
run: pip3 install spyral-cli==1.1.2 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: physmon | |
path: physmon | |
- name: Store metrics | |
env: | |
SSH_AUTH_SOCK: /tmp/ssh_agent.sock | |
run: | | |
ssh-agent -a $SSH_AUTH_SOCK > /dev/null | |
ssh-add - <<< "${{ secrets.RUNTIME_METRIC_DEPLOY_SSH_KEY }}" | |
git config --global user.email "[email protected]" | |
git config --global user.name "GitHub Action" | |
git clone [email protected]:acts-project/runtime_metrics.git | |
spyral maxima runtime_metrics/metrics.csv physmon/memory/*.csv -e $(date +%Y-%m-%dT%H-%M-%S) -e ${GITHUB_REF_NAME} -e ${GITHUB_REF} -e ${GITHUB_SHA} | |
cd runtime_metrics | |
git add -A | |
git commit -m"update metrics" | |
git push | |
linux_ubuntu_extra: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
include: | |
- image: ubuntu2204 | |
std: 20 | |
- image: ubuntu2204_clang | |
std: 20 | |
container: ghcr.io/acts-project/${{ matrix.image }}:63 | |
env: | |
INSTALL_DIR: ${{ github.workspace }}/install | |
ACTS_LOG_FAILURE_THRESHOLD: WARNING | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
lfs: true | |
- name: Set dependencies URL | |
run: echo "DEPENDENCY_URL=https://acts.web.cern.ch/ACTS/ci/ubuntu-22.04/deps.${DEPENDENCY_TAG}.tar.zst" >> $GITHUB_ENV | |
- name: Install dependencies | |
run: CI/dependencies.sh | |
- name: Restore ccache | |
uses: actions/cache/restore@v4 | |
id: ccache-restore | |
with: | |
path: ${{ env.CCACHE_DIR }} | |
key: ccache-${{ runner.os }}-${{ github.job }}-${{ env.CCACHE_KEY_SUFFIX }}-${{ github.sha }} | |
restore-keys: | | |
ccache-${{ runner.os }}-${{ github.job }}-${{ env.CCACHE_KEY_SUFFIX }}- | |
- name: Configure | |
# setting CMAKE_CXX_STANDARD=20 is a workaround for a bug in the | |
# dd4hep CMake configuration that gets triggered on recent CMake | |
# versions | |
run: > | |
ccache -z && | |
cmake -B build -S . | |
--preset=github-ci | |
-DCMAKE_CXX_STANDARD=${{ matrix.std }} | |
-DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" | |
-DPython_EXECUTABLE=$(which python3) | |
- name: Build | |
run: cmake --build build | |
- name: ccache stats | |
run: ccache -s | |
- name: Save ccache | |
uses: actions/cache/save@v4 | |
if: always() | |
with: | |
path: ${{ github.workspace }}/ccache | |
key: ${{ steps.ccache-restore.outputs.cache-primary-key }} | |
- name: Unit tests | |
run: cmake --build build --target test | |
- name: Integration tests | |
run: cmake --build build --target integrationtests | |
- name: Install | |
run: cmake --build build --target install | |
- name: Downstream configure | |
run: > | |
cmake -B build-downstream -S Tests/DownstreamProject | |
-GNinja | |
-DCMAKE_BUILD_TYPE=Release | |
-DCMAKE_CXX_FLAGS=-Werror | |
-DCMAKE_CXX_STANDARD=${{ matrix.std }} | |
-DCMAKE_PREFIX_PATH="${INSTALL_DIR}" | |
- name: Downstream build | |
run: cmake --build build-downstream | |
- name: Downstream run | |
run: ./build-downstream/bin/ShowActsVersion | |
macos: | |
runs-on: macos-14 | |
env: | |
INSTALL_DIR: ${{ github.workspace }}/install_acts | |
ACTS_LOG_FAILURE_THRESHOLD: WARNING | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
lfs: true | |
- name: Print architecture | |
run: uname -p | |
- name: Set dependencies URL | |
run: echo "DEPENDENCY_URL=https://acts.web.cern.ch/ACTS/ci/macos-14/deps.${DEPENDENCY_TAG}.tar.zst" >> $GITHUB_ENV | |
- name: Install dependencies | |
run: > | |
brew install cmake ninja ccache xerces-c | |
&& CI/dependencies.sh | |
- name: Restore ccache | |
uses: actions/cache/restore@v4 | |
id: ccache-restore | |
with: | |
path: ${{ env.CCACHE_DIR }} | |
key: ccache-${{ runner.os }}-${{ github.job }}-${{ env.CCACHE_KEY_SUFFIX }}-${{ github.sha }} | |
restore-keys: | | |
ccache-${{ runner.os }}-${{ github.job }}-${{ env.CCACHE_KEY_SUFFIX }}- | |
- name: Configure | |
run: > | |
ccache -z | |
&& cmake -B build -S . | |
--preset=github-ci | |
-DCMAKE_PREFIX_PATH="${{ env.DEPENDENCY_DIR }}" | |
-DCMAKE_INSTALL_PREFIX="${{ env.INSTALL_DIR }}" | |
-DPython_EXECUTABLE=$(which python3) | |
- name: Build | |
run: cmake --build build | |
- name: ccache stats | |
run: ccache -s | |
- name: Save ccache | |
uses: actions/cache/save@v4 | |
if: always() | |
with: | |
path: ${{ github.workspace }}/ccache | |
key: ${{ steps.ccache-restore.outputs.cache-primary-key }} | |
- name: Unit tests | |
run: cmake --build build --target test | |
- name: Integration tests | |
run: cmake --build build --target integrationtests | |
- name: Install | |
run: cmake --build build --target install | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: acts-macos | |
path: ${{ env.INSTALL_DIR }} | |
- name: Downstream configure | |
run: > | |
cmake -B build-downstream -S Tests/DownstreamProject | |
-GNinja | |
-DCMAKE_BUILD_TYPE=Release | |
-DCMAKE_CXX_FLAGS=-Werror | |
-DCMAKE_CXX_STANDARD=20 | |
-DCMAKE_PREFIX_PATH="${INSTALL_DIR}" | |
- name: Downstream build | |
run: cmake --build build-downstream | |
- name: Downstream run | |
run: > | |
PATH="${{ env.DEPENDENCY_DIR }}/bin:$PATH" | |
&& ./build-downstream/bin/ShowActsVersion |