|
@ -27,13 +27,41 @@ env: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
jobs: |
|
|
jobs: |
|
|
|
|
|
indepthTests: |
|
|
|
|
|
name: Indepth Tests (${{ matrix.cmakeArgs.name }}) |
|
|
|
|
|
runs-on: ubuntu-latest |
|
|
|
|
|
env: |
|
|
|
|
|
DISTRO: "ubuntu-20.10" |
|
|
|
|
|
strategy: |
|
|
|
|
|
matrix: |
|
|
|
|
|
cmakeArgs: |
|
|
|
|
|
- {name: "GMP exact; GMP rational functions", args: "-DCMAKE_BUILD_TYPE=Debug -DSTORM_DEVELOPER=ON -DSTORM_PORTABLE=ON -DSTORM_USE_CLN_EA=OFF -DSTORM_USE_CLN_RF=OFF"} |
|
|
|
|
|
# This is the standard config |
|
|
|
|
|
# - {name: "GMP exact; CLN rational functions", args: "-DCMAKE_BUILD_TYPE=Debug -DSTORM_DEVELOPER=ON -DSTORM_PORTABLE=ON -DSTORM_USE_CLN_EA=OFF -DSTORM_USE_CLN_RF=ON"} |
|
|
|
|
|
- {name: "CLN exact; GMP rational functions", args: "-DCMAKE_BUILD_TYPE=Debug -DSTORM_DEVELOPER=ON -DSTORM_PORTABLE=ON -DSTORM_USE_CLN_EA=ON -DSTORM_USE_CLN_RF=OFF"} |
|
|
|
|
|
- {name: "CLN exact; CLN rational functions", args: "-DCMAKE_BUILD_TYPE=Debug -DSTORM_DEVELOPER=ON -DSTORM_PORTABLE=ON -DSTORM_USE_CLN_EA=ON -DSTORM_USE_CLN_RF=ON"} |
|
|
|
|
|
steps: |
|
|
|
|
|
- name: Init Docker |
|
|
|
|
|
run: sudo docker run -d -it --name storm --privileged movesrwth/storm-basesystem:${DISTRO} |
|
|
|
|
|
- name: Git clone |
|
|
|
|
|
# git clone cannot clone individual commits based on a sha and some other refs |
|
|
|
|
|
# this workaround fixes this and fetches only one commit |
|
|
|
|
|
run: | |
|
|
|
|
|
sudo docker exec storm bash -c "mkdir /opt/storm; cd /opt/storm; git init && git remote add origin ${STORM_GIT_URL} && git fetch --depth 1 origin ${STORM_BRANCH} && git checkout FETCH_HEAD" |
|
|
|
|
|
- name: Run cmake |
|
|
|
|
|
run: sudo docker exec storm bash -c "mkdir /opt/storm/build; cd /opt/storm/build; cmake .. ${{ matrix.cmakeArgs.args }}" |
|
|
|
|
|
- name: Build storm |
|
|
|
|
|
run: sudo docker exec storm bash -c "cd /opt/storm/build; make -j ${NR_JOBS}" |
|
|
|
|
|
- name: Run unit tests |
|
|
|
|
|
run: sudo docker exec storm bash -c "cd /opt/storm/build; ctest test --output-on-failure" |
|
|
|
|
|
|
|
|
noDeploy: |
|
|
noDeploy: |
|
|
name: Build and Test |
|
|
name: Build and Test |
|
|
runs-on: ubuntu-latest |
|
|
runs-on: ubuntu-latest |
|
|
strategy: |
|
|
strategy: |
|
|
matrix: |
|
|
matrix: |
|
|
distro: ["ubuntu-18.04", "debian-10", "debian-9", "ubuntu-20.04"] |
|
|
distro: ["ubuntu-18.04", "debian-10", "debian-9", "ubuntu-20.04"] |
|
|
debugOrRelease: ["debug", "release"] |
|
|
|
|
|
|
|
|
debugOrRelease: ["release"] |
|
|
steps: |
|
|
steps: |
|
|
- name: Setup cmake arguments |
|
|
- name: Setup cmake arguments |
|
|
# this is strangely the best way to implement environment variables based on the value of another |
|
|
# this is strangely the best way to implement environment variables based on the value of another |
|
@ -160,7 +188,7 @@ jobs: |
|
|
notify: |
|
|
notify: |
|
|
name: Email notification |
|
|
name: Email notification |
|
|
runs-on: ubuntu-latest |
|
|
runs-on: ubuntu-latest |
|
|
needs: [noDeploy, deploy] |
|
|
|
|
|
|
|
|
needs: [indepthTests, noDeploy, deploy] |
|
|
# Only run in main repo and even if previous step failed |
|
|
# Only run in main repo and even if previous step failed |
|
|
if: github.repository_owner == 'moves-rwth' && always() |
|
|
if: github.repository_owner == 'moves-rwth' && always() |
|
|
steps: |
|
|
steps: |
|
|