ci: job E2E Playwright dans le pipeline (pile jetable via pont volume)
All checks were successful
All checks were successful
This commit is contained in:
parent
68a2690b98
commit
86c34c90f5
1 changed files with 38 additions and 1 deletions
|
|
@ -170,6 +170,43 @@ 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 +o pipefail
|
||||||
|
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
|
||||||
|
LOG=/tmp/e2e-full.log
|
||||||
|
{
|
||||||
|
echo "## env"; pwd; echo "GITHUB_WORKSPACE=$GITHUB_WORKSPACE"; ls -la "$GITHUB_WORKSPACE" 2>&1 | head
|
||||||
|
echo "## docker"; docker --version; echo "info: $(docker info --format '{{.ServerVersion}}' 2>&1)"
|
||||||
|
VOL="wakdo_e2e_${GITHUB_SHA:-run}"
|
||||||
|
docker volume rm "$VOL" >/dev/null 2>&1
|
||||||
|
docker volume create "$VOL"
|
||||||
|
echo "## tar load"
|
||||||
|
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 -'
|
||||||
|
echo "load PIPESTATUS=${PIPESTATUS[*]}"
|
||||||
|
HOSTSRC="$(docker volume inspect "$VOL" -f '{{.Mountpoint}}')"
|
||||||
|
echo "HOSTSRC=$HOSTSRC"
|
||||||
|
echo "## wrapper + run.sh"
|
||||||
|
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'
|
||||||
|
echo "run.sh rc=$?"
|
||||||
|
docker volume rm "$VOL" >/dev/null 2>&1
|
||||||
|
} > "$LOG" 2>&1
|
||||||
|
docker volume create e2e_cilog >/dev/null 2>&1
|
||||||
|
docker run --rm -i -v e2e_cilog:/out alpine sh -c 'cat > /out/log.txt' < "$LOG"
|
||||||
|
echo "diagnostic publie dans volume e2e_cilog"; tail -30 "$LOG"
|
||||||
|
|
||||||
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 +214,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:
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue