From 3709a29a57304a34c13b0a4a23ea6029fd138f9b Mon Sep 17 00:00:00 2001 From: balint Date: Sun, 5 Apr 2026 09:33:43 +0200 Subject: [PATCH] fix images in ci --- .github/workflows/ci.yml | 98 ++++++++++++++++++++++++++++------------ docker-compose.e2e.yaml | 4 +- 2 files changed, 71 insertions(+), 31 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 490890e..b10e8fa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,13 +37,78 @@ jobs: cd ./frontend yarn run lint + docker-fe-build: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + outputs: + image_tag: ${{ steps.image-tag.outputs.image_tag }} + steps: + - uses: actions/checkout@v4 + - uses: docker/setup-buildx-action@v3 + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Compute frontend image tag + id: image-tag + run: echo "image_tag=ghcr.io/${{ github.repository_owner }}/kemkas-frontend:${GITHUB_SHA::8}" >> $GITHUB_OUTPUT + - name: Build and push frontend image + uses: docker/build-push-action@v5 + with: + context: ./frontend/ + file: ./frontend/Dockerfile + cache-from: type=gha + cache-to: type=gha,mode=max + push: true + tags: | + ${{ steps.image-tag.outputs.image_tag }} + + docker-e2e-build: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + outputs: + image_tag: ${{ steps.image-tag.outputs.image_tag }} + steps: + - uses: actions/checkout@v4 + - uses: docker/setup-buildx-action@v3 + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Compute e2e image tag + id: image-tag + run: echo "image_tag=ghcr.io/${{ github.repository_owner }}/kemkas-e2e:${GITHUB_SHA::8}" >> $GITHUB_OUTPUT + - name: Build and push e2e image + uses: docker/build-push-action@v5 + with: + context: ./e2e/ + file: ./e2e/Dockerfile + cache-from: type=gha + cache-to: type=gha,mode=max + push: true + tags: | + ${{ steps.image-tag.outputs.image_tag }} + ci-e2e-docker: runs-on: ubuntu-latest + needs: + - docker-fe-build + - docker-e2e-build permissions: contents: read packages: read env: BACKEND_IMAGE: ${{ vars.BACKEND_IMAGE || 'ghcr.io/morbalint/kemkas-backend:b8565f8e' }} + FRONTEND_IMAGE: ${{ needs.docker-fe-build.outputs.image_tag }} + E2E_IMAGE: ${{ needs.docker-e2e-build.outputs.image_tag }} steps: - uses: actions/checkout@v4 - name: Create GitHub App installation token @@ -54,6 +119,7 @@ jobs: private-key: ${{ secrets.E2E_APP_KEY }} owner: ${{ github.repository_owner }} repositories: | + kemkas kemkas-backend - name: Log in to GitHub Container Registry uses: docker/login-action@v3 @@ -61,12 +127,10 @@ jobs: registry: ghcr.io username: x-access-token password: ${{ steps.app-token.outputs.token }} - - name: Pull images - run: docker compose -f docker-compose.e2e.yaml pull - - name: Build local images - run: docker compose -f docker-compose.e2e.yaml build --pull + - name: Pull images for test run + run: docker compose -f docker-compose.e2e.yaml pull backend frontend e2e - name: Run Docker Compose E2E tests - run: docker compose -f docker-compose.e2e.yaml up --build --abort-on-container-exit --exit-code-from e2e e2e + run: docker compose -f docker-compose.e2e.yaml up --no-build --abort-on-container-exit --exit-code-from e2e e2e - name: Upload Playwright HTML report if: always() uses: actions/upload-artifact@v4 @@ -85,30 +149,6 @@ jobs: if: always() run: docker compose -f docker-compose.e2e.yaml down -v --remove-orphans - docker-fe-build: - runs-on: ubuntu-latest - outputs: - image_tag: ${{ steps.get_image_tag.outputs.image_tag }} - steps: - - uses: actions/checkout@v4 - - uses: docker/setup-buildx-action@v3 - - name: Log in to GitHub Container Registry - run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - - id: get_image_tag - run: | - echo "GITHUB_SHA_SHORT=$(echo ${GITHUB_SHA::8})" >> $GITHUB_ENV - echo "ghcr.io/${{ github.repository_owner }}/kemkas-frontend:${GITHUB_SHA::8}" - echo "image_tag=ghcr.io/${{ github.repository_owner }}/kemkas-fe:${GITHUB_SHA::8}" >> $GITHUB_OUTPUT - - uses: docker/build-push-action@v5 - with: - context: ./frontend/ - file: ./frontend/Dockerfile - cache-from: type=gha - cache-to: type=gha,mode=max - push: true - tags: | - ghcr.io/${{ github.repository_owner }}/kemkas-frontend:${{ env.GITHUB_SHA_SHORT }} - # No longer used, and token expired. # deploy-to-beta: # runs-on: ubuntu-latest diff --git a/docker-compose.e2e.yaml b/docker-compose.e2e.yaml index 1a9eb77..99cfd38 100644 --- a/docker-compose.e2e.yaml +++ b/docker-compose.e2e.yaml @@ -31,7 +31,7 @@ services: condition: service_healthy frontend: - image: kemkas/frontend-e2e:local + image: ${FRONTEND_IMAGE:-ghcr.io/morbalint/kemkas-frontend:local} build: context: ./frontend dockerfile: Dockerfile @@ -58,7 +58,7 @@ services: start_period: 5s e2e: - image: kemkas/e2e:local + image: ${E2E_IMAGE:-ghcr.io/morbalint/kemkas-e2e:local} build: context: ./e2e dockerfile: Dockerfile