Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
3998614
CMake system: Generate a text file that lists all backends included i…
anderkve Nov 28, 2023
0397916
For CI system: Added bash script that attempts to build all backends …
anderkve Nov 29, 2023
b3664d3
Temporary modification to Ubuntu CI job to test backend building script.
anderkve Nov 29, 2023
e8599de
Fixed standalones_build job in Ubuntu CI yaml
anderkve Nov 29, 2023
c52d863
Improved the build_backends.sh script. Can now take a list of backend…
anderkve Nov 29, 2023
71324e4
Updated Ubuntu CI script to use the new options for the build_backend…
anderkve Nov 29, 2023
29b7f6d
Added ColliderBit_CMSSM.yaml test job to Ubuntu CI script
anderkve Nov 29, 2023
4f4d0dd
Temp hack to run the ColliderBit_CMSSM.yaml test run first.
anderkve Nov 29, 2023
fcedd7f
Added WC.yaml test back into the Ubuntu CI script. Other small tweaks.
anderkve Nov 29, 2023
688381a
Fixed the order of jobs in the Ubuntu CI script. Added more descripti…
anderkve Nov 29, 2023
ee445e5
Split Max X64 CI into multiple parts
ChrisJChang Nov 30, 2023
047fade
Mac Arm64 CI job split into multiple parts
ChrisJChang Nov 30, 2023
70b720b
Rename CI job
ChrisJChang Nov 30, 2023
1770a11
Replace cpdef with cdef in classy files
pstoecker Dec 1, 2023
df3ee6d
Added temporary Mac x64 CI job for debugging issue with Rivet build
anderkve Dec 1, 2023
8e0ed11
Temporary disabling the working Mac x64 CI jobs. Now only running sta…
anderkve Dec 1, 2023
6ab72c5
Added more temporary debug code in ci_Mac_x64.yml
anderkve Dec 1, 2023
6ad687d
New Mac x64 CI debug attempt
anderkve Dec 1, 2023
ad6ccab
Mac x64 CI updates
ChrisJChang Dec 13, 2023
1a044f4
Merge branch 'master' into split_CI_jobs
anderkve Dec 13, 2023
869ecc9
Removed temporary debug code from ci_Mac_x64.yml. Small consistency t…
anderkve Dec 14, 2023
2614df3
Now building yoda and contur before Gambit, until we have fixed issue…
anderkve Dec 14, 2023
6523591
Merge branch 'master' into split_CI_jobs
anderkve Dec 14, 2023
9031565
Added rdynamic compiler flag to deal with symbol visibility issue.
anderkve Dec 14, 2023
33eb1c1
Set order of CI jobs: gambit_build, backends_build, test_runs, standa…
anderkve Dec 14, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
204 changes: 193 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Gambit CI
name: Gambit Ubuntu CI

on:
push:
Expand All @@ -9,6 +9,8 @@ on:
- cron: '0 5 * * *'

jobs:
# A job that builds GAMBIT + scanners, tests the command-line interface
# and runs a minimal test run with spartan.yaml
gambit_build:
runs-on: [docker, self-hosted]
strategy:
Expand Down Expand Up @@ -48,7 +50,7 @@ jobs:
- name: Configure with cmake
run: |
cd BUILD/ && . buildenv.sh
cmake .. -D WITH_ROOT=OFF -D WITH_RESTFRAMES=OFF -D WITH_HEPMC=ON -D WITH_YODA=ON -D BUILD_FS_MODELS="CMSSM;MSSM;MDM" -D WITH_MPI=OFF
cmake .. -D CMAKE_CXX_FLAGS="-rdynamic" -D WITH_ROOT=OFF -D WITH_RESTFRAMES=OFF -D WITH_HEPMC=ON -D WITH_YODA=ON -D BUILD_FS_MODELS="CMSSM;MSSM;MDM" -D WITH_MPI=OFF
- name: Build scanners
run: |
cd BUILD/ && . buildenv.sh
Expand All @@ -57,28 +59,208 @@ jobs:
- name: Build Gambit
run: |
cd BUILD && . buildenv.sh
# Build YODA and HepMC first, to avoid race condition during parallel build: https://github.com/GambitBSM/gambit/issues/467
# Can remove this once issue #467 is fixed.
make -j$(( ($(nproc)+1)/2 )) yoda
make -j$(( ($(nproc)+1)/2 )) hepmc
# Now build Gambit
make -j$(( ($(nproc)+1)/2 )) gambit
- name: Build backends
run: |
cd BUILD && . buildenv.sh
#make -j$(( ($(nproc)+1)/2 )) backends
make backends
- name: CLI test
run: |
. BUILD/buildenv.sh
./gambit -h
- name: WC test
- name: Run spartan.yaml
run: |
. BUILD/buildenv.sh
./gambit -f yaml_files/WC_lite.yaml
- name: ColliderBit test
./gambit -rf yaml_files/spartan.yaml


