Skip to content

infra: restore terraform infrastructure after repo cleanup #7

infra: restore terraform infrastructure after repo cleanup

infra: restore terraform infrastructure after repo cleanup #7

Workflow file for this run

name: CI
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
permissions:
id-token: write
contents: read
jobs:
backend-build:
name: Backend Build (Spring Boot)
runs-on: ubuntu-latest
defaults:
run:
working-directory: backend
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"
- name: Build backend
run: mvn -q -DskipTests package
frontend-build:
name: Frontend Build (React)
runs-on: ubuntu-latest
defaults:
run:
working-directory: frontend
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install dependencies
run: npm ci
- name: Build frontend
run: npm run build
backend-docker-build:
name: Docker Build (Backend)
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build backend image
uses: docker/build-push-action@v6
with:
context: ./backend
push: false
tags: cloudpulse-backend:ci
frontend-docker-build:
name: Docker Build (Frontend)
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build frontend image
uses: docker/build-push-action@v6
with:
context: ./frontend
push: false
tags: cloudpulse-frontend:ci
backend-ecr-push:
name: Push Backend Image to ECR
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Configure AWS credentials (OIDC)
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push backend
uses: docker/build-push-action@v6
with:
context: ./backend
push: true
tags: |
${{ steps.login-ecr.outputs.registry }}/cloudpulse-backend:${{ github.sha }}
${{ steps.login-ecr.outputs.registry }}/cloudpulse-backend:latest
frontend-ecr-push:
name: Push Frontend Image to ECR
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Configure AWS credentials (OIDC)
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push frontend
uses: docker/build-push-action@v6
with:
context: ./frontend
push: true
tags: |
${{ steps.login-ecr.outputs.registry }}/cloudpulse-frontend:${{ github.sha }}
${{ steps.login-ecr.outputs.registry }}/cloudpulse-frontend:latest