chore: optimize CI/CD workflows with path-based detection
- Add dorny/paths-filter to detect changes per component - Run only relevant tests (backend/frontend/frontend-mobile) - Build only changed Docker images - Fix Docker container removal error with --remove-orphans - Add conditional deploy based on actual changes
This commit is contained in:
@@ -6,8 +6,33 @@ on:
|
||||
- 'main'
|
||||
|
||||
jobs:
|
||||
detect-changes:
|
||||
name: Detect Changes
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
backend: ${{ steps.filter.outputs.backend }}
|
||||
frontend: ${{ steps.filter.outputs.frontend }}
|
||||
frontend-mobile: ${{ steps.filter.outputs.frontend-mobile }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dorny/paths-filter@v3
|
||||
id: filter
|
||||
with:
|
||||
filters: |
|
||||
backend:
|
||||
- 'apps/backend/**'
|
||||
- 'packages/**'
|
||||
frontend:
|
||||
- 'apps/frontend/**'
|
||||
- 'packages/**'
|
||||
frontend-mobile:
|
||||
- 'apps/frontend-mobile/**'
|
||||
- 'packages/**'
|
||||
|
||||
test-backend:
|
||||
name: Backend Tests
|
||||
needs: detect-changes
|
||||
if: needs.detect-changes.outputs.backend == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
@@ -27,6 +52,8 @@ jobs:
|
||||
|
||||
test-frontend:
|
||||
name: Frontend Tests
|
||||
needs: detect-changes
|
||||
if: needs.detect-changes.outputs.frontend == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
@@ -43,3 +70,25 @@ jobs:
|
||||
|
||||
- name: Run Frontend Tests
|
||||
run: npm test --workspace=farma-clic-frontend -- --run --reporter=basic
|
||||
|
||||
test-frontend-mobile:
|
||||
name: Frontend Mobile Tests
|
||||
needs: detect-changes
|
||||
if: needs.detect-changes.outputs.frontend-mobile == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '24'
|
||||
cache: 'npm'
|
||||
|
||||
- name: Install Dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Run Frontend Mobile Tests
|
||||
run: npm test --workspace=frontend-mobile -- --ci
|
||||
continue-on-error: true
|
||||
|
||||
Reference in New Issue
Block a user