# A job that tests the builds for all backends in the "make backends" target.
# Backends that are anyway tested as part of the "test_runs" job can be skipped,
# see the build_backends.sh command below.
backends_build:
if: ${{ always() }}
needs: [gambit_build] # Sets run order
runs-on: [docker, self-hosted]
strategy:
fail-fast: false
matrix:
arch: [ubuntu] #, ubuntu-py2, fedora
#mpi: [ON, OFF]
container: gambitbsm/gambit-base:${{ matrix.arch }}
defaults:
run:
shell: bash -eo pipefail {0}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up build environment
run: |
mkdir -p BUILD
cd BUILD
echo "Sourcing setup.sh"
cat /etc/profile.d/gambit-setup.sh
source /etc/profile.d/gambit-setup.sh
echo "Making buildenv.sh"
> buildenv.sh
echo "source /etc/profile.d/gambit-setup.sh" >> buildenv.sh
echo "export CMAKE_BUILD_TYPE=None" >> buildenv.sh
echo "export CMAKE_C_COMPILER=$(which gcc)" >> buildenv.sh
echo "export CMAKE_CXX_COMPILER=$(which g++)" >> buildenv.sh
echo "export CMAKE_Fortran_COMPILER=$(which gfortran)" >> buildenv.sh
PYTHON_LIBRARY=$(python -c 'from __future__ import print_function; from distutils.sysconfig import get_config_var; print("%s/%s" % (get_config_var("LIBDIR"), get_config_var("INSTSONAME")))')
PYTHON_INCLUDE_DIR=$(python -c 'from __future__ import print_function; from distutils import sysconfig; print(sysconfig.get_config_var("INCLUDEPY"))')
echo "export PYTHON_EXECUTABLE=$(which python)" >> buildenv.sh
echo "export PYTHON_LIBRARY=$PYTHON_LIBRARY" >> buildenv.sh
echo "export PYTHON_INCLUDE_DIR=$PYTHON_INCLUDE_DIR" >> buildenv.sh
echo "export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH" >> buildenv.sh
cat buildenv.sh
pip install --upgrade pyyaml pybind11 h5py scipy numpy pyhf configobj pandas matplotlib setuptools==58.2.0
- name: Configure with cmake
run: |
cd BUILD/ && . buildenv.sh
cmake .. -D CMAKE_CXX_FLAGS="-rdynamic" -D WITH_ROOT=OFF -D WITH_RESTFRAMES=OFF -D WITH_HEPMC=ON -D WITH_YODA=ON -D BUILD_FS_MODELS="CMSSM;MSSM;MDM" -D WITH_MPI=OFF
- name: Build backends
run: |
cd BUILD && . buildenv.sh
# Build backends, except those that are tested via other jobs.
# This replaces the "make backends" command.
../cmake/scripts/build_backends.sh -f default_backends.txt -j 1 -s "nulike susyhit rivet contur pythia higgsbounds higgssignals ATLAS_FullLikes superiso heplikedata heplike"


# A job for GAMBIT test runs. Only those GAMBIT modules, scanners and backends
# required by the test runs are built.
test_runs:
if: ${{ always() }}
needs: [gambit_build, backends_build] # Sets run order
runs-on: [docker, self-hosted]
strategy:
fail-fast: false
matrix:
arch: [ubuntu] #, ubuntu-py2, fedora
#mpi: [ON, OFF]
container: gambitbsm/gambit-base:${{ matrix.arch }}
defaults:
run:
shell: bash -eo pipefail {0}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up build environment
run: |
mkdir -p BUILD
cd BUILD
echo "Sourcing setup.sh"
cat /etc/profile.d/gambit-setup.sh
source /etc/profile.d/gambit-setup.sh
echo "Making buildenv.sh"
> buildenv.sh
echo "source /etc/profile.d/gambit-setup.sh" >> buildenv.sh
echo "export CMAKE_BUILD_TYPE=None" >> buildenv.sh
echo "export CMAKE_C_COMPILER=$(which gcc)" >> buildenv.sh
echo "export CMAKE_CXX_COMPILER=$(which g++)" >> buildenv.sh
echo "export CMAKE_Fortran_COMPILER=$(which gfortran)" >> buildenv.sh
PYTHON_LIBRARY=$(python -c 'from __future__ import print_function; from distutils.sysconfig import get_config_var; print("%s/%s" % (get_config_var("LIBDIR"), get_config_var("INSTSONAME")))')
PYTHON_INCLUDE_DIR=$(python -c 'from __future__ import print_function; from distutils import sysconfig; print(sysconfig.get_config_var("INCLUDEPY"))')
echo "export PYTHON_EXECUTABLE=$(which python)" >> buildenv.sh
echo "export PYTHON_LIBRARY=$PYTHON_LIBRARY" >> buildenv.sh
echo "export PYTHON_INCLUDE_DIR=$PYTHON_INCLUDE_DIR" >> buildenv.sh
echo "export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH" >> buildenv.sh
cat buildenv.sh
pip install --upgrade pyyaml pybind11 h5py scipy numpy pyhf configobj pandas matplotlib setuptools==58.2.0
- name: Configure with cmake
run: |
cd BUILD/ && . buildenv.sh
cmake .. -D CMAKE_CXX_FLAGS="-rdynamic" -D WITH_ROOT=OFF -D WITH_RESTFRAMES=OFF -D WITH_HEPMC=ON -D WITH_YODA=ON -D BUILD_FS_MODELS="CMSSM" -D WITH_MPI=OFF -Ditch="DarkBit;CosmoBit;NeutrinoBit;ObjectivesBit"
- name: Build required scanners
run: |
cd BUILD/ && . buildenv.sh
make -j$(( ($(nproc)+1)/2 )) diver
cmake ..
- name: Build required backends
run: |
cd BUILD/ && . buildenv.sh
# Build bakends needed for ColliderBit_CMSSM.yaml
make -j$(( ($(nproc)+1)/2 )) nulike
make -j$(( ($(nproc)+1)/2 )) susyhit
make -j$(( ($(nproc)+1)/2 )) rivet
make -j$(( ($(nproc)+1)/2 )) contur
make -j$(( ($(nproc)+1)/2 )) pythia
make -j$(( ($(nproc)+1)/2 )) higgsbounds
make -j$(( ($(nproc)+1)/2 )) higgssignals
make ATLAS_FullLikes
# Build bakends needed for WC.yaml
make superiso
make -j$(( ($(nproc)+1)/2 )) heplikedata
make -j$(( ($(nproc)+1)/2 )) heplike
- name: Build Gambit
run: |
cd BUILD && . buildenv.sh
# Build YODA and HepMC first, to avoid race condition during parallel build: https://github.com/GambitBSM/gambit/issues/467
# Can remove this once issue #467 is fixed.
make -j$(( ($(nproc)+1)/2 )) yoda
make -j$(( ($(nproc)+1)/2 )) hepmc
# Now build Gambit
make -j$(( ($(nproc)+1)/2 )) gambit
- name: Run ColliderBit_CMSSM.yaml
run: |
. BUILD/buildenv.sh
./gambit -rf yaml_files/ColliderBit_CMSSM.yaml
- name: Run WC.yaml
run: |
. BUILD/buildenv.sh
./gambit -f yaml_files/ColliderBit_CMSSM.yaml
./gambit -rf yaml_files/WC.yaml


# A job that builds all the standalones
standalones_build:
if: ${{ always() }}
needs: [gambit_build, backends_build, test_runs] # Sets run order
runs-on: [docker, self-hosted]
strategy:
fail-fast: false
matrix:
arch: [ubuntu] #, ubuntu-py2, fedora
#mpi: [ON, OFF]
container: gambitbsm/gambit-base:${{ matrix.arch }}
defaults:
run:
shell: bash -eo pipefail {0}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up build environment
run: |
mkdir -p BUILD
cd BUILD
echo "Sourcing setup.sh"
cat /etc/profile.d/gambit-setup.sh
source /etc/profile.d/gambit-setup.sh
echo "Making buildenv.sh"
> buildenv.sh
echo "source /etc/profile.d/gambit-setup.sh" >> buildenv.sh
echo "export CMAKE_BUILD_TYPE=None" >> buildenv.sh
echo "export CMAKE_C_COMPILER=$(which gcc)" >> buildenv.sh
echo "export CMAKE_CXX_COMPILER=$(which g++)" >> buildenv.sh
echo "export CMAKE_Fortran_COMPILER=$(which gfortran)" >> buildenv.sh
PYTHON_LIBRARY=$(python -c 'from __future__ import print_function; from distutils.sysconfig import get_config_var; print("%s/%s" % (get_config_var("LIBDIR"), get_config_var("INSTSONAME")))')
PYTHON_INCLUDE_DIR=$(python -c 'from __future__ import print_function; from distutils import sysconfig; print(sysconfig.get_config_var("INCLUDEPY"))')
echo "export PYTHON_EXECUTABLE=$(which python)" >> buildenv.sh
echo "export PYTHON_LIBRARY=$PYTHON_LIBRARY" >> buildenv.sh
echo "export PYTHON_INCLUDE_DIR=$PYTHON_INCLUDE_DIR" >> buildenv.sh
echo "export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH" >> buildenv.sh
cat buildenv.sh
pip install --upgrade pyyaml pybind11 h5py scipy numpy pyhf configobj pandas matplotlib setuptools==58.2.0
- name: Configure with cmake
run: |
cd BUILD/ && . buildenv.sh
cmake .. -D CMAKE_CXX_FLAGS="-rdynamic" -D WITH_ROOT=OFF -D WITH_RESTFRAMES=OFF -D WITH_HEPMC=ON -D WITH_YODA=ON -D BUILD_FS_MODELS="CMSSM;MSSM;MDM" -D WITH_MPI=OFF
- name: Build standalones
run: |
cd BUILD && . buildenv.sh
make standalones


# - name: Validation dependencies
# run: |
# . BUILD/buildenv.sh
Expand Down
Loading