fix(ci): fix parapharmacy-api and pip-platform test jobs, deploy with self-hosted runner
Run Tests on Branches / Detect Changes (push) Successful in 15s
Run Tests on Branches / Frontend Mobile Tests (push) Has been skipped
Run Tests on Branches / Backend Tests (push) Successful in 1m40s
Run Tests on Branches / Frontend Tests (push) Successful in 1m44s
Run Tests on Branches / Parapharmacy API Tests (push) Has been skipped
Run Tests on Branches / PIP Platform Tests (push) Failing after 1m38s

- Fix parapharmacy-api workspace name (farmafinder-parapharmacy-api)
- Remove unnecessary sqlite3/bcrypt rebuild from parapharmacy-api tests
- Add MongoDB service container for parapharmacy-api tests
- Rewrite pip-platform tests: Node.js → Python (uv + pytest)
- Add PostgreSQL and Redis services for pip-platform tests
- Add pip-platform to detect-changes filter
- Fix build-pip-platform trigger (was incorrectly referencing backend)
- Switch deploy job to self-hosted runner with set -euo pipefail
- Add .env sync from .env.example before deploy
This commit is contained in:
Antoni Nuñez Romeu
2026-07-16 18:22:18 +02:00
parent cf087fc0b7
commit 42fffc65d0
+44 -14
View File
@@ -14,6 +14,7 @@ jobs:
backend: ${{ steps.filter.outputs.backend }} backend: ${{ steps.filter.outputs.backend }}
frontend: ${{ steps.filter.outputs.frontend }} frontend: ${{ steps.filter.outputs.frontend }}
parapharmacy-api: ${{ steps.filter.outputs.parapharmacy-api }} parapharmacy-api: ${{ steps.filter.outputs.parapharmacy-api }}
pip-platform: ${{ steps.filter.outputs.pip-platform }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: dorny/paths-filter@v3 - uses: dorny/paths-filter@v3
@@ -29,6 +30,8 @@ jobs:
parapharmacy-api: parapharmacy-api:
- 'apps/parapharmacy-api/**' - 'apps/parapharmacy-api/**'
- 'packages/**' - 'packages/**'
pip-platform:
- 'apps/pip-platform/**'
test-backend: test-backend:
name: Backend Tests name: Backend Tests
@@ -56,6 +59,11 @@ jobs:
if: needs.detect-changes.outputs.parapharmacy-api == 'true' if: needs.detect-changes.outputs.parapharmacy-api == 'true'
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 15 timeout-minutes: 15
services:
mongodb:
image: mongo:7
ports:
- 27017:27017
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Setup Node.js - name: Setup Node.js
@@ -65,30 +73,52 @@ jobs:
cache: 'npm' cache: 'npm'
- name: Install dependencies - name: Install dependencies
run: npm ci --ignore-scripts run: npm ci --ignore-scripts
- name: Install parapharmacy-api native deps
run: npm rebuild sqlite3 bcrypt --workspace=farma-clic-parapharmacy-api
- name: Run Parapharmacy API Tests - name: Run Parapharmacy API Tests
run: npm test --workspace=farma-clic-parapharmacy-api run: npm test --workspace=farmafinder-parapharmacy-api
test-pip-platform: test-pip-platform:
name: Pip Platform Tests name: Pip Platform Tests
needs: detect-changes needs: detect-changes
if: needs.detect-changes.outputs.backend == 'true' if: needs.detect-changes.outputs.pip-platform == 'true'
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 15 timeout-minutes: 15
services:
postgres:
image: postgres:16-alpine
env:
POSTGRES_DB: pip_test
POSTGRES_USER: pip
POSTGRES_PASSWORD: pip_test
ports:
- 5432:5432
options: >-
--health-cmd="pg_isready -U pip"
--health-interval=10s
--health-timeout=5s
--health-retries=5
redis:
image: redis:alpine
ports:
- 6379:6379
options: >-
--health-cmd="redis-cli ping"
--health-interval=10s
--health-timeout=5s
--health-retries=5
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Setup Node.js - name: Setup Python
uses: actions/setup-node@v4 uses: actions/setup-python@v5
with: with:
node-version: '22' python-version: '3.13'
cache: 'npm' - name: Install uv
run: pip install uv
- name: Install dependencies - name: Install dependencies
run: npm ci --ignore-scripts working-directory: apps/pip-platform
- name: Install pip-platform native deps run: uv sync --extra dev
run: npm rebuild sqlite3 bcrypt --workspace=farma-clic-pip-platform - name: Run Tests
- name: Run Pip Platform Tests working-directory: apps/pip-platform
run: npm test --workspace=farma-clic-pip-platform run: uv run pytest
test-frontend: test-frontend:
name: Frontend Tests name: Frontend Tests
@@ -165,7 +195,7 @@ jobs:
needs: [ detect-changes, test-pip-platform ] needs: [ detect-changes, test-pip-platform ]
if: | if: |
always() && always() &&
needs.detect-changes.outputs.backend == 'true' && needs.detect-changes.outputs.pip-platform == 'true' &&
(needs.test-pip-platform.result == 'success' || needs.test-pip-platform.result == 'skipped') (needs.test-pip-platform.result == 'success' || needs.test-pip-platform.result == 'skipped')
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps: