chore: optimize CI/CD workflows with path-based detection
Run Tests on Branches / Detect Changes (push) Successful in 13s
Run Tests on Branches / Backend Tests (push) Has been skipped
Run Tests on Branches / Frontend Tests (push) Has been skipped
Run Tests on Branches / Frontend Mobile Tests (push) Has been skipped

- 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:
Antoni Nuñez Romeu
2026-07-07 18:15:38 +02:00
parent a65f1a6293
commit 562ede1961
2 changed files with 94 additions and 3 deletions
+49
View File
@@ -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