Gambit Linux X64 CI on GH Runner #107
This file contains hidden or 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: Gambit Linux X64 CI on GH Runner | |
| on: | |
| push: | |
| branches: [ master, ci-* ] | |
| pull_request: | |
| branches: [ master ] | |
| schedule: | |
| - cron: '0 5 * * *' | |
| jobs: | |
| gambit_build: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [X64] | |
| defaults: | |
| run: | |
| shell: bash -eo pipefail {0} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v2 | |
| - name: Install required packages | |
| run: | | |
| ## Compulsory packages to compile GAMBIT | |
| sudo apt-get update && \ | |
| sudo apt-get -y install --no-install-recommends \ | |
| build-essential \ | |
| gfortran \ | |
| cmake \ | |
| git \ | |
| python3-yaml \ | |
| libboost-all-dev \ | |
| libgsl-dev \ | |
| libeigen3-dev \ | |
| liblapack-dev \ | |
| pkg-config && \ | |
| sudo apt-get clean | |
| ## Optional packages for extended GAMBIT functionality | |
| sudo apt-get -y install --no-install-recommends \ | |
| libhdf5-dev \ | |
| libopenmpi-dev \ | |
| libcfitsio-dev \ | |
| libfftw3-dev \ | |
| libxml2-dev \ | |
| libgmp-dev \ | |
| libmpfr-dev \ | |
| libmpc-dev \ | |
| python3-venv \ | |
| python3-pip \ | |
| python3-dev \ | |
| libhdf5-dev && \ | |
| sudo apt-get clean | |
| sudo mkdir -p /opt/venv | |
| # Set up Python virtual environment and install packages | |
| sudo python3 -m venv /opt/venv && \ | |
| /opt/venv/bin/python -m pip install --upgrade pip setuptools wheel && \ | |
| python3 -m pip install \ | |
| cython \ | |
| numpy \ | |
| scipy \ | |
| numba \ | |
| matplotlib \ | |
| future \ | |
| pyyaml \ | |
| dill | |
| export PATH="/opt/venv/bin:${PATH}" | |
| - name: Set up build environment | |
| run: | | |
| mkdir -p BUILD | |
| cd BUILD | |
| - name: Configure with cmake | |
| run: | | |
| cd BUILD | |
| cmake -DWITH_MPI=ON -Ditch="great;CosmoBit;NeutrinoBit;ExampleBit_B;mathematica;DarkBit;ColliderBit;FlavBit;PrecisionBit" .. | |
| - name: Build scanners | |
| run: | | |
| cd BUILD | |
| make -j10 scanners | |
| cmake .. | |
| - name: Build Gambit | |
| run: | | |
| cd BUILD | |
| make -j10 gambit | |
| - name: CLI test | |
| run: | | |
| ./gambit -h | |
| - name: Run spartan.yaml | |
| run: | | |
| echo "Testing spartan.yaml (with cout printer)" | |
| sed -i 's/ hdf5/ cout/g' yaml_files/spartan.yaml | |
| ./gambit -rf yaml_files/spartan.yaml | |
| backends_build: | |
| needs: [gambit_build] # Sets run order | |
| if: ${{ !cancelled() }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [X64] | |
| defaults: | |
| run: | |
| shell: bash -eo pipefail {0} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v2 | |
| - name: Install required packages | |
| run: | | |
| ## Compulsory packages to compile GAMBIT | |
| sudo apt-get update && \ | |
| sudo apt-get -y install --no-install-recommends \ | |
| build-essential \ | |
| gfortran \ | |
| cmake \ | |
| git \ | |
| python3-yaml \ | |
| libboost-all-dev \ | |
| libgsl-dev \ | |
| libeigen3-dev \ | |
| liblapack-dev \ | |
| pkg-config && \ | |
| sudo apt-get clean | |
| ## Optional packages for extended GAMBIT functionality | |
| sudo apt-get -y install --no-install-recommends \ | |
| libhdf5-dev \ | |
| libopenmpi-dev \ | |
| libcfitsio-dev \ | |
| libfftw3-dev \ | |
| libxml2-dev \ | |
| libgmp-dev \ | |
| libmpfr-dev \ | |
| libmpc-dev \ | |
| python3-venv \ | |
| python3-pip \ | |
| python3-dev \ | |
| libhdf5-dev && \ | |
| sudo apt-get clean | |
| sudo mkdir -p /opt/venv | |
| # Set up Python virtual environment and install packages | |
| sudo python3 -m venv /opt/venv && \ | |
| /opt/venv/bin/python -m pip install --upgrade pip setuptools wheel && \ | |
| python3 -m pip install \ | |
| cython \ | |
| numpy \ | |
| scipy \ | |
| numba \ | |
| matplotlib \ | |
| future \ | |
| pyyaml \ | |
| dill | |
| export PATH="/opt/venv/bin:${PATH}" | |
| - name: Set up build environment | |
| run: | | |
| mkdir -p BUILD | |
| cd BUILD | |
| - name: Configure with cmake | |
| run: | | |
| cd BUILD | |
| cmake -DWITH_MPI=ON -DWITH_HEPMC=ON -DBUILD_FS_MODELS="CMSSM;MSSM;MDM" -Ditch="great" .. | |
| - name: Build Backends | |
| run: | | |
| cd BUILD | |
| # 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" | |
| run_tests: | |
| needs: [gambit_build, backends_build] # Sets run order | |
| if: ${{ !cancelled() }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [X64] | |
| defaults: | |
| run: | |
| shell: bash -eo pipefail {0} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v2 | |
| - name: Install required packages | |
| run: | | |
| ## Compulsory packages to compile GAMBIT | |
| sudo apt-get update && \ | |
| sudo apt-get -y install --no-install-recommends \ | |
| build-essential \ | |
| gfortran \ | |
| cmake \ | |
| git \ | |
| python3-yaml \ | |
| libboost-all-dev \ | |
| libgsl-dev \ | |
| libeigen3-dev \ | |
| liblapack-dev \ | |
| pkg-config && \ | |
| sudo apt-get clean | |
| ## Optional packages for extended GAMBIT functionality | |
| sudo apt-get -y install --no-install-recommends \ | |
| libhdf5-dev \ | |
| libopenmpi-dev \ | |
| libcfitsio-dev \ | |
| libfftw3-dev \ | |
| libxml2-dev \ | |
| libgmp-dev \ | |
| libmpfr-dev \ | |
| libmpc-dev \ | |
| python3-venv \ | |
| python3-pip \ | |
| python3-dev \ | |
| libhdf5-dev && \ | |
| sudo apt-get clean | |
| sudo mkdir -p /opt/venv | |
| # Set up Python virtual environment and install packages | |
| sudo python3 -m venv /opt/venv && \ | |
| /opt/venv/bin/python -m pip install --upgrade pip setuptools wheel && \ | |
| python3 -m pip install \ | |
| cython \ | |
| numpy \ | |
| scipy \ | |
| numba \ | |
| matplotlib \ | |
| future \ | |
| pyyaml \ | |
| dill | |
| export PATH="/opt/venv/bin:${PATH}" | |
| - name: Set up build environment | |
| run: | | |
| mkdir -p BUILD | |
| cd BUILD | |
| - name: Configure with cmake | |
| run: | | |
| cd BUILD | |
| cmake -DWITH_MPI=ON -DWITH_HEPMC=ON -DBUILD_FS_MODELS="CMSSM;MSSM;MDM" -Ditch="great" .. | |
| - name: Build scanners | |
| run: | | |
| cd BUILD | |
| make -j10 diver | |
| cmake .. | |
| - name: Build Backends | |
| run: | | |
| cd BUILD | |
| make pythia | |
| make higgssignals | |
| make nulike | |
| make ATLAS_FullLikes | |
| make susyhit | |
| make heplike | |
| make superiso | |
| make rivet | |
| make contur | |
| - name: Build Gambit | |
| run: | | |
| cd BUILD | |
| make -j10 gambit | |
| - name: Run ColliderBit_CMSSM.yaml | |
| run: | | |
| ./gambit -f yaml_files/ColliderBit_CMSSM.yaml | |
| - name: Run WC_lite.yaml | |
| run: | | |
| echo "Test run with WC_lite.yaml (no printing)" | |
| sed -i "" 's/ hdf5/ none/g' yaml_files/WC_lite.yaml | |
| ./gambit -f yaml_files/WC_lite.yaml | |
| build_standalones: | |
| needs: [gambit_build, backends_build, run_tests] # Sets run order | |
| if: ${{ !cancelled() }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [X64] | |
| defaults: | |
| run: | |
| shell: bash -eo pipefail {0} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v2 | |
| - name: Install required packages | |
| run: | | |
| ## Compulsory packages to compile GAMBIT | |
| sudo apt-get update && \ | |
| sudo apt-get -y install --no-install-recommends \ | |
| build-essential \ | |
| gfortran \ | |
| cmake \ | |
| git \ | |
| python3-yaml \ | |
| libboost-all-dev \ | |
| libgsl-dev \ | |
| libeigen3-dev \ | |
| liblapack-dev \ | |
| pkg-config && \ | |
| sudo apt-get clean | |
| ## Optional packages for extended GAMBIT functionality | |
| sudo apt-get -y install --no-install-recommends \ | |
| libhdf5-dev \ | |
| libopenmpi-dev \ | |
| libcfitsio-dev \ | |
| libfftw3-dev \ | |
| libxml2-dev \ | |
| libgmp-dev \ | |
| libmpfr-dev \ | |
| libmpc-dev \ | |
| python3-venv \ | |
| python3-pip \ | |
| python3-dev \ | |
| libhdf5-dev && \ | |
| sudo apt-get clean | |
| sudo mkdir -p /opt/venv | |
| # Set up Python virtual environment and install packages | |
| sudo python3 -m venv /opt/venv && \ | |
| /opt/venv/bin/python -m pip install --upgrade pip setuptools wheel && \ | |
| python3 -m pip install \ | |
| cython \ | |
| numpy \ | |
| scipy \ | |
| numba \ | |
| matplotlib \ | |
| future \ | |
| pyyaml \ | |
| dill | |
| export PATH="/opt/venv/bin:${PATH}" | |
| - name: Set up build environment | |
| run: | | |
| mkdir -p BUILD | |
| cd BUILD | |
| - name: Configure with cmake | |
| run: | | |
| cd BUILD | |
| cmake -DWITH_MPI=ON -DWITH_HEPMC=ON -DBUILD_FS_MODELS="CMSSM;MSSM;MDM" -Ditch="great" .. | |
| - name: Build Standalones | |
| run: | | |
| cd BUILD | |
| make standalones | |