react18-tools/esbuild-plugin-react18-css

View on GitHub
.github/workflows/publish.yml

Summary

Maintainability
Test Coverage
name: Publish to NPM

# publish only when package json has changed - assuming version upgrade
on:
  push:
    branches: [main]
    paths: "lib/esbuild-plugin-react18-css/package.json"

jobs:
  publish:
    # Don't run just after creating repo from template
    # Also avoid running after merging set-up PR
    if: github.event.repository.owner.login == 'react18-tools'
    runs-on: ubuntu-latest
    permissions:
      contents: write
      id-token: write

    defaults:
      run:
        working-directory: ./lib/esbuild-plugin-react18-css

    steps:
      - uses: actions/checkout@v4
        with:
          token: ${{ secrets.GITHUB_TOKEN }}

      - uses: actions/setup-node@v4
        with:
          node-version: 20
          registry-url: https://registry.npmjs.org
      - run: npm i -g pnpm && pnpm i
        name: Install dependencies
        # fail and not publish if any of the unit tests are failing
      - name: Build examples
        run: cd ../.. && pnpm build --filter esbuild-plugin-react18-css-example
      - name: Test
        run: pnpm test
      - name: Create release and publish to NPM
        run: pnpm build && pnpm publish-package
        continue-on-error: true
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
          TOKEN: ${{ secrets.GITHUB_TOKEN }}
          OWNER: ${{ github.event.repository.owner.login }}
          REPO: ${{ github.event.repository.name }}

      - name: Publish package with a short name
        continue-on-error: true
        run: |
          cd dist
          sed -i -e "s/.*name.*/\t\"name\": \"r18css\",/" package.json
          npm publish --provenance --access public
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}