name: E2E on: push: branches: [main] pull_request: concurrency: group: e2e-${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: e2e: name: e2e runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 # A single runner runs every scenario sequentially. Docker caches the # Traefik/Crowdsec/whoami images locally, so they are pulled only once # for the whole suite instead of once per scenario. `-k` keeps going # after a failing scenario so the logs cover all of them, while make # still exits non-zero if any scenario failed. - name: Run scenarios run: make -k e2e - name: Upload logs on failure if: failure() uses: actions/upload-artifact@v4 with: name: e2e-logs path: /tmp/e2e-*.log if-no-files-found: ignore