name: Test Backend on: push: branches: - master pull_request: permissions: contents: read jobs: test-backend: runs-on: ubuntu-latest timeout-minutes: 5 steps: - name: Checkout uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Set up Python uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0 with: python-version-file: .python-version - name: Install uv uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2 with: version: "latest-known" - run: docker compose down -v --remove-orphans - run: docker compose up -d --wait db mailpit - name: Migrate DB run: uv run bash scripts/prestart.sh working-directory: backend - name: Run tests run: uv run bash scripts/tests-start.sh "Coverage for ${{ github.sha }}" working-directory: backend - run: docker compose down -v --remove-orphans - name: Store coverage files uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: coverage-html path: backend/htmlcov include-hidden-files: true - name: Coverage report run: uv run coverage report --fail-under=90 working-directory: backend