diff --git a/.github/workflows/buildtest.yml b/.github/workflows/buildtest.yml index a231f2430..5fee104ba 100644 --- a/.github/workflows/buildtest.yml +++ b/.github/workflows/buildtest.yml @@ -27,13 +27,41 @@ env: 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: name: Build and Test runs-on: ubuntu-latest strategy: matrix: distro: ["ubuntu-18.04", "debian-10", "debian-9", "ubuntu-20.04"] - debugOrRelease: ["debug", "release"] + debugOrRelease: ["release"] steps: - name: Setup cmake arguments # this is strangely the best way to implement environment variables based on the value of another @@ -160,7 +188,7 @@ jobs: notify: name: Email notification runs-on: ubuntu-latest - needs: [noDeploy, deploy] + needs: [indepthTests, noDeploy, deploy] # Only run in main repo and even if previous step failed if: github.repository_owner == 'moves-rwth' && always() steps: