name: E2E
on:
push:
branches: [main]
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
e2e:
name: E2E (Docker Compose)
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Build bria image
uses: docker/build-push-action@v7
with:
context: .
file: ./Dockerfile
tags: bria:e2e
load: true
platforms: linux/amd64
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Start shared infra
working-directory: tests/e2e
run: ./run.sh --infra-up
- name: Run e2e
working-directory: tests/e2e
run: |
scenarios=(
http-pg
file-file
file-sqlite
http-file
http-sqlite
http-sse
webhook-pg
cron-file
pg-pg
sqlite-file
queue-file
http-queue
http-webhook
http-pg-recovery
http-nonzero
http-413
http-cancel
http-condition-false
webhook-hmac-401
)
failed=0
for s in "${scenarios[@]}"; do
echo "::group::$s"
if ./run.sh "$s"; then
echo "PASS"
else
echo "FAIL"
failed=1
fi
echo "::endgroup::"
done
exit "$failed"
- name: Tear down shared infra
if: always()
working-directory: tests/e2e
run: ./run.sh --infra-down