Skip to content

changing to new full chain code to call FTF #52

changing to new full chain code to call FTF

changing to new full chain code to call FTF #52

Workflow file for this run

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: r1
jobs:
lcg:
runs-on: ubuntu-latest
container: ghcr.io/acts-project/${{ matrix.image }}:v36
strategy:
matrix:
image:
- centos7-lcg100-gcc10
- centos7-lcg101-gcc11
- centos8-lcg100-gcc10
- centos8-lcg101-gcc11
env:
SETUP: source /opt/lcg_view/setup.sh
INSTALL_DIR: ${{ github.workspace }}/install
ACTS_LOG_FAILURE_THRESHOLD: WARNING
steps:
- uses: actions/checkout@v3
- name: Cache build
uses: actions/cache@v3
with:
path: ${{ github.workspace }}/ccache
key: ${{ runner.os }}-ccache-${{ matrix.image }}_${{ env.CCACHE_KEY_SUFFIX }}_${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache-${{ matrix.image }}_${{ env.CCACHE_KEY_SUFFIX }}_
- name: Configure
# setting CMAKE_CXX_STANDARD=17 is a workaround for a bug in the
# dd4hep CMake configuration that gets triggered on recent CMake
# versions
run: >
${SETUP} &&
ccache -z &&
cmake -B build -S .
-GNinja
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_FLAGS=-Werror
-DCMAKE_CXX_STANDARD=17
-DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}"
-DACTS_LOG_FAILURE_THRESHOLD=WARNING
-DACTS_BUILD_EXAMPLES_PYTHON_BINDINGS=ON
-DACTS_FORCE_ASSERTIONS=ON
-DACTS_BUILD_EXAMPLES=ON
-DACTS_BUILD_PLUGIN_DD4HEP=OFF
-DACTS_BUILD_PLUGIN_TGEO=ON
-DACTS_BUILD_PLUGIN_IDENTIFICATION=ON
-DACTS_BUILD_PLUGIN_JSON=ON
-DACTS_BUILD_FATRAS=ON
-DACTS_BUILD_PLUGIN_LEGACY=ON
-DACTS_BUILD_PLUGIN_AUTODIFF=ON
-DACTS_BUILD_BENCHMARKS=ON
-DACTS_BUILD_UNITTESTS=ON
-DACTS_BUILD_INTEGRATIONTESTS=ON
-DACTS_BUILD_EXAMPLES_DD4HEP=OFF
-DACTS_BUILD_PLUGIN_EDM4HEP=OFF
-DACTS_BUILD_EXAMPLES_GEANT4=ON
-DACTS_BUILD_EXAMPLES_HEPMC3=ON
-DACTS_BUILD_EXAMPLES_PYTHIA8=ON
-DACTS_BUILD_FATRAS_GEANT4=ON
-DACTS_BUILD_FATRAS=ON
-DACTS_BUILD_ALIGNMENT=ON
-DACTS_BUILD_ANALYSIS_APPS=ON
- name: Build
run: ${SETUP} && cmake --build build
- name: ccache stats
run: ${SETUP} && ccache -s
- name: Unit tests
run: ${SETUP} && cmake --build build --target test
- name: Integration tests
run: ${SETUP} && cmake --build build --target integrationtests
- name: Install
run: ${SETUP} && cmake --build build --target install
- uses: actions/upload-artifact@v3
with:
name: acts-${{ matrix.image }}
path: ${{ env.INSTALL_DIR }}
- name: Downstream configure
run: >
${SETUP} &&
cmake -B build-downstream -S Tests/DownstreamProject
-GNinja
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_FLAGS=-Werror
-DCMAKE_CXX_STANDARD=17
-DCMAKE_PREFIX_PATH="${INSTALL_DIR}"
-DDD4HEP=OFF
- name: Downstream build
run: ${SETUP} && cmake --build build-downstream
- name: Downstream run
run: ${SETUP} && ./build-downstream/bin/ShowActsVersion
linux_ubuntu:
runs-on: ubuntu-latest
container: ghcr.io/acts-project/ubuntu2204:v36
env:
INSTALL_DIR: ${{ github.workspace }}/install
ACTS_LOG_FAILURE_THRESHOLD: WARNING
steps:
- name: Install git lfs
run: apt-get install -y git-lfs
- uses: actions/checkout@v3
with:
submodules: true
lfs: true
- name: Cache build
uses: actions/cache@v3
with:
path: ${{ github.workspace }}/ccache
key: ${{ runner.os }}-ccache-linux_ubuntu_${{ env.CCACHE_KEY_SUFFIX }}_${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache-linux_ubuntu_${{ env.CCACHE_KEY_SUFFIX }}_
- name: Configure
# setting CMAKE_CXX_STANDARD=17 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 .
-GNinja
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_FLAGS=-Werror
-DCMAKE_CXX_STANDARD=17
-DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}"
-DACTS_ENABLE_LOG_FAILURE_THRESHOLD=ON
-DACTS_BUILD_EVERYTHING=ON
-DACTS_BUILD_ODD=ON
-DACTS_BUILD_EXAMPLES_PYTHON_BINDINGS=ON
-DACTS_BUILD_EXAMPLES_BINARIES=ON
-DACTS_BUILD_EXAMPLES_EDM4HEP=ON
-DACTS_FORCE_ASSERTIONS=ON
-DACTS_BUILD_ANALYSIS_APPS=ON
-DACTS_BUILD_PLUGIN_ONNX=ON
- name: Build
run: cmake --build build
- name: ccache stats
run: ccache -s
- 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: Package build
run: tar czf build.tar.gz -C build .
- uses: actions/upload-artifact@v3
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=17
-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/ubuntu2204:v36
needs: [linux_ubuntu]
steps:
- name: Install git lfs
run: apt-get install -y git-lfs
- uses: actions/checkout@v3
with:
submodules: true
lfs: true
- uses: actions/download-artifact@v3
with:
name: acts-linux-ubuntu
- name: Unpack build
run: mkdir build && tar xf build.tar.gz -C build
- name: Examples
shell: bash
run: >
export LD_LIBRARY_PATH=$PWD/build/thirdparty/OpenDataDetector/factory:$LD_LIBRARY_PATH
&& source /usr/local/bin/thisdd4hep_only.sh
&& ./CI/run_examples.sh
- name: Python level tests
shell: bash
run: >
/usr/local/bin/geant4-config --install-datasets
&& source /usr/local/bin/thisroot.sh
&& source /usr/local/bin/thisdd4hep_only.sh
&& source /usr/local/bin/geant4.sh
&& source build/python/setup.sh
&& export LD_LIBRARY_PATH=$PWD/build/thirdparty/OpenDataDetector/factory:$LD_LIBRARY_PATH
&& pip3 install -r Examples/Python/tests/requirements.txt
&& pytest -rFsv -v
linux_physmon:
runs-on: ubuntu-latest
container: ghcr.io/acts-project/ubuntu2204:v36
needs: [linux_ubuntu]
steps:
- name: Install git lfs
run: apt-get install -y git-lfs
- uses: actions/checkout@v3
with:
submodules: true
lfs: true
- uses: actions/download-artifact@v3
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"
&& pip3 install histcmp==0.5.2
&& pip3 install -r Examples/Scripts/requirements.txt
&& /usr/local/bin/geant4-config --install-datasets
&& source /usr/local/bin/thisroot.sh
&& source /usr/local/bin/thisdd4hep_only.sh
&& source /usr/local/bin/geant4.sh
&& source build/python/setup.sh
&& export LD_LIBRARY_PATH=$PWD/build/thirdparty/OpenDataDetector/factory:$LD_LIBRARY_PATH
&& echo "::endgroup::"
&& export PYTHONPATH="${PYTHONPATH}":"${GITHUB_WORKSPACE}/Examples/Scripts/Python"
&& CI/physmon/phys_perf_mon.sh physmon
- uses: actions/upload-artifact@v3
if: always()
with:
name: physmon
path: physmon
linux_ubuntu_extra:
runs-on: ubuntu-latest
strategy:
matrix:
image:
- ubuntu2004
- ubuntu2204
- ubuntu2204_clang
std: [17, 20]
exclude:
- image: ubuntu2204
std: 17
- image: ubuntu2004
std: 20
container: ghcr.io/acts-project/${{ matrix.image }}:v36
env:
INSTALL_DIR: ${{ github.workspace }}/install
ACTS_LOG_FAILURE_THRESHOLD: WARNING
steps:
- name: Install git lfs
run: apt-get install -y git-lfs
- uses: actions/checkout@v3
with:
submodules: true
lfs: true
- name: Cache build
uses: actions/cache@v3
with:
path: ${{ github.workspace }}/ccache
key: ${{ runner.os }}-ccache-linux_${{ matrix.image }}_${{ env.CCACHE_KEY_SUFFIX }}_${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache-linux_${{ matrix.image }}_${{ env.CCACHE_KEY_SUFFIX }}_
- name: Configure
# setting CMAKE_CXX_STANDARD=17 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 .
-GNinja
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_FLAGS=-Werror
-DCMAKE_CXX_STANDARD=${{ matrix.std }}
-DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}"
-DACTS_ENABLE_LOG_FAILURE_THRESHOLD=ON
-DACTS_BUILD_EVERYTHING=ON
-DACTS_BUILD_ODD=ON
-DACTS_BUILD_EXAMPLES_PYTHON_BINDINGS=ON
-DACTS_BUILD_EXAMPLES_EDM4HEP=ON
-DACTS_FORCE_ASSERTIONS=ON
-DACTS_BUILD_ANALYSIS_APPS=ON
- name: Build
run: cmake --build build
- name: ccache stats
run: ccache -s
- 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=17
-DCMAKE_PREFIX_PATH="${INSTALL_DIR}"
- name: Downstream build
run: cmake --build build-downstream
- name: Downstream run
run: ./build-downstream/bin/ShowActsVersion
linux-nodeps:
runs-on: ubuntu-latest
container: ghcr.io/acts-project/${{ matrix.image }}:v36
strategy:
matrix:
image:
# Note: We only want the centos8 base here, and so we do not
# setup the lcg environment below
- centos8-lcg100-gcc10
env:
# NOTE: we setup the ROOT from LCG even though this is a
# "nodeps" build. This is because we want to test that the boost
# dependency is handled correctly when building the examples
# (same for tbb below). ROOT is available from the "epel"
# official centos8 repo, but to save hundreds of MB's of package
# download we simply use lcg for this one package.
SETUP: source /opt/lcg/ROOT/v6.24.00-e7098/x86_64-centos8-gcc10-opt/bin/thisroot.sh
PRELOAD: export LD_PRELOAD=/opt/lcg/gcc/10/x86_64-centos8/lib64/libstdc++.so.6
INSTALL_DIR: ${{ github.workspace }}/install
steps:
- uses: actions/checkout@v3
- name: Install dependencies
# Install tbb-devel also to build the examples
run: >
dnf -y install ninja-build tbb-devel ccache
&& ln -s $(find / -type f -name 'ccache') /usr/local/bin/ccache
- name: Cache build
uses: actions/cache@v3
with:
path: ${{ github.workspace }}/ccache
key: ${{ runner.os }}-ccache-linux-nodeps_${{ env.CCACHE_KEY_SUFFIX }}_${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache-linux-nodeps_${{ env.CCACHE_KEY_SUFFIX }}_
- name: Configure
run: >
ccache -z &&
cmake -B build -S .
-GNinja
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_FLAGS=-Werror
-DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}"
-DACTS_BUILD_UNITTESTS=ON
-DACTS_BUILD_INTEGRATIONTESTS=ON
-DACTS_LOG_FAILURE_THRESHOLD=WARNING
-DACTS_FORCE_ASSERTIONS=ON
-DACTS_USE_SYSTEM_BOOST=OFF
-DACTS_USE_SYSTEM_EIGEN3=OFF
-DACTS_BUILD_PLUGIN_JSON=ON
- name: Build
run: ${SETUP} && ( cmake --build build || cmake --build build )
# The above line is required as a sort of retry mechanism. Without it,
# the build fails for technical reasons.
- name: ccache stats
run: ccache -s
- name: Unit tests
run: ${SETUP} && cmake --build build --target test
- name: Integration tests
run: ${SETUP} && cmake --build build --target integrationtests
- name: Install
run: ${SETUP} && cmake --build build --target install
# For some reasons, this version of ROOT complains that it
# cannot find the nlohmann::json config before we even installed
# it. So we have to do the examples in separate step.
- name: Configure Examples
run: >
${SETUP} &&
cmake -B build -S .
-GNinja
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_FLAGS=-Werror
-DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}"
-DACTS_LOG_FAILURE_THRESHOLD=WARNING
-DACTS_BUILD_EXAMPLES_BINARIES=ON
-DACTS_FORCE_ASSERTIONS=ON
-DACTS_USE_SYSTEM_BOOST=OFF
-DACTS_USE_SYSTEM_EIGEN3=OFF
-DACTS_BUILD_EXAMPLES=ON
- name: Build Examples
run: ${SETUP} && cmake --build build
- name: Install Examples
run: ${SETUP} && cmake --build build --target install
- name: Run Examples
# Run a single example to be sure that the boost dependencies
# got linked correctly
run: ${SETUP} && ${PRELOAD} && "${INSTALL_DIR}/bin/ActsExampleHelloWorld" -n 1
- name: Downstream configure
run: >
${SETUP} &&
cmake -B build-downstream-nodeps -S Tests/DownstreamProjectNodeps
-GNinja
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_FLAGS=-Werror
-DCMAKE_PREFIX_PATH="${INSTALL_DIR}"
- name: Downstream build
run: cmake --build build-downstream-nodeps
- name: Downstream run
run: ./build-downstream-nodeps/bin/ShowActsVersion
&& CI/check_boost_eigen_versions.sh ./build-downstream-nodeps/bin/ShowActsVersion
macos:
runs-on: macos-11
env:
INSTALL_DIR: ${{ github.workspace }}/install
steps:
- uses: actions/checkout@v3
with:
submodules: true
lfs: true
- name: Install dependencies
run: >
brew install cmake eigen ninja ccache
&& sudo mkdir /usr/local/acts
&& sudo chown $USER /usr/local/acts
&& wget --verbose --progress=dot:giga --continue --retry-connrefused --tries=5 --timeout=2 -O deps.tar.gz https://acts.web.cern.ch/ci/macOS/deps.ce7b5a4.tar.gz
&& tar -xf deps.tar.gz -C /usr/local/acts
- name: Cache build
uses: actions/cache@v3
with:
path: ${{ github.workspace }}/ccache
key: ${{ runner.os }}-ccache_${{ env.CCACHE_KEY_SUFFIX }}_${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache_${{ env.CCACHE_KEY_SUFFIX }}_
- name: Configure
# setting CMAKE_CXX_STANDARD=17 is a workaround for a bug in the
# dd4hep CMake configuration that gets triggered on recent CMake
# versions such as the one installed via homebrew
run: >
ccache -z &&
cmake -B build -S .
-GNinja
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_FLAGS=-Werror
-DCMAKE_CXX_STANDARD=17
-DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}"
-DCMAKE_PREFIX_PATH=/usr/local/acts
-DACTS_BUILD_EVERYTHING=ON
-DACTS_BUILD_ODD=ON
-DACTS_LOG_FAILURE_THRESHOLD=WARNING
-DACTS_FORCE_ASSERTIONS=ON
-DACTS_BUILD_EXAMPLES_EDM4HEP=ON
- name: Build
run: cmake --build build
- name: ccache stats
run: ccache -s
- 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@v3
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=17
-DCMAKE_PREFIX_PATH="${INSTALL_DIR};/usr/local/acts"
- name: Downstream build
run: cmake --build build-downstream
- name: Downstream run
run: ./build-downstream/bin/ShowActsVersion
cuda:
runs-on: ubuntu-latest
container: ghcr.io/acts-project/ubuntu1804_cuda:v36
steps:
- uses: actions/checkout@v3
- name: Cache build
uses: actions/cache@v3
with:
path: ${{ github.workspace }}/ccache
key: ${{ runner.os }}-ccache-cuda_${{ env.CCACHE_KEY_SUFFIX }}_${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache-cuda_${{ env.CCACHE_KEY_SUFFIX }}_
- name: Configure
run: >
ccache -z &&
cmake -B build -S .
-GNinja
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_CXX_COMPILER=/usr/bin/g++-8
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_FLAGS=-Werror
-DACTS_BUILD_PLUGIN_CUDA=ON
-DACTS_BUILD_UNITTESTS=ON
- name: Build
run: cmake --build build
- name: ccache stats
run: ccache -s
sycl:
runs-on: ubuntu-latest
container: ghcr.io/acts-project/ubuntu2004_oneapi:v36
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v3
- name: Cache build
uses: actions/cache@v3
with:
path: ${{ github.workspace }}/ccache
key: ${{ runner.os }}-ccache-sycl_${{ env.CCACHE_KEY_SUFFIX }}_${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache-sycl_${{ env.CCACHE_KEY_SUFFIX }}_
- name: Configure
run: >
source /opt/intel/oneapi/setvars.sh
&& ccache -z
&& cmake -B build -S .
-GNinja
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_CXX_COMPILER=/opt/intel/oneapi/compiler/2022.0.2/linux/bin-llvm/clang++
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_FLAGS=-Werror
-DACTS_SETUP_VECMEM=ON
-DACTS_BUILD_PLUGIN_SYCL=ON
-DACTS_BUILD_UNITTESTS=ON
- name: Build
run: >
source /opt/intel/oneapi/setvars.sh
&& cmake --build build
- name: ccache stats
run: ccache -s