This project uses GitHub Actions for CI/CD. You can run these workflows locally using act, which simulates GitHub Actions in a Docker environment.
Primary workflow for all tests and linting
- Runs on:
pushandpull_requesttomainanddevelop - Jobs:
backend-lint- Lints Python backend codesimulator-lint- Lints Python simulator codefrontend-lint- Lints TypeScript/JavaScript frontend codebackend-tests- Runs backend unit and integration tests (Python 3.11, 3.12, 3.13)frontend-tests- Runs frontend type checkinge2e-tests- Runs end-to-end tests with Playwright (includes proper dependency installation)build- Builds the frontend application
Use this workflow for:
- ✅ Full CI/CD pipeline
- ✅ Comprehensive testing
- ✅ Pull request validation
- ✅ E2E tests (properly configured with dependencies)
Standalone E2E test workflow (legacy/alternative)
- Runs on:
push,pull_requesttomainanddevelop, andworkflow_dispatch - Single job:
e2e- Runs only E2E tests
Use this workflow for:
- Quick E2E test runs
- Manual E2E testing via workflow_dispatch
- Focused E2E test debugging
Note: The main tests.yml workflow is recommended for most use cases as it includes all tests, linting, and properly configured E2E tests with dependency installation.
-
Docker: Ensure Docker is installed and running
docker --version
-
Install act:
- macOS:
brew install act - Linux: Download from act releases
- Windows: Use WSL or download from releases
- macOS:
act -lactact -W .github/workflows/tests.yml
act -W .github/workflows/e2e-tests.ymlact -j backend-tests
act -j frontend-tests
act -j e2e-testsact push
act pull_requestCreate a .secrets file in the repository root:
SECRET_NAME=secret_value
Then run:
act --secret-file .secrets- Services (PostgreSQL, Redis) are automatically set up by act
- Some actions may behave differently locally vs. on GitHub
- Large workflows may take longer locally
- If Docker images fail to pull, use
act --pull=false - For verbose output:
act -v - To use a specific platform:
act --container-architecture linux/amd64