12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- name: "Lint and test code"
- on:
- push:
- branches: [main]
- pull_request:
- branches: [main, develop]
- jobs:
- lint-test:
- name: Lint and test
- runs-on: ubuntu-latest
- strategy:
- matrix:
- node-version: [22.x]
- env:
- CI: "true"
- STORE_PATH: ""
- PNPM_VERSION: 9
- RETENTION_DAYS: 2
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- - name: Setup Node.js v${{ matrix.node-version }}
- uses: actions/setup-node@v4
- with:
- node-version: ${{ matrix.node-version }}
- - name: Setup pnpm
- uses: pnpm/action-setup@v4
- with:
- version: ${{ env.PNPM_VERSION }}
- run_install: false
- - name: Get pnpm store directory
- shell: bash
- run: |
- echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- - name: Setup pnpm cache
- uses: actions/cache@v4
- with:
- path: ${{ env.STORE_PATH }}
- key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
- restore-keys: |
- ${{ runner.os }}-pnpm-store-
- - name: Install dependencies
- run: pnpm i
- - name: Lint
- run: pnpm lint
- - name: Test
- run: pnpm test-coverage
- - name: Upload coverage report
- uses: actions/upload-artifact@v4
- with:
- name: coverage
- path: coverage/lcov-report/
- retention-days: ${{ env.RETENTION_DAYS }}
- - name: Upload coverage to Coveralls
- uses: coverallsapp/github-action@v2
|