Add GitHub Actions CI workflow #4
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What I Did
Implemented a GitHub Actions CI/CD pipeline that automatically runs quality checks on every pull request and push to main. The workflow includes four parallel jobs: backend linting (PHP_CodeSniffer and PHPStan), backend tests (PHPUnit), frontend linting (ESLint), and frontend E2E tests (Playwright).
Depends On
None - this PR is independent and builds from main.
How to Test
ci/github-actionstomainArchitectural Decision Record (ADR)
I chose to structure the workflow with four separate jobs that run in parallel for better performance and clearer separation of concerns. Each job uses Docker Compose to maintain consistency with the local development environment. The backend test job starts the database and backend services, seeds the database, and runs tests. The frontend test job starts all services (db, backend, frontend), waits for them to be healthy, seeds the database, and runs Playwright E2E tests. Cleanup steps ensure containers and volumes are removed even if tests fail.
AI Usage Summary
Used AI assistance to structure the GitHub Actions workflow, handle Docker Compose integration, and implement proper service health checks and cleanup procedures.