feat: update peer dependencies #3
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: Release | |
| on: | |
| push: | |
| branches: | |
| - main | |
| permissions: | |
| contents: read | |
| jobs: | |
| setup: | |
| name: Setup | |
| runs-on: ubuntu-latest | |
| outputs: | |
| cache-key: ${{ steps.cache-key.outputs.hash }} | |
| node-version: ${{ steps.nvmrc.outputs.node_version }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Read .nvmrc | |
| id: nvmrc | |
| run: echo "node_version=$(cat .nvmrc)" >> $GITHUB_OUTPUT | |
| - name: Generate cache key | |
| id: cache-key | |
| run: echo "hash=$(cat package-lock.json | shasum -a 256 | cut -d ' ' -f 1)" >> $GITHUB_OUTPUT | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ steps.nvmrc.outputs.node_version }} | |
| cache: "npm" | |
| - name: Cache node_modules | |
| id: cache-node-modules | |
| uses: actions/cache@v4 | |
| with: | |
| path: node_modules | |
| key: node-modules-${{ steps.cache-key.outputs.hash }} | |
| - name: Install dependencies | |
| if: steps.cache-node-modules.outputs.cache-hit != 'true' | |
| run: npm clean-install | |
| lint: | |
| name: Lint | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ needs.setup.outputs.node-version }} | |
| - name: Restore node_modules | |
| uses: actions/cache@v4 | |
| with: | |
| path: node_modules | |
| key: node-modules-${{ needs.setup.outputs.cache-key }} | |
| - name: Run linting | |
| run: npm run lint | |
| typecheck: | |
| name: Typecheck | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ needs.setup.outputs.node-version }} | |
| - name: Restore node_modules | |
| uses: actions/cache@v4 | |
| with: | |
| path: node_modules | |
| key: node-modules-${{ needs.setup.outputs.cache-key }} | |
| - name: Run type checking | |
| run: npm run typecheck | |
| release: | |
| name: Release | |
| needs: [setup, lint, typecheck] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| issues: write | |
| pull-requests: write | |
| id-token: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ needs.setup.outputs.node-version }} | |
| - name: Restore node_modules | |
| uses: actions/cache@v4 | |
| with: | |
| path: node_modules | |
| key: node-modules-${{ needs.setup.outputs.cache-key }} | |
| - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies | |
| run: npm audit signatures | |
| - name: Build project | |
| run: npm run build | |
| - name: Release | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| SH41_NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
| run: npx semantic-release |