Skip to content

chore(deps-dev): bump @tailwindcss/cli from 4.1.8 to 4.1.16 in /services/frontend #559

chore(deps-dev): bump @tailwindcss/cli from 4.1.8 to 4.1.16 in /services/frontend

chore(deps-dev): bump @tailwindcss/cli from 4.1.8 to 4.1.16 in /services/frontend #559

Workflow file for this run

name: Coverage
on:
push:
branches: [master]
paths:
- 'services/backend/**'
- 'services/frontend/**'
- 'services/analytics/**'
- 'services/backoffice/**'
- '.github/workflows/ci-coverage.yml'
pull_request:
branches: [master]
paths:
- 'services/backend/**'
- 'services/frontend/**'
- 'services/analytics/**'
- 'services/backoffice/**'
- '.github/workflows/ci-coverage.yml'
permissions:
contents: read
pull-requests: write # allow PR comment
jobs:
coverage:
name: ${{ matrix.part }} coverage
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
fail-fast: false # let each leg finish for full reporting
matrix:
part: [backend, frontend, analytics, backoffice]
# Ensure only one coverage run per commit ref & part
concurrency:
group: "cov-${{ github.ref }}-${{ matrix.part }}"
cancel-in-progress: true
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # let Codecov diff against base
- name: Set up JDK 17
if: ${{ matrix.part == 'backend' }}
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
cache: maven # built-in dependency cache :contentReference[oaicite:0]{index=0}
- name: Build & test backend
if: ${{ matrix.part == 'backend' }}
working-directory: services/backend
run: ./mvnw -B verify --no-transfer-progress
- name: Set up Node 20
if: ${{ matrix.part == 'frontend' }}
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm # caches ~/.npm automatically :contentReference[oaicite:1]{index=1}
cache-dependency-path: services/frontend/package-lock.json
- name: Set up Node 20 for backoffice
if: ${{ matrix.part == 'backoffice' }}
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: services/backoffice/package-lock.json
- name: Set up Python
if: ${{ matrix.part == 'analytics' }}
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Cache uv
if: ${{ matrix.part == 'analytics' }}
uses: actions/cache@v3
with:
path: ~/.cache/uv
key: ${{ runner.os }}-uv-${{ hashFiles('services/analytics/pyproject.toml') }}
restore-keys: |
${{ runner.os }}-uv-
- name: Install uv
if: ${{ matrix.part == 'analytics' }}
run: pip install uv
- name: Install & test frontend
if: ${{ matrix.part == 'frontend' }}
working-directory: services/frontend
run: |
npm ci
npm run coverage
- name: Install & test backoffice
if: ${{ matrix.part == 'backoffice' }}
working-directory: services/backoffice
run: |
npm ci
npx ng test --watch=false --browsers=ChromeHeadless --code-coverage
- name: Install & test analytics
if: ${{ matrix.part == 'analytics' }}
working-directory: services/analytics
run: |
uv pip install --system -e .[test]
pytest --cov=analytics --cov-report=xml --cov-report=html
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: ${{ matrix.part }}
files: ${{ matrix.part == 'backend' && 'services/backend/target/site/jacoco/jacoco.xml' || matrix.part == 'frontend' && 'services/frontend/coverage/lcov.info' || matrix.part == 'analytics' && 'services/analytics/coverage.xml' || 'services/backoffice/coverage/lcov.info' }}
name: ${{ matrix.part }}
fail_ci_if_error: true
verbose: true
arguments: --no-compression
# Always archive raw reports (helps debugging if Codecov rejects them)
- name: Archive raw coverage artefacts
if: always()
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.part }}-coverage
path: ${{ matrix.part == 'backend' && 'services/backend/target/site/jacoco' || matrix.part == 'frontend' && 'services/frontend/coverage' || matrix.part == 'analytics' && 'services/analytics/htmlcov' || 'services/backoffice/coverage' }}
retention-days: 7