Update main.yml #4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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!" |