39 lines
1.9 KiB
YAML
39 lines
1.9 KiB
YAML
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)"
|