diff --git a/.woodpecker/e2e.yaml b/.woodpecker/build-and-e2e.yaml similarity index 56% rename from .woodpecker/e2e.yaml rename to .woodpecker/build-and-e2e.yaml index f5f3fdd..395ca83 100644 --- a/.woodpecker/e2e.yaml +++ b/.woodpecker/build-and-e2e.yaml @@ -1,9 +1,9 @@ when: - - event: [push, manual] + - event: [push, manual, pull_request] branch: [main] steps: - prepare-e2e-image-tags: + prepare-fe-image-tags: image: alpine:3.21 commands: - | @@ -16,15 +16,33 @@ steps: REF_NAME="$(printf '%s' "$REF_NAME" | sed 's#[^A-Za-z0-9_.-]#-#g')" IMAGE_TAG="$(printf '%s' "${REF_NAME:-manual}-${CI_PIPELINE_NUMBER:-0}" | cut -c1-32)" fi - echo "Using e2e image tag: $IMAGE_TAG" + echo "Using frontend image tag: $IMAGE_TAG" + printf '%s\n' "$IMAGE_TAG" > .fe-tags + printf '%s\n' "latest" >> .fe-tags printf '%s\n' "$IMAGE_TAG" > .e2e-tags - - printf '%s\n' "latest" >> .e2e-tags + printf '%s\n' "latest" >> .e2e-tags + + build-and-push-fe-image: + image: docker.io/woodpeckerci/plugin-docker-buildx:latest + privileged: true + depends_on: + - prepare-fe-image-tags + settings: + registry: git.cluster.lab.kemkas.hu + repo: git.cluster.lab.kemkas.hu/${CI_REPO} + context: frontend + dockerfile: frontend/Dockerfile + tags_file: .fe-tags + username: + from_secret: gitea_packages_username + password: + from_secret: gitea_packages_token build-and-push-e2e-image: image: docker.io/woodpeckerci/plugin-docker-buildx:latest privileged: true depends_on: - - prepare-e2e-image-tags + - prepare-fe-image-tags settings: registry: git.cluster.lab.kemkas.hu repo: git.cluster.lab.kemkas.hu/${CI_REPO}-e2e @@ -40,6 +58,7 @@ steps: image: docker:28-cli privileged: true depends_on: + - build-and-push-fe-image - build-and-push-e2e-image environment: GITEA_PACKAGES_USERNAME: @@ -48,33 +67,11 @@ steps: from_secret: gitea_packages_token commands: - | - COMMIT_SHA="${CI_COMMIT_SHA:-${CI_COMMIT:-${DRONE_COMMIT_SHA:-${DRONE_COMMIT:-}}}}" - if [ -n "$COMMIT_SHA" ]; then - IMAGE_TAG="$(printf '%s' "$COMMIT_SHA" | cut -c1-8)" - else - REF_NAME="${CI_COMMIT_REF:-${CI_COMMIT_BRANCH:-manual}}" - REF_NAME="${REF_NAME#refs/heads/}" - REF_NAME="$(printf '%s' "$REF_NAME" | sed 's#[^A-Za-z0-9_.-]#-#g')" - IMAGE_TAG="$(printf '%s' "${REF_NAME:-manual}-${CI_PIPELINE_NUMBER:-0}" | cut -c1-32)" - fi + IMAGE_TAG="$(head -n1 .fe-tags)" export FRONTEND_IMAGE="git.cluster.lab.kemkas.hu/${CI_REPO}:${IMAGE_TAG}" export E2E_IMAGE="git.cluster.lab.kemkas.hu/${CI_REPO}-e2e:${IMAGE_TAG}" echo "Using image tag: $IMAGE_TAG" - - 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 \ No newline at end of file + docker login git.cluster.lab.kemkas.hu -u "$GITEA_PACKAGES_USERNAME" -p "$GITEA_PACKAGES_TOKEN" + 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 \ No newline at end of file diff --git a/.woodpecker/build-frontend.yaml b/.woodpecker/build-frontend.yaml deleted file mode 100644 index 062e9f8..0000000 --- a/.woodpecker/build-frontend.yaml +++ /dev/null @@ -1,37 +0,0 @@ -when: - - event: [push, manual] - branch: [main] - -steps: - prepare-fe-image-tags: - image: alpine:3.21 - commands: - - | - COMMIT_SHA="${CI_COMMIT_SHA:-${CI_COMMIT:-${DRONE_COMMIT_SHA:-${DRONE_COMMIT:-}}}}" - if [ -n "$COMMIT_SHA" ]; then - IMAGE_TAG="$(printf '%s' "$COMMIT_SHA" | cut -c1-8)" - else - REF_NAME="${CI_COMMIT_REF:-${CI_COMMIT_BRANCH:-manual}}" - REF_NAME="${REF_NAME#refs/heads/}" - REF_NAME="$(printf '%s' "$REF_NAME" | sed 's#[^A-Za-z0-9_.-]#-#g')" - IMAGE_TAG="$(printf '%s' "${REF_NAME:-manual}-${CI_PIPELINE_NUMBER:-0}" | cut -c1-32)" - fi - echo "Using frontend image tag: $IMAGE_TAG" - printf '%s\n' "$IMAGE_TAG" > .fe-tags - - printf '%s\n' "latest" >> .fe-tags - - build-and-push-fe-image: - image: docker.io/woodpeckerci/plugin-docker-buildx:latest - privileged: true - depends_on: - - prepare-fe-image-tags - settings: - registry: git.cluster.lab.kemkas.hu - repo: git.cluster.lab.kemkas.hu/${CI_REPO} - context: frontend - dockerfile: frontend/Dockerfile - tags_file: .fe-tags - username: - from_secret: gitea_packages_username - password: - from_secret: gitea_packages_token \ No newline at end of file