Skip to content
Snippets Groups Projects
Commit 2f8fef5a authored by Moritz Kiehn's avatar Moritz Kiehn
Browse files

Merge branch 'github-actions' into 'master'

Set up Github Actions jobs to run checks and builds

See merge request !800
parents b89df02d 070a442e
No related branches found
No related tags found
1 merge request!800Set up Github Actions jobs to run checks and builds
Pipeline #1516403 passed
name: Build
on:
- push
jobs:
build_ubuntu:
runs-on: ubuntu-18.04
container: gitlab-registry.cern.ch/acts/machines/ubuntu1910
steps:
- uses: actions/checkout@v1
- name: Configure
run: >
mkdir build && cd build
&& cmake ..
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_STANDARD=17
-DACTS_BUILD_UNITTESTS=ON
-DCMAKE_CXX_FLAGS="-Werror -fdiagnostics-color=always"
-DACTS_BUILD_DIGITIZATION_PLUGIN=on
-DACTS_BUILD_IDENTIFICATION_PLUGIN=on
-DACTS_BUILD_JSON_PLUGIN=on
-DACTS_BUILD_BENCHMARKS=on
-DACTS_BUILD_FATRAS=on
-DACTS_BUILD_EXAMPLES=on
-DACTS_BUILD_UNITTESTS=on
-DACTS_BUILD_LEGACY=on
-DACTS_BUILD_DD4HEP_PLUGIN=on
-DACTS_BUILD_TGEO_PLUGIN=on
-DACTS_BUILD_INTEGRATIONTESTS=on
- name: Build
working-directory: build
run: cmake --build . -- -j$(nproc)
- name: Unit tests
working-directory: build
run: cmake --build . -- test
- name: Integration tests
working-directory: build
run: cmake --build . -- integrationtests
build_macos:
runs-on: macos-10.15
steps:
- uses: actions/checkout@v1
with:
path: src
- name: Install dependencies
run: >
cd ..
&& brew install boost eigen cmake xerces-c
&& mkdir deps
&& curl -SL https://acts.web.cern.ch/ACTS/ci/macOS_10.15_deps.tar.gz | tar -xzC deps
- name: Configure
run: >
cd ..
&& source deps/bin/thisroot.sh
&& mkdir build && cd build
&& cmake ../src
-DCMAKE_PREFIX_PATH=../deps
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_STANDARD=17
-DACTS_BUILD_UNITTESTS=ON
-DCMAKE_CXX_FLAGS="-Werror -fdiagnostics-color=always"
-DACTS_BUILD_DIGITIZATION_PLUGIN=on
-DACTS_BUILD_IDENTIFICATION_PLUGIN=on
-DACTS_BUILD_JSON_PLUGIN=on
-DACTS_BUILD_BENCHMARKS=on
-DACTS_BUILD_FATRAS=on
-DACTS_BUILD_EXAMPLES=on
-DACTS_BUILD_UNITTESTS=on
-DACTS_BUILD_LEGACY=on
-DACTS_BUILD_DD4HEP_PLUGIN=on
-DACTS_BUILD_TGEO_PLUGIN=on
-DACTS_BUILD_INTEGRATIONTESTS=on
- name: Build
working-directory: ../build
run: cmake --build . -- -j2
- name: Unit tests
working-directory: ../build
run: cmake --build . -- test
- name: Integration tests
working-directory: ../build
run: cmake --build . -- integrationtests
build_lcg:
runs-on: ubuntu-latest
container: gitlab-registry.cern.ch/acts/machines/${{ matrix.os }}_lcg${{ matrix.lcg }}:latest
strategy:
matrix:
os:
- cc7
- slc6
lcg:
- 95
- 96
exclude:
- os: slc6
lcg: 96
env:
lcg_map_95: 95apython3
lcg_map_96: 96
os_map_cc7: centos7
os_map_slc6: slc6
steps:
- uses: actions/checkout@v1
# - name: Build on ${{ matrix.os }}, LCG${{ matrix.lcg }}
# run: .github/workflows/build_job.sh ${{ matrix.lcg }} ${{ matrix.os }}
- name: Configure
run: >
source /opt/lcg/views/LCG_${lcg_map_${{ matrix.lcg }}}/x86_64-${os_map_${{ matrix.os }}}-gcc8-opt/setup.sh
&& mkdir build && cd build
&& cmake ..
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_STANDARD=17
-DACTS_BUILD_UNITTESTS=ON
-DCMAKE_CXX_FLAGS="-Werror -fdiagnostics-color=always"
-DACTS_BUILD_DIGITIZATION_PLUGIN=on
-DACTS_BUILD_IDENTIFICATION_PLUGIN=on
-DACTS_BUILD_JSON_PLUGIN=on
-DACTS_BUILD_BENCHMARKS=on
-DACTS_BUILD_FATRAS=on
-DACTS_BUILD_EXAMPLES=on
-DACTS_BUILD_UNITTESTS=on
-DACTS_BUILD_LEGACY=on
-DACTS_BUILD_DD4HEP_PLUGIN=on
-DACTS_BUILD_TGEO_PLUGIN=on
-DACTS_BUILD_INTEGRATIONTESTS=on
- name: Build
working-directory: build
run: >
source /opt/lcg/views/LCG_${lcg_map_${{ matrix.lcg }}}/x86_64-${os_map_${{ matrix.os }}}-gcc8-opt/setup.sh
&& cmake --build . -- -j$(nproc)
- name: Unit tests
working-directory: build
run: >
source /opt/lcg/views/LCG_${lcg_map_${{ matrix.lcg }}}/x86_64-${os_map_${{ matrix.os }}}-gcc8-opt/setup.sh
&& cmake --build . -- test
- name: Integration tests
working-directory: build
run: >
source /opt/lcg/views/LCG_${lcg_map_${{ matrix.lcg }}}/x86_64-${os_map_${{ matrix.os }}}-gcc8-opt/setup.sh
&& cmake --build . -- integrationtests
name: Checks
on:
- push
jobs:
format:
runs-on: ubuntu-18.04
container: gitlab-registry.cern.ch/acts/machines/check_llvm8:latest
steps:
- uses: actions/checkout@v1
- name: Check
run: CI/check_format .
- uses: actions/upload-artifact@v1
if: failure()
with:
name: changed
path: changed
license:
runs-on: ubuntu-18.04
container: python:alpine3.6
steps:
- uses: actions/checkout@v1
- name: Check
run: >
apk add --no-cache git
&& CI/check_license.py . --exclude "*thirdparty/*"
include_guards:
runs-on: ubuntu-18.04
container: python:alpine3.6
steps:
- uses: actions/checkout@v1
- name: Check
run: >
CI/check_include_guards.py . --fail-global --exclude "*thirdparty/*"
name: coverage
on:
- pull_request
jobs:
build_debug:
runs-on: ubuntu-18.04
container: gitlab-registry.cern.ch/acts/machines/ubuntu1910
steps:
- uses: actions/checkout@v1
- name: Build
run: >
mkdir build && cd build
&& cmake ..
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_CXX_STANDARD=17
-DACTS_BUILD_UNITTESTS=ON
-DCMAKE_CXX_FLAGS="-Werror -fdiagnostics-color=always"
-DACTS_BUILD_DIGITIZATION_PLUGIN=on
-DACTS_BUILD_IDENTIFICATION_PLUGIN=on
-DACTS_BUILD_JSON_PLUGIN=on
-DACTS_BUILD_BENCHMARKS=on
-DACTS_BUILD_FATRAS=on
-DACTS_BUILD_EXAMPLES=on
-DACTS_BUILD_UNITTESTS=on
-DACTS_BUILD_LEGACY=on
-DACTS_BUILD_DD4HEP_PLUGIN=on
-DACTS_BUILD_TGEO_PLUGIN=on
-DACTS_BUILD_INTEGRATIONTESTS=off
&& cmake --build . -- -j$(nproc)
&& cmake --build . -- test
&& pip3 install gcovr
&& /usr/bin/python3 ../CI/test_coverage
- name: Upload coverage
uses: codecov/codecov-action@v1
with:
file: ./build/coverage/cov.xml
language: cpp
matrix:
include:
- os: osx
osx_image: xcode10.2
before_install:
- brew install eigen
- os: linux
addons:
apt:
update: true
sources:
- sourceline: 'ppa:mhier/libboost-latest'
- ubuntu-toolchain-r-test
packages:
- libeigen3-dev
- boost1.67
- cmake
- g++-7
env: CC=gcc-7 CXX=g++-7
- os: linux
sudo: required
before_install:
- wget --no-check-certificate https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb
- sudo dpkg -i cvmfs-release-latest_all.deb
- sudo apt-get update
- sudo apt-get install cvmfs cvmfs-config-default
- rm -f cvmfs-release-latest_all.deb
- wget --no-check-certificate https://lcd-data.web.cern.ch/lcd-data/CernVM/default.local
- sudo mkdir -p /etc/cvmfs
- sudo mv default.local /etc/cvmfs/default.local
- sudo /etc/init.d/autofs stop
- sudo cvmfs_config setup
- sudo mkdir -p /cvmfs/sft.cern.ch
- sudo mount -t cvmfs sft.cern.ch /cvmfs/sft.cern.ch
- ls /cvmfs/sft.cern.ch
services:
- docker
script:
- docker run -ti --name CI_container -v ${PWD}:/src -w /src -v"/cvmfs:/cvmfs:ro" -d gitlab-registry.cern.ch/acts/machines/cc7 /bin/bash
- docker exec -ti CI_container /bin/bash -c "source CI/setup_lcg94.sh && mkdir build && cd build && cmake .. -DACTS_BUILD_EXAMPLES=on -DACTS_BUILD_TESTS=on -DACTS_BUILD_INTEGRATION_TESTS=on -DACTS_BUILD_DIGITIZATION_PLUGIN=on -DACTS_BUILD_IDENTIFICATION_PLUGIN=on -DACTS_BUILD_JSON_PLUGIN=on -DACTS_BUILD_LEGACY=on -DACTS_BUILD_DD4HEP_PLUGIN=on -DACTS_BUILD_TGEO_PLUGIN=on && cmake --build . -- -j$(nproc) && cmake --build . -- test"
script:
- mkdir build && cd build
- cmake .. -DCMAKE_CXX_FLAGS="-std=c++17" -DACTS_BUILD_EXAMPLES=on -DACTS_BUILD_TESTS=on -DACTS_BUILD_INTEGRATION_TESTS=on -DACTS_BUILD_DIGITIZATION_PLUGIN=on -DACTS_BUILD_IDENTIFICATION_PLUGIN=on -DACTS_BUILD_JSON_PLUGIN=on -DACTS_BUILD_LEGACY=on
- cmake --build . -- -j$(nproc)
- cmake --build . -- test
...@@ -26,7 +26,7 @@ find . \( -iname '*.cpp' -or -iname '*.hpp' -or -iname '*.ipp' \) \ ...@@ -26,7 +26,7 @@ find . \( -iname '*.cpp' -or -iname '*.hpp' -or -iname '*.ipp' \) \
| xargs $_binary -i -style=file | xargs $_binary -i -style=file
if ! [ -z $CI ]; then if ! [ -z $CI ] || ! [ -z $GITHUB_ACTIONS ]; then
mkdir changed mkdir changed
for f in $(git diff --name-only); do for f in $(git diff --name-only); do
cp --parents $f changed cp --parents $f changed
......
...@@ -81,8 +81,9 @@ call(gcovr ...@@ -81,8 +81,9 @@ call(gcovr
+ ["--gcov-executable", args.gcov] + ["--gcov-executable", args.gcov]
+ ["-j", str(mp.cpu_count())] + ["-j", str(mp.cpu_count())]
+ excludes + + excludes +
["--html", "--html-details", ["--xml", "-o", "coverage/cov.xml"])
"-o", os.path.join(coverage_dir, "index.html")]) # ["--html", "--html-details",
# "-o", os.path.join(coverage_dir, "index.html")])
call(gcovr call(gcovr
+ ["-r", source_dir] + ["-r", source_dir]
......
...@@ -38,6 +38,12 @@ class LineSurfaceStub : public LineSurface { ...@@ -38,6 +38,12 @@ class LineSurfaceStub : public LineSurface {
LineSurfaceStub(const LineSurfaceStub& ls) LineSurfaceStub(const LineSurfaceStub& ls)
: GeometryObject(), LineSurface(ls) { /* nop */ : GeometryObject(), LineSurface(ls) { /* nop */
} }
LineSurfaceStub& operator=(const LineSurfaceStub& ls) {
LineSurface::operator=(ls);
return *this;
}
// //
LineSurfaceStub(const GeometryContext& gctx, const LineSurfaceStub& ls, LineSurfaceStub(const GeometryContext& gctx, const LineSurfaceStub& ls,
const Transform3D& t) const Transform3D& t)
......
...@@ -81,29 +81,30 @@ using Simulator = ActsFatras::Simulator<ChargedSelector, ChargedSimulator, ...@@ -81,29 +81,30 @@ using Simulator = ActsFatras::Simulator<ChargedSelector, ChargedSimulator,
// parameters for data-driven test cases // parameters for data-driven test cases
const auto rangePdg = boost::unit_test::data::make({ const auto rangePdg =
Acts::PdgParticle::eElectron, boost::unit_test::data::make(std::vector<Acts::PdgParticle>{
Acts::PdgParticle::eMuon, Acts::PdgParticle::eElectron,
Acts::PdgParticle::ePionPlus, Acts::PdgParticle::eMuon,
Acts::PdgParticle::ePionZero, Acts::PdgParticle::ePionPlus,
}); Acts::PdgParticle::ePionZero,
const auto rangePhi = boost::unit_test::data::make({ });
const auto rangePhi = boost::unit_test::data::make(std::vector<double>{
-135_degree, -135_degree,
-45_degree, -45_degree,
45_degree, 45_degree,
135_degree, 135_degree,
}); });
const auto rangeEta = boost::unit_test::data::make({ const auto rangeEta = boost::unit_test::data::make(std::vector<double>{
-1.0, -1.0,
0.0, 0.0,
1.0, 1.0,
3.0, 3.0,
}); });
const auto rangeP = boost::unit_test::data::make({ const auto rangeP = boost::unit_test::data::make(std::vector<double>{
1_GeV, 1_GeV,
10_GeV, 10_GeV,
}); });
const auto rangeNumParticles = boost::unit_test::data::make({ const auto rangeNumParticles = boost::unit_test::data::make(std::vector<int>{
1, 1,
2, 2,
}); });
......
...@@ -83,8 +83,8 @@ ATLASCuts<SpacePoint>::cutPerMiddleSP( ...@@ -83,8 +83,8 @@ ATLASCuts<SpacePoint>::cutPerMiddleSP(
newSeedsVector.push_back(std::move(seeds[i])); newSeedsVector.push_back(std::move(seeds[i]));
} }
} }
return std::move(newSeedsVector); return newSeedsVector;
} }
return std::move(seeds); return seeds;
} }
} // namespace Acts } // namespace Acts
...@@ -22,7 +22,7 @@ namespace data = boost::unit_test::data; ...@@ -22,7 +22,7 @@ namespace data = boost::unit_test::data;
using namespace Acts::UnitLiterals; using namespace Acts::UnitLiterals;
// particle identity // particle identity
const auto particlePdg = data::make({ const auto particlePdg = data::make(std::vector<Acts::PdgParticle>{
Acts::PdgParticle::eElectron, Acts::PdgParticle::eElectron,
Acts::PdgParticle::ePositron, Acts::PdgParticle::ePositron,
Acts::PdgParticle::eMuon, Acts::PdgParticle::eMuon,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment