# Gitea Actions Workflow: Frontend CI/CD to Amazon ECR Public # Place at: .gitea/workflows/frontend.yaml (in repository root) name: Frontend CI/CD on: # push: # branches: ['**'] workflow_dispatch: {} permissions: contents: read packages: write env: FRONTEND_DIR: workspace/sprint_1_2/CODEBASE/frontend/implementation ECR_REGISTRY: public.ecr.aws ECR_REPOSITORY: ${{ vars.ECR_PUBLIC_REGISTRY_ALIAS }}/msk_lumina_frontend jobs: build-and-push: runs-on: ubuntu-latest timeout-minutes: 30 steps: - name: Checkout repository uses: actions/checkout@v4 # - name: Configure AWS credentials # uses: aws-actions/configure-aws-credentials@v4 # with: # aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} # aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} # aws-region: us-east-1 # - name: Login to Amazon ECR Public # id: login-ecr # uses: aws-actions/amazon-ecr-login@v2 # with: # registry-type: public # mask-password: 'true' # - name: Setup Node.js # uses: actions/setup-node@v4 # with: # node-version: '20' # cache: 'npm' # cache-dependency-path: ${{ env.FRONTEND_DIR }}/package-lock.json # - name: Install dependencies # run: npm ci # working-directory: ./${{ env.FRONTEND_DIR }} # - name: Build frontend (verify) # run: npm run build # working-directory: ./${{ env.FRONTEND_DIR }} # - name: Extract metadata for Docker # id: meta # uses: docker/metadata-action@v5 # with: # images: ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }} # tags: | # type=ref,event=branch # type=sha,prefix= # type=raw,value=latest,enable={{is_default_branch}} # labels: | # org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }} # org.opencontainers.image.revision=${{ github.sha }} # org.opencontainers.image.title=Lumina MSK Frontend # - name: Build and push Docker image # uses: docker/build-push-action@v5 # with: # context: ./${{ env.FRONTEND_DIR }} # file: ./${{ env.FRONTEND_DIR }}/Dockerfile # push: true # tags: ${{ steps.meta.outputs.tags }} # labels: ${{ steps.meta.outputs.labels }} # cache-from: type=gha # cache-to: type=gha,mode=max # - name: Image digest # run: echo "Pushed ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:${{ steps.meta.outputs.tags }}" notify-deploy: needs: build-and-push if: success() && github.event_name == 'push' runs-on: ubuntu-latest steps: - name: Trigger Lightsail deployment webhook if: env.DEPLOY_WEBHOOK_URL != '' env: DEPLOY_WEBHOOK_URL: ${{ secrets.DEPLOY_WEBHOOK_URL }} WEBHOOK_SECRET: ${{ secrets.WEBHOOK_SECRET }} run: | cat <