maxmilton/stylelint-config

View on GitHub
.github/workflows/publish.yml

Summary

Maintainability
Test Coverage
name: publish
on:
  release:
    types: [published]
jobs:
  publish:
    runs-on: ubuntu-latest
    timeout-minutes: 10
    permissions:
      contents: read
      id-token: write
    steps:
      - name: Check valid version tag
        run: |
          [[ "${{ github.ref }}" =~ ^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.-]+)? ]] || exit 1
      - uses: actions/checkout@v4
      - uses: oven-sh/setup-bun@v2
        with:
          bun-version: latest
      - run: bun install --frozen-lockfile
      - run: bun run lint
      - run: bun run test
      - uses: actions/setup-node@v4
        with:
          node-version: latest
          registry-url: 'https://registry.npmjs.org'
      - name: Extract npm tag
        run: |
          TAG=${{ github.ref }}
          if [[ "$TAG" =~ v[0-9]+\.[0-9]+\.[0-9]+- ]]; then
            NPM_TAG=${TAG#*v[0-9].[0-9].[0-9]-}; NPM_TAG=${NPM_TAG%%.*}
          else
            NPM_TAG=latest
          fi
          echo "NPM_TAG=$NPM_TAG" >> $GITHUB_ENV
      - run: npm publish --provenance --access public --tag ${{ env.NPM_TAG }}
        shell: bash
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}