diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml index dbe932e..7922419 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 sequentially: backend, frontend, chat-service, openresty -# Single job to avoid rate limiting on git clone +# Builds: backend, frontend, chat-service, openresty +# Uses docker:27-git (~50MB) instead of catthehacker/ubuntu (~1.5GB) # ============================================================================= name: Build and Push @@ -20,7 +20,10 @@ env: IMAGE_PREFIX: realms jobs: - build-all: + # =========================================================================== + # Build Backend (C++/Drogon) + # =========================================================================== + build-backend: runs-on: ubuntu-latest container: image: docker:27 @@ -38,12 +41,8 @@ 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 \ @@ -55,12 +54,29 @@ 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 (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 + - 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 \ @@ -72,12 +88,29 @@ 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 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 + - 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 \ @@ -89,12 +122,29 @@ 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 (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 + - 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 \