From 72f8ee626d4ef6cb992bbdaebaca7161ce5e1c8f Mon Sep 17 00:00:00 2001 From: turegjorup Date: Wed, 8 Jul 2026 11:24:45 +0200 Subject: [PATCH] ci: run the Code Review workflow via docker compose (drop Task) Standardise the pr.yaml jobs on `docker compose` directly instead of Task, and harden against composer's dist-download rate limit, adapted from event-database-imports #98. - Cache vendor/ (actions/cache@v5, keyed on composer.lock) and pre-pull images (docker compose pull --quiet) in both jobs. - Replace `task site:update` with explicit up --wait + composer install; `task fixtures:load:test` with an inline index loop; `task api:test:coverage` and `task code-analysis:phpstan` with direct `docker compose exec` calls. The Taskfile targets remain for local development; only CI stops using them. --- .github/workflows/pr.yaml | 37 ++++++++++++++++++++++++++----------- CHANGELOG.md | 2 ++ 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 4ef94a1..a1675a7 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -13,21 +13,29 @@ jobs: steps: - uses: actions/checkout@v5 - # https://taskfile.dev/installation/#github-actions - - uses: go-task/setup-task@v1 + - name: Cache vendor + uses: actions/cache@v5 + with: + path: vendor + key: vendor-php8.4-${{ hashFiles('composer.lock') }} + restore-keys: vendor-php8.4- - name: Start docker compose setup and install site run: | docker network create frontend - task --yes site:update + docker compose pull --quiet + docker compose up --detach --wait + docker compose exec -T phpfpm composer install --no-interaction - name: Load test fixtures run: | - task --yes fixtures:load:test + for index in events organizations occurrences daily_occurrences tags vocabularies locations; do + docker compose exec -T phpfpm bin/console app:fixtures:load "$index" --url="file:///app/tests/resources/$index.json" + done - - name: Run API tests + - name: Run API tests with coverage run: | - task --yes api:test:coverage + docker compose exec -T -e XDEBUG_MODE=coverage phpfpm bin/phpunit --coverage-clover=coverage/unit.xml - name: Upload coverage to Codecov uses: codecov/codecov-action@v7 @@ -43,13 +51,20 @@ jobs: steps: - uses: actions/checkout@v5 - # https://taskfile.dev/installation/#github-actions - - uses: go-task/setup-task@v1 + - name: Cache vendor + uses: actions/cache@v5 + with: + path: vendor + key: vendor-php8.4-${{ hashFiles('composer.lock') }} + restore-keys: vendor-php8.4- - - run: | + - name: Start docker compose setup and install site + run: | docker network create frontend - task --yes site:update + docker compose pull --quiet + docker compose up --detach --wait + docker compose exec -T phpfpm composer install --no-interaction - name: Run code analysis run: | - task --yes code-analysis:phpstan + docker compose exec -T phpfpm vendor/bin/phpstan analyse --no-progress diff --git a/CHANGELOG.md b/CHANGELOG.md index 651abee..a478acc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ See [keep a changelog] for information about writing changes to this log. ## [Unreleased] +- [PR-41](https://github.com/itk-dev/event-database-api/pull/41) + Run the Code Review workflow via docker compose directly (drop Task) with vendor caching and image pre-pull - [PR-37](https://github.com/itk-dev/event-database-api/pull/37) Upload test coverage to Codecov in CI - [PR-36](https://github.com/itk-dev/event-database-api/pull/36)