diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml index 7922419..dbe932e 100644 --- a/.forgejo/workflows/build.yml +++ b/.forgejo/workflows/build.yml @@ -2,8 +2,8 @@ # Build and Push Docker Images to Forgejo Registry # ============================================================================= # Triggers on push to main branch and pull requests -# Builds: backend, frontend, chat-service, openresty -# Uses docker:27-git (~50MB) instead of catthehacker/ubuntu (~1.5GB) +# Builds sequentially: backend, frontend, chat-service, openresty +# Single job to avoid rate limiting on git clone # ============================================================================= name: Build and Push @@ -20,10 +20,7 @@ env: IMAGE_PREFIX: realms jobs: - # =========================================================================== - # Build Backend (C++/Drogon) - # =========================================================================== - build-backend: + build-all: runs-on: ubuntu-latest container: image: docker:27 @@ -41,8 +38,12 @@ jobs: run: | echo "${{ secrets.REGISTRY_TOKEN }}" | docker login ${{ env.REGISTRY }} -u ${{ github.actor }} --password-stdin + # ========================================================================= + # Build Backend (C++/Drogon) + # ========================================================================= - name: Build Backend Image run: | + echo "=== Building Backend ===" docker build \ -t ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/backend:${{ github.sha }} \ -t ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/backend:latest \ @@ -54,29 +55,12 @@ jobs: docker push ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/backend:${{ github.sha }} docker push ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/backend:latest - # =========================================================================== - # Build Frontend (SvelteKit) - # =========================================================================== - build-frontend: - runs-on: ubuntu-latest - container: - image: docker:27 - options: --privileged - steps: - - name: Install git - run: apk add --no-cache git - - - name: Checkout code - run: | - git clone --depth 1 --branch ${GITHUB_REF_NAME:-main} https://qbit.realms.pub/${GITHUB_REPOSITORY}.git . - - - name: Login to Forgejo Registry - if: github.event_name == 'push' - run: | - echo "${{ secrets.REGISTRY_TOKEN }}" | docker login ${{ env.REGISTRY }} -u ${{ github.actor }} --password-stdin - + # ========================================================================= + # Build Frontend (SvelteKit) + # ========================================================================= - name: Build Frontend Image run: | + echo "=== Building Frontend ===" docker build \ -t ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/frontend:${{ github.sha }} \ -t ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/frontend:latest \ @@ -88,29 +72,12 @@ jobs: docker push ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/frontend:${{ github.sha }} docker push ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/frontend:latest - # =========================================================================== - # Build Chat Service - # =========================================================================== - build-chat: - runs-on: ubuntu-latest - container: - image: docker:27 - options: --privileged - steps: - - name: Install git - run: apk add --no-cache git - - - name: Checkout code - run: | - git clone --depth 1 --branch ${GITHUB_REF_NAME:-main} https://qbit.realms.pub/${GITHUB_REPOSITORY}.git . - - - name: Login to Forgejo Registry - if: github.event_name == 'push' - run: | - echo "${{ secrets.REGISTRY_TOKEN }}" | docker login ${{ env.REGISTRY }} -u ${{ github.actor }} --password-stdin - + # ========================================================================= + # Build Chat Service + # ========================================================================= - name: Build Chat Service Image run: | + echo "=== Building Chat Service ===" docker build \ -t ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/chat-service:${{ github.sha }} \ -t ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/chat-service:latest \ @@ -122,29 +89,12 @@ jobs: docker push ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/chat-service:${{ github.sha }} docker push ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/chat-service:latest - # =========================================================================== - # Build OpenResty (Nginx + Lua) - # =========================================================================== - build-openresty: - runs-on: ubuntu-latest - container: - image: docker:27 - options: --privileged - steps: - - name: Install git - run: apk add --no-cache git - - - name: Checkout code - run: | - git clone --depth 1 --branch ${GITHUB_REF_NAME:-main} https://qbit.realms.pub/${GITHUB_REPOSITORY}.git . - - - name: Login to Forgejo Registry - if: github.event_name == 'push' - run: | - echo "${{ secrets.REGISTRY_TOKEN }}" | docker login ${{ env.REGISTRY }} -u ${{ github.actor }} --password-stdin - + # ========================================================================= + # Build OpenResty (Nginx + Lua) + # ========================================================================= - name: Build OpenResty Image run: | + echo "=== Building OpenResty ===" docker build \ -t ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/openresty:${{ github.sha }} \ -t ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/openresty:latest \