CI with GitHub Actions¶
Intentions in using GitHub Actions¶
We want to test all PRs before mergeing by:
- build test 
- code linting 
- license check 
- unit-tests 
- creating a test coverage report 
- smoke tests 
- integration tests 
- running benchmarks 
- automatic upload of new releases 
How to develop GitHub Actions¶
Find a detailed documentation here
Adding Badges with CI status¶
Paste a link in the form of   where you want to integrate the badge for the build-and-test workflow.
Find an explanation here
Running GitHub Actions locally¶
To run the GitHub Actions locally act can be used.
The way the Actions are written right now they need an ubuntu image with passwordless sudo.
With that image build under the tag ubuntu-sudo the command can be run:
act -P ubuntu-latest=ubuntu-sudo --pull=false --artifact-server-path=/tmp/artifacts
which leaves the build artefacts under /tmp/artifacts
known issues¶
- job artefacts lose their permissions so executables are no longer set as executable when downloaded in a different job - a possibility to fix that ist to run - chmodon all files needing specific permissions. for example to make all utests in the Release build folder executable:- for test in $(find build/Release/cmake/ -name "*_utest"); do chmod +x $test done 
 
- uploading and downloading artefacts with - actions/upload-artifact@v3&- actions/download-artifact@v3takes a very long time, especially with artefacts containing a lot of (small) files.
