name: "[Quality] Code Analysis" on: pull_request: branches: ["*"] push: branches: ["main"] merge_group: concurrency: group: "${{ github.workflow }}-${{ github.ref }}" cancel-in-progress: ${{ github.ref != 'refs/heads/master' }} # You can leverage Vercel Remote Caching with Turbo to speed up your builds # @link https://turborepo.org/docs/core-concepts/remote-caching#remote-caching-on-vercel-builds env: FORCE_COLOR: 3 TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: ${{ vars.TURBO_TEAM }} jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup uses: ./tooling/github/setup - name: Copy env shell: bash run: cp .env.example .env - name: Lint run: pnpm lint && pnpm lint:ws format: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup uses: ./tooling/github/setup - name: Format run: pnpm format typecheck: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup uses: ./tooling/github/setup - name: Typecheck run: turbo typecheck test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup uses: ./tooling/github/setup - name: Test run: pnpm test - name: 'Report Coverage' # Set if: always() to also generate the report if tests are failing # Only works if you set `reportOnFailure: true` in your vite config as specified above if: always() uses: davelosert/vitest-coverage-report-action@v2 build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup uses: ./tooling/github/setup - name: Copy env shell: bash run: cp .env.example .env - name: Build run: pnpm build