name: Publish on: push: branches: - main permissions: read-all jobs: Linter: name: Lint runs-on: ubuntu-latest timeout-minutes: 15 permissions: statuses: write contents: write packages: write issues: write pull-requests: write steps: - name: Run PR Lint # https://github.com/ivuorinen/actions uses: ivuorinen/actions/pr-lint@ff0ca4bc920c518b2ce2dc20c5e5a6e95f76dee0 # v2025.11.02 publish: name: Publish runs-on: ubuntu-latest needs: - Linter permissions: statuses: write contents: write packages: write issues: write pull-requests: write steps: - name: Checkout uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 with: fetch-depth: 0 - name: Setup Node.js Environment uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: always-auth: true node-version-file: ".nvmrc" registry-url: "https://registry.npmjs.org" scope: "@ivuorinen" - name: Cache Node Modules uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 id: cache with: path: node_modules key: node-modules-${{ hashFiles('**/yarn.lock') }} - name: Install Dependencies shell: bash if: steps.cache.outputs.cache-hit != 'true' run: yarn install - name: Release shell: bash env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} run: yarn run semantic-release