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"