Merge branch 'main' of https://github.com/fuf-stack/pixels #7715
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ci | |
| # only on push in branches | |
| on: | |
| push: | |
| branches: | |
| - '**' | |
| # Cancel in-progress runs when a new workflow is triggered | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| name: Test | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| # Clone the repository at the pushed ref. | |
| - uses: actions/checkout@v6 | |
| # Install pnpm + node, restore deps, build all packages. | |
| - uses: ./.github/actions/setup-project | |
| # Run the full vitest suite across all packages with coverage. | |
| - name: Run tests | |
| run: pnpm test | |
| # Declaration-emit smoke test: catches `TS4023` regressions in | |
| # veto's bundled `dist/index.d.ts`. See: packages/veto/test/dts-smoke/. | |
| - name: Run dts smoke test | |
| run: pnpm --filter @fuf-stack/veto test:dts | |
| # Persist coverage for the sonar job to consume. | |
| - name: Upload coverage reports | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: coverage-report | |
| path: coverage/ | |
| sonar: | |
| name: Sonarqube Analysis | |
| # Only run sonar if we're not on a renovate or release-please branch | |
| if: ${{ !startsWith(github.ref, 'refs/heads/renovate/') && !startsWith(github.ref, 'refs/heads/release-please') }} | |
| needs: [test] | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| # Full history clone — Sonarqube needs it for blame / new-code detection. | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 # Required for Sonarqube | |
| # Pull the coverage artifact produced by the test job. | |
| - name: Download coverage report | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: coverage-report | |
| path: coverage/ | |
| # Upload coverage + project metadata to Sonarqube. | |
| - uses: SonarSource/sonarqube-scan-action@v8 | |
| env: | |
| SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} |