tests: end-to-end suite scaffold + stream-mode scenario

Add tests/e2e/ structure with shared bash helpers and the first
scenario (stream-mode): spin up real Traefik + Crowdsec via docker
compose, mount the repo as a local plugin, add a ban via cscli, verify
the bouncer blocks the matching X-Forwarded-For, then delete the
decision and verify pass-through.

Adds .github/workflows/e2e.yml with one matrix job per scenario
(stream-mode for now), and Makefile targets `e2e` and `e2e_<scenario>`
for local runs.

Refs #328
This commit is contained in:
mhx
2026-06-06 12:03:19 +02:00
parent 71d845faae
commit 900c7ebdc2
7 changed files with 287 additions and 1 deletions
+34
View File
@@ -0,0 +1,34 @@
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: ${{ matrix.scenario }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
scenario:
- stream-mode
steps:
- uses: actions/checkout@v6
- name: Run scenario
run: ./tests/e2e/scenarios/${{ matrix.scenario }}/run.sh
- name: Upload logs on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: logs-${{ matrix.scenario }}
path: /tmp/e2e-${{ matrix.scenario }}.log
if-no-files-found: ignore