name: Tests permissions: pull-requests: write statuses: write checks: write contents: read actions: read pages: write id-token: write on: push: branches: [main] pull_request: branches: [main, ci] types: [opened, reopened, synchronize] merge_group: types: [checks_requested] jobs: tests: permissions: contents: read runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v2 with: bun-version: latest - name: Install dependencies run: bun install - name: Test run: bun run test:coverage # Upload coverage as Pages artifact only on push to main - name: Upload coverage html if: github.event_name == 'pull_request' uses: actions/upload-pages-artifact@v3 with: path: ./coverage name: "coverage" deploy_coverage: if: github.event_name == 'pull_request' needs: tests runs-on: ubuntu-latest environment: name: coverage-ui url: ${{ steps.deployment.outputs.page_url }} steps: - name: Deploy coverage-ui id: deployment uses: actions/deploy-pages@v4 with: artifact_name: 'coverage'