Integration Tests #71
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Integration Tests | |
| "on": | |
| workflow_dispatch: | |
| inputs: | |
| extra_resolve_options: | |
| description: Extra Resolve Options | |
| required: false | |
| schedule: | |
| - cron: 0 1 * * * | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| jobs: | |
| integration_tests: | |
| timeout-minutes: 45 | |
| strategy: | |
| fail-fast: false | |
| runs-on: | |
| - self-hosted | |
| - vm | |
| - ubuntu-current | |
| name: Integration Tests | |
| container: | |
| image: ghcr.io/steinwurf/integration-test:1.0.0 | |
| options: --user 0:0 --privileged | |
| volumes: | |
| - /root/.ssh:/root/.ssh | |
| steps: | |
| - name: Ensure correct owner of repository | |
| run: chown -R actions-runner:actions-runner . | |
| - name: Checkout source code | |
| uses: actions/checkout@v3 | |
| - name: Waf Configure | |
| env: | |
| EXTRA_RESOLVE_OPTIONS: ${{ inputs.extra_resolve_options }} | |
| uses: nick-fields/retry@v2 | |
| with: | |
| max_attempts: 3 | |
| timeout_minutes: 15 | |
| command: python3 waf configure --git_protocol=git@ ${{ env.EXTRA_RESOLVE_OPTIONS }} --ninja | |
| - name: Waf Build | |
| run: | | |
| echo "::add-matcher::.github/gcc-problem-matcher.json" | |
| python3 waf | |
| - name: Waf Integration Test | |
| run: python3 waf integration_test | |
| - name: Get backtrace on failure if available | |
| if: failure() | |
| run: bash get_backtraces.sh | |
| - name: Change owner of local files so cleanup is possible for other workflows | |
| if: always() || ${{ job.status == 'cancelled' }} | |
| run: chown -R actions-runner:actions-runner . | |
| workflow-keepalive: | |
| if: github.event_name == 'schedule' | |
| runs-on: [self-hosted, vm, ubuntu-current] | |
| permissions: | |
| actions: write | |
| steps: | |
| - uses: liskin/gh-workflow-keepalive@v1 | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref || github.run_id }} | |
| cancel-in-progress: true |