Merge pull request #785 from paambaati/dependabot/npm_and_yarn/tsup-8… #2159
This file contains 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: "PR checks" | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
jobs: | |
check_pr: | |
name: "PR checks" | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout code | |
uses: actions/checkout@v4 | |
- name: setup pnpm | |
uses: pnpm/action-setup@v3 | |
- name: setup node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
cache: 'pnpm' | |
- name: install dependencies | |
run: pnpm install | |
- name: check for lint and format errors | |
run: pnpm run biome:ci | |
- name: build typescript | |
run: pnpm run build | |
- name: check for unformatted sources | |
run: | | |
pnpm run format:check \ | |
|| (echo "##[error] found unformatted files. please 'pnpm run format'" \ | |
"and check in all changes" \ | |
&& exit 1) | |
- name: check for uncommitted changes | |
# Ensure no changes, but ignore node_modules dir since dev/fresh ci deps installed. | |
run: | | |
git diff --exit-code --stat -- . ':!node_modules' \ | |
|| (echo "##[error] found changed files after build. please 'pnpm run build'" \ | |
"and check in all changes" \ | |
&& exit 1) | |
tests: | |
name: "Tests (${{ matrix.os.os-label }})" | |
strategy: | |
matrix: | |
os: | |
- { index: 1, os-name: 'ubuntu-latest', os-label: 'Linux' } | |
- { index: 2, os-name: 'macos-latest', os-label: 'macOS' } | |
- { index: 3, os-name: 'windows-latest', os-label: 'Windows' } | |
runs-on: ${{ matrix.os.os-name }} | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.os.os-name }} | |
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
steps: | |
- name: checkout code | |
uses: actions/checkout@v4 | |
- name: setup pnpm | |
uses: pnpm/action-setup@v3 | |
- name: setup node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
cache: 'pnpm' | |
- name: install dependencies | |
run: pnpm install | |
- name: run tests | |
run: pnpm run test | |
coverage: | |
name: "Test Coverage" | |
runs-on: "ubuntu-latest" | |
needs: [tests] | |
if: ${{ github.event_name == 'push' }} # Publish coverage only for push commits, not PRs. | |
steps: | |
- name: checkout code | |
uses: actions/checkout@v4 | |
- name: setup pnpm | |
uses: pnpm/action-setup@v3 | |
- name: setup node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
cache: 'pnpm' | |
- name: install dependencies | |
run: pnpm install | |
- name: run tests and instrument coverage | |
run: pnpm run coverage | |
- name: publish code coverage to code-climate (duh) | |
uses: paambaati/[email protected] | |
env: | |
CC_TEST_REPORTER_ID: 3470adaf12ff7cecdfe5a968ae0e95d098b6ee58c340114e1e90d440ee9e66ab | |
with: | |
debug: true | |
coverageLocations: | | |
${{github.workspace}}/.tap/report/lcov.info:lcov |