when: - event: [push, manual] branch: [main] steps: prepare-e2e-image-tags: image: alpine:3.21 commands: - SHORT_SHA="$(echo "$CI_COMMIT_SHA" | cut -c1-8)" - printf '%s\n' "$SHORT_SHA" > .e2e-tags - printf '%s\n' "latest" >> .e2e-tags build-and-push-e2e-image: image: docker.io/woodpeckerci/plugin-docker-buildx:latest privileged: true depends_on: - prepare-e2e-image-tags settings: registry: git.cluster.lab.kemkas.hu repo: git.cluster.lab.kemkas.hu/${CI_REPO}-e2e context: e2e dockerfile: e2e/Dockerfile tags_file: .e2e-tags username: from_secret: gitea_packages_username password: from_secret: gitea_packages_token run-e2e: image: docker:28-cli privileged: true depends_on: - build-and-push-e2e-image environment: GITEA_PACKAGES_USERNAME: from_secret: gitea_packages_username GITEA_PACKAGES_TOKEN: from_secret: gitea_packages_token commands: - SHORT_SHA="$(echo "$CI_COMMIT_SHA" | cut -c1-8)" - export FRONTEND_IMAGE="git.cluster.lab.kemkas.hu/${CI_REPO}:${SHORT_SHA}" - export E2E_IMAGE="git.cluster.lab.kemkas.hu/${CI_REPO}-e2e:${SHORT_SHA}" - docker login git.cluster.lab.kemkas.hu -u "$GITEA_PACKAGES_USERNAME" -p "$GITEA_PACKAGES_TOKEN" - | for i in $(seq 1 30); do if docker manifest inspect "$FRONTEND_IMAGE" >/dev/null 2>&1; then break fi if [ "$i" -eq 30 ]; then echo "Frontend image not available: $FRONTEND_IMAGE" exit 1 fi echo "Waiting for frontend image: $FRONTEND_IMAGE" sleep 10 done - trap 'docker compose -f e2e.docker-compose.yaml down -v --remove-orphans' EXIT - docker compose -f e2e.docker-compose.yaml pull - docker compose -f e2e.docker-compose.yaml up --no-build --abort-on-container-exit --exit-code-from e2e e2e