name: E2E check # Branche jetable ci/e2e-check : determine si le workspace du job est aligne cote hote # (les bind-mounts des conteneurs freres sont resolus par le demon de l'hote). Le verdict # est ecrit dans un volume Docker nomme `e2e_diag` pour relecture sur le runner. A supprimer. # Pas de set -e : on veut ecrire le verdict meme si une etape intermediaire echoue. on: push: branches: ['ci/e2e-check'] jobs: check: runs-on: docker steps: - uses: actions/checkout@v4 - name: Verdict d'alignement -> volume e2e_diag run: | 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/diag.txt { echo "date=$(date -u +%FT%TZ)" echo "docker_version=$(docker --version 2>&1)" echo "GITHUB_WORKSPACE=[$GITHUB_WORKSPACE]" echo "PWD=[$(pwd)]" echo "DOCKER_HOST=[${DOCKER_HOST:-}]" echo "socket=$(ls -la /var/run/docker.sock 2>&1)" echo "docker_info=$(docker info --format '{{.ServerVersion}}' 2>&1)" echo "--- mountinfo (work) ---" grep -iE 'work' /proc/self/mountinfo 2>&1 || echo "(aucune ligne work)" echo "--- marqueur ---" echo "ALIGN_TOKEN_42" > "${GITHUB_WORKSPACE}/__align_marker" 2>&1 echo "write_marker_rc=$?" got=$(docker run --rm -v "${GITHUB_WORKSPACE}:/x" alpine sh -c 'cat /x/__align_marker 2>/dev/null' 2>&1) echo "marker_read=[$got]" if [ "$got" = "ALIGN_TOKEN_42" ]; then echo "VERDICT=PATH_ALIGNED"; else echo "VERDICT=PATH_NOT_ALIGNED"; fi } > "$LOG" 2>&1 cat "$LOG" docker volume create e2e_diag >/dev/null 2>&1 docker run --rm -i -v e2e_diag:/out alpine sh -c 'cat > /out/result.txt' < "$LOG" echo "(verdict ecrit dans le volume e2e_diag)"