name: ci on: push: branches: - main - test pull_request: concurrency: group: ci-${{ github.ref }} cancel-in-progress: true jobs: backend-tests: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.11" cache: pip cache-dependency-path: requirements-dev.txt - name: Install dependencies run: python -m pip install -r requirements-dev.txt - name: Compile run: python -m compileall -q backend - name: Tests run: python -m pytest -q backend/tests frontend-tests: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "20" cache: npm cache-dependency-path: frontend/package-lock.json - name: Install dependencies run: npm ci working-directory: frontend - name: Lint run: npm run lint working-directory: frontend - name: Typecheck run: npm run typecheck working-directory: frontend - name: Tests run: npm test working-directory: frontend compose-config: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Prepare deploy env file run: | if [ ! -f deploy/.env ]; then cp deploy/.env.example deploy/.env fi - name: Validate docker compose config run: docker compose -f deploy/docker-compose.yml config > /dev/null