Skip to content

Update main.yml

Update main.yml #4

Workflow file for this run

name: CI/CD Pipeline
on:
push:
branches:
- main # Trigger on pushes to the main branch
pull_request:
branches:
- main # Trigger on PRs targeting the main branch
jobs:
detect-changes:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Detect Changes
id: detect_changes
run: |
backend_changed=$(git diff --name-only HEAD~1 HEAD | grep '^backend/' || true)
frontend_changed=$(git diff --name-only HEAD~1 HEAD | grep '^frontend/' || true)
echo "backend_changed=$backend_changed" >> $GITHUB_ENV
echo "frontend_changed=$frontend_changed" >> $GITHUB_ENV
# Set outputs to use in the next jobs
echo "::set-output name=backend_changed::$backend_changed"
echo "::set-output name=frontend_changed::$frontend_changed"
build-deploy-backend:
runs-on: ubuntu-latest
needs: detect-changes
if: ${{ needs.detect-changes.outputs.backend_changed != '' }}
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Build Docker image for Backend
run: |
docker build -t ${{ secrets.DOCKER_USERNAME }}/phoenix-sps:backend-0.0.1 ./backend
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker push ${{ secrets.DOCKER_USERNAME }}/backend-app:latest
docker logout
- name: Trigger Backend Deployment
run: |
curl -X POST ${{ secrets.RENDER_BACKEND_DEPLOY_HOOK }}
build-deploy-frontend:
runs-on: ubuntu-latest
needs: detect-changes
if: ${{ needs.detect-changes.outputs.frontend_changed != '' }}
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Build Docker image for Frontend
run: |
docker build -t ${{ secrets.DOCKER_USERNAME }}/phoenix-sps:frontend-0.0.1 ./frontend
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker push ${{ secrets.DOCKER_USERNAME }}/frontend-app:latest
docker logout
- name: Trigger Frontend Deployment
run: |
curl -X POST ${{ secrets.RENDER_FRONTEND_DEPLOY_HOOK }}
post-deploy:
runs-on: ubuntu-latest
needs: [build-deploy-backend, build-deploy-frontend]
steps:
- name: Notify Completion
run: echo "Pipeline execution complete!"