name: CI on: push: pull_request: jobs: checks: name: Checks runs-on: ubuntu-latest steps: - uses: https://github.com/actions/checkout@v4 - uses: https://github.com/pnpm/action-setup@v4 with: version: 11.21.0 - uses: https://github.com/actions/setup-node@v4 with: node-version: 22 - run: pnpm install --frozen-lockfile - run: pnpm run lint - run: pnpm run typecheck - run: pnpm run format:check - run: pnpm run test publish: name: Publish to npm registry if: startsWith(github.ref, 'refs/tags/') needs: checks runs-on: ubuntu-latest steps: - uses: https://github.com/actions/checkout@v4 - uses: https://github.com/pnpm/action-setup@v4 with: version: 11.21.0 - uses: https://github.com/actions/setup-node@v4 with: node-version: 22 - run: pnpm install --frozen-lockfile - name: Set package version from the tag run: npm pkg set version="${GITHUB_REF_NAME#v}" # Scoped to this one registry host+path (via publishConfig.registry in package.json) rather # than actions/setup-node's registry-url, which would set it as the *default* registry for # every install - breaking `pnpm install` for this project's own (unscoped, public) deps. - name: Configure registry auth for publish run: pnpm config set "//dev.pivoine.art/api/packages/valknar/npm/:_authToken" "$PACKAGE_TOKEN" env: PACKAGE_TOKEN: ${{ secrets.PACKAGE_TOKEN }} - name: Publish to Gitea npm registry run: pnpm publish --no-git-checks