diff options
Diffstat (limited to 'src/n-acd/.github/workflows')
| -rw-r--r-- | src/n-acd/.github/workflows/ci.yml | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/src/n-acd/.github/workflows/ci.yml b/src/n-acd/.github/workflows/ci.yml new file mode 100644 index 00000000..22fc8141 --- /dev/null +++ b/src/n-acd/.github/workflows/ci.yml @@ -0,0 +1,122 @@ +name: Continuous Integration + +on: + push: + pull_request: + schedule: + - cron: '0 0 * * *' + +jobs: + ci: + name: CI with Default Configuration + runs-on: ubuntu-latest + + steps: + # + # Prepare CI + # + # We cannot use the github-action of the `ci-c-util` project, because we + # need privileges in the container. Therefore, fetch the CI sources and + # build the container manually. + # + - name: Fetch CI + uses: actions/checkout@v2 + with: + repository: c-util/automation + ref: v1 + path: automation + - name: Build CI + working-directory: automation/src/ci-c-util + run: docker build --tag ci-c-util:v1 . + + # + # Run CI + # + # Take the CI image we built and run the CI with the default project + # configuration. We do not use valgrind, since it falls-over with bpf(2) + # syscalls. + # + - name: Fetch Sources + uses: actions/checkout@v2 + with: + path: source + - name: Run through C-Util CI + run: | + docker run \ + --privileged \ + -v "$(pwd)/source:/github/workspace" \ + "ci-c-util:v1" \ + "--m32=1" \ + "--source=/github/workspace" + + ci-no-ebpf: + name: CI without eBPF + runs-on: ubuntu-latest + + steps: + # See above in 'ci' job. + - name: Fetch CI + uses: actions/checkout@v2 + with: + repository: c-util/automation + ref: v1 + path: automation + - name: Build CI + working-directory: automation/src/ci-c-util + run: docker build --tag ci-c-util:v1 . + + # + # Run CI + # + # This again runs the CI, but this time disables eBPF. We do support the + # legacy BPF fallback, so lets make sure we test for it. + # + - name: Fetch Sources + uses: actions/checkout@v2 + with: + path: source + - name: Run through C-Util CI + run: | + docker run \ + --privileged \ + -v "$(pwd)/source:/github/workspace" \ + "ci-c-util:v1" \ + "--m32=1" \ + "--mesonargs=-Debpf=false" \ + "--source=/github/workspace" + + ci-valgrind: + name: CI through Valgrind + runs-on: ubuntu-latest + + steps: + # See above in 'ci' job. + - name: Fetch CI + uses: actions/checkout@v2 + with: + repository: c-util/automation + ref: v1 + path: automation + - name: Build CI + working-directory: automation/src/ci-c-util + run: docker build --tag ci-c-util:v1 . + + # + # Run CI + # + # This again runs the CI, but this time through valgrind. Since some + # syscalls are not implemented on x86-64 32bit compat (e.g., bpf(2)), we + # disable the m32 mode. + # + - name: Fetch Sources + uses: actions/checkout@v2 + with: + path: source + - name: Run through C-Util CI + run: | + docker run \ + --privileged \ + -v "$(pwd)/source:/github/workspace" \ + "ci-c-util:v1" \ + "--source=/github/workspace" \ + "--valgrind=1" |