Skip to content

Commit

Permalink
Merge branch 'acts-project:main' into explicit-core
Browse files Browse the repository at this point in the history
  • Loading branch information
AJPfleger authored Oct 23, 2024
2 parents 2b3afce + be9777b commit ad43b3e
Show file tree
Hide file tree
Showing 160 changed files with 1,787 additions and 1,459 deletions.
22 changes: 16 additions & 6 deletions .github/workflows/analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,27 +20,31 @@ env:
CTEST_OUTPUT_ON_FAILURE: 1
CCACHE_DIR: ${{ github.workspace }}/ccache
CCACHE_MAXSIZE: 1.25G
CCACHE_KEY_SUFFIX: r1
CCACHE_KEY_SUFFIX: r2
ACTS_LOG_FAILURE_THRESHOLD: WARNING
DEPENDENCY_URL: https://acts.web.cern.ch/ACTS/ci/ubuntu-24.04/deps.v4.tar.zst

# NOTE this only builds core unittests to reduce the output size. if we
# found a way to have Github actions not fail regularly with this job
# all unit tests should be reactivated.
jobs:
build_debug:
runs-on: ubuntu-latest
container: ghcr.io/acts-project/ubuntu2404:58
container: ghcr.io/acts-project/ubuntu2404:63
steps:

- uses: actions/checkout@v4

- name: Install dependencies
run: CI/dependencies.sh

- name: Cache build
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/ccache
key: ${{ runner.os }}-ccache-linux_ubuntu_debug_${{ env.CCACHE_KEY_SUFFIX }}_${{ github.sha }}
path: ${{ env.CCACHE_DIR }}
key: ccache-${{ runner.os }}-${{ github.job }}-${{ env.CCACHE_KEY_SUFFIX }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache-linux_ubuntu_debug_${{ env.CCACHE_KEY_SUFFIX }}_
ccache-${{ runner.os }}-${{ github.job }}-${{ env.CCACHE_KEY_SUFFIX }}-
- name: Configure
run: >
Expand All @@ -49,6 +53,7 @@ jobs:
--preset=github-ci
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_CXX_FLAGS="-Werror --coverage -g -gz -g1"
-DPython_EXECUTABLE=$(which python3)
-DACTS_BUILD_ODD=OFF
- name: Build
run: cmake --build build
Expand Down Expand Up @@ -86,10 +91,14 @@ jobs:

build_performance:
runs-on: ubuntu-latest
container: ghcr.io/acts-project/ubuntu2404:58
container: ghcr.io/acts-project/ubuntu2404:63
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4

- name: Install dependencies
run: CI/dependencies.sh

- name: Install dependencies
run: pip3 install git+https://github.com/paulgessinger/cmakeperf.git@2a409b5
- name: Configure
Expand All @@ -98,6 +107,7 @@ jobs:
--preset=github-ci
-DCMAKE_BUILD_TYPE=RelWithDebInfo
-DCMAKE_CXX_FLAGS="-Werror"
-DPython_EXECUTABLE=$(which python3)
-DACTS_BUILD_ODD=OFF
- name: Measure
run: cmakeperf collect build/compile_commands.json -o perf.csv
Expand Down
105 changes: 59 additions & 46 deletions .github/workflows/builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,32 +19,34 @@ env:
HOMEBREW_NO_INSTALL_CLEANUP: 1
CCACHE_DIR: ${{ github.workspace }}/ccache
CCACHE_MAXSIZE: 500M
CCACHE_KEY_SUFFIX: r1
CCACHE_KEY_SUFFIX: r2

jobs:
linux_ubuntu:
runs-on: ubuntu-latest
container: ghcr.io/acts-project/ubuntu2404:58
container: ghcr.io/acts-project/ubuntu2404:63
env:
INSTALL_DIR: ${{ github.workspace }}/install
ACTS_LOG_FAILURE_THRESHOLD: WARNING
steps:
- name: Install git lfs
run: apt-get update && apt-get install -y git-lfs
DEPENDENCY_URL: https://acts.web.cern.ch/ACTS/ci/ubuntu-24.04/deps.v4.tar.zst

steps:
- uses: actions/checkout@v4
with:
submodules: true
lfs: true

- name: Install dependencies
run: CI/dependencies.sh

- name: Restore ccache
uses: actions/cache/restore@v4
id: ccache-restore
with:
path: ${{ github.workspace }}/ccache
key: ${{ runner.os }}-ccache-linux_ubuntu_${{ env.CCACHE_KEY_SUFFIX }}_${{ github.sha }}
path: ${{ env.CCACHE_DIR }}
key: ccache-${{ runner.os }}-${{ github.job }}-${{ env.CCACHE_KEY_SUFFIX }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache-linux_ubuntu_${{ env.CCACHE_KEY_SUFFIX }}_
ccache-${{ runner.os }}-${{ github.job }}-${{ env.CCACHE_KEY_SUFFIX }}-
- name: Configure
# setting CMAKE_CXX_STANDARD=20 is a workaround for a bug in the
Expand All @@ -58,6 +60,7 @@ jobs:
cmake -B build -S .
--preset=github-ci
-DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}"
-DPython_EXECUTABLE=$(which python3)
-DACTS_BUILD_PLUGIN_ONNX=ON
- name: Build
Expand All @@ -82,7 +85,6 @@ jobs:
- 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*" .

Expand All @@ -108,20 +110,21 @@ jobs:

linux_examples_test:
runs-on: ubuntu-latest
container: ghcr.io/acts-project/ubuntu2404:58
container: ghcr.io/acts-project/ubuntu2404:63
needs: [linux_ubuntu]
env:
ACTS_SEQUENCER_DISABLE_FPEMON: true
DEPENDENCY_URL: https://acts.web.cern.ch/ACTS/ci/ubuntu-24.04/deps.v4.tar.zst

steps:
- name: Install git lfs
run: apt-get update && apt-get install -y git-lfs

- uses: actions/checkout@v4
with:
submodules: true
lfs: true

- name: Install dependencies
run: CI/dependencies.sh

- uses: actions/download-artifact@v4
with:
name: acts-linux-ubuntu
Expand All @@ -136,29 +139,31 @@ jobs:
PYTEST_MD_REPORT_VERBOSE: 0
PYTEST_MD_REPORT_OUTPUT: pytest.md
run: >
/usr/local/bin/geant4-config --install-datasets
geant4-config --install-datasets
&& source build/this_acts_withdeps.sh
&& pip3 install -r Examples/Python/tests/requirements.txt
&& pip3 install pytest-md-report
&& 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:58
container: ghcr.io/acts-project/ubuntu2404:63
needs: [linux_ubuntu]
env:
ACTS_SEQUENCER_DISABLE_FPEMON: true
DEPENDENCY_URL: https://acts.web.cern.ch/ACTS/ci/ubuntu-24.04/deps.v4.tar.zst

steps:
- name: Install git lfs
run: apt-get update && apt-get install -y git-lfs time

- uses: actions/checkout@v4
with:
submodules: true
lfs: true

- run: apt-get update && apt-get install -y time
- name: Install dependencies
run: CI/dependencies.sh

- uses: actions/download-artifact@v4
with:
name: acts-linux-ubuntu
Expand All @@ -178,10 +183,15 @@ jobs:
run: >
echo "::group::Dependencies"
&& git config --global safe.directory "$GITHUB_WORKSPACE"
&& pip3 install histcmp==0.6.7 matplotlib
&& pip3 install -r Examples/Scripts/requirements.txt
&& /usr/local/bin/geant4-config --install-datasets
&& 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
Expand Down Expand Up @@ -232,27 +242,28 @@ jobs:
std: 20
- image: ubuntu2204_clang
std: 20
container: ghcr.io/acts-project/${{ matrix.image }}:58
container: ghcr.io/acts-project/${{ matrix.image }}:63
env:
INSTALL_DIR: ${{ github.workspace }}/install
ACTS_LOG_FAILURE_THRESHOLD: WARNING
DEPENDENCY_URL: https://acts.web.cern.ch/ACTS/ci/ubuntu-22.04/deps.v4.tar.zst
steps:
- name: Install git lfs
run: apt-get update && apt-get install -y git-lfs

- uses: actions/checkout@v4
with:
submodules: true
lfs: true

- name: Install dependencies
run: CI/dependencies.sh

- name: Restore ccache
uses: actions/cache/restore@v4
id: ccache-restore
with:
path: ${{ github.workspace }}/ccache
key: ${{ runner.os }}-ccache-linux_${{ matrix.image }}_${{ env.CCACHE_KEY_SUFFIX }}_${{ github.sha }}
path: ${{ env.CCACHE_DIR }}
key: ccache-${{ runner.os }}-${{ github.job }}-${{ env.CCACHE_KEY_SUFFIX }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache-linux_${{ matrix.image }}_${{ env.CCACHE_KEY_SUFFIX }}_
ccache-${{ runner.os }}-${{ github.job }}-${{ env.CCACHE_KEY_SUFFIX }}-
- name: Configure
Expand All @@ -265,6 +276,7 @@ jobs:
--preset=github-ci
-DCMAKE_CXX_STANDARD=${{ matrix.std }}
-DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}"
-DPython_EXECUTABLE=$(which python3)
- name: Build
run: cmake --build build
Expand Down Expand Up @@ -307,11 +319,8 @@ jobs:
runs-on: macos-14
env:
INSTALL_DIR: ${{ github.workspace }}/install_acts
DEPENDENCY_DIR: ${{ github.workspace }}/install
ACTS_LOG_FAILURE_THRESHOLD: WARNING
DEPENDENCY_URL: https://acts.web.cern.ch/ACTS/ci/macos-14/deps.v2.tar.zst
# Works around an issue where root's RPATH is wrong for tbb, thus won't find it
DYLD_LIBRARY_PATH: "${{ github.workspace }}/install/tbb/2021.11.0/lib"
DEPENDENCY_URL: https://acts.web.cern.ch/ACTS/ci/macos-14/deps.v4.tar.zst
steps:
- uses: actions/checkout@v4
with:
Expand All @@ -324,61 +333,65 @@ jobs:
- name: Install dependencies
run: >
brew install cmake ninja ccache xerces-c
&& wget --verbose --progress=dot:giga --continue --retry-connrefused --tries=5 --timeout=2 -O deps.tar.zst ${{ env.DEPENDENCY_URL }}
&& mkdir ${{ env.DEPENDENCY_DIR }}
&& tar -xf deps.tar.zst -C ${{ env.DEPENDENCY_DIR }}
&& PATH="${{ env.DEPENDENCY_DIR }}/bin:$PATH"
&& python3 -m pip install pyyaml jinja2
&& CI/dependencies.sh
- name: Restore ccache
uses: actions/cache/restore@v4
id: ccache-restore
with:
path: ${{ github.workspace }}/ccache
key: ${{ runner.os }}-ccache_${{ env.CCACHE_KEY_SUFFIX }}_${{ github.sha }}
path: ${{ env.CCACHE_DIR }}
key: ccache-${{ runner.os }}-${{ github.job }}-${{ env.CCACHE_KEY_SUFFIX }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache_${{ env.CCACHE_KEY_SUFFIX }}_
ccache-${{ runner.os }}-${{ github.job }}-${{ env.CCACHE_KEY_SUFFIX }}-
- name: Configure
run: >
ccache -z
&& PATH="${{ env.DEPENDENCY_DIR }}/bin:$PATH"
&& cmake -B build -S .
--preset=github-ci
-DCMAKE_PREFIX_PATH="${{ env.DEPENDENCY_DIR }}"
-DPython_EXECUTABLE=${{ env.DEPENDENCY_DIR }}/bin/python3
-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: >
PATH="${{ env.DEPENDENCY_DIR }}/bin:$PATH"
&& cmake -B build-downstream -S Tests/DownstreamProject
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"
Expand Down
Loading

0 comments on commit ad43b3e

Please sign in to comment.