ci: job E2E Playwright dans le pipeline (pile jetable via pont volume)
Some checks failed
CI / secret-scan (push) Successful in 10s
CI / php-lint (push) Successful in 26s
CI / static-tests (push) Successful in 48s
CI / js-tests (push) Successful in 26s
CI / e2e (push) Failing after 7s
CI / auto-merge (push) Has been skipped

This commit is contained in:
Imugiii 2026-06-18 07:51:35 +00:00
parent 68a2690b98
commit 9adcab134e

View file

@ -170,6 +170,41 @@ jobs:
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm ci PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm ci
npm run test:js npm run test:js
e2e:
# Tests navigateur Playwright (parcours borne + admin) sur une pile JETABLE.
# tests/e2e/run.sh monte la pile via docker compose et joue les specs (inchange).
# Specificite CI : act_runner range le workspace du job dans un volume dont le chemin
# n'est pas valide cote demon hote, donc les bind-mounts ./src ./db du compose ne s'y
# resolvent pas. Parade : copier le repo dans un volume nomme dont le mountpoint EST un
# chemin hote valide, puis lancer run.sh depuis un wrapper monte sur ce mountpoint.
# La socket docker est propagee au job (verifie) ; code applicatif et Dockerfiles intacts.
runs-on: docker
steps:
- uses: actions/checkout@v4
- name: Playwright (pile jetable, parcours borne + admin)
run: |
set -e
curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-27.3.1.tgz -o /tmp/d.tgz
tar -xzf /tmp/d.tgz -C /usr/local/bin --strip-components=1 docker/docker
VOL="wakdo_e2e_${GITHUB_SHA:-run}"
docker volume rm "$VOL" >/dev/null 2>&1 || true
docker volume create "$VOL" >/dev/null
tar -C "$GITHUB_WORKSPACE" \
--exclude=./.git --exclude=./node_modules --exclude=./var/backups \
--exclude=./playwright-report --exclude=./test-results \
-cf - . | docker run --rm -i -v "$VOL":/dst alpine sh -c 'cd /dst && tar xf -'
HOSTSRC="$(docker volume inspect "$VOL" -f '{{.Mountpoint}}')"
echo "workspace -> volume $VOL @ $HOSTSRC"
set +e
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
-v "$VOL":"$HOSTSRC" \
-w "$HOSTSRC" \
docker:27-cli sh -c 'apk add --no-cache bash perl >/dev/null 2>&1 && bash tests/e2e/run.sh'
RC=$?
docker volume rm "$VOL" >/dev/null 2>&1 || true
exit $RC
auto-merge: auto-merge:
# Fusion automatique OPT-IN : poser le label `auto-merge` sur la PR. # Fusion automatique OPT-IN : poser le label `auto-merge` sur la PR.
# Ne s'execute que si tous les checks requis passent (needs). # Ne s'execute que si tous les checks requis passent (needs).
@ -177,7 +212,7 @@ jobs:
# `if:` — l'expression contains(github.event.pull_request.labels.*.name, ...) # `if:` — l'expression contains(github.event.pull_request.labels.*.name, ...)
# de Forgejo n'est pas fiable (elle s'evalue a vrai meme sans label, ce qui # de Forgejo n'est pas fiable (elle s'evalue a vrai meme sans label, ce qui
# fusionnait toute PR verte). La verification shell sur l'API est le vrai gate. # fusionnait toute PR verte). La verification shell sur l'API est le vrai gate.
needs: [secret-scan, php-lint, static-tests, js-tests] needs: [secret-scan, php-lint, static-tests, js-tests, e2e]
if: github.event_name == 'pull_request' if: github.event_name == 'pull_request'
runs-on: docker runs-on: docker
steps: steps: