chore: release v1.3.7 #81
Workflow file for this run
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: | |
| tags: | |
| - 'v*' | |
| permissions: {} | |
| concurrency: | |
| group: release-${{ github.ref_name }} | |
| cancel-in-progress: false | |
| jobs: | |
| release: | |
| runs-on: ubuntu-latest | |
| environment: release | |
| permissions: | |
| contents: write | |
| id-token: write | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - run: npx changelogithub | |
| env: | |
| GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} | |
| - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 | |
| - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 | |
| with: | |
| node-version-file: '.nvmrc' | |
| registry-url: 'https://registry.npmjs.org' | |
| - run: pnpm install --frozen-lockfile | |
| - name: Build | |
| run: pnpm build | |
| - name: Determine npm tag | |
| id: determine_npm_tag | |
| shell: bash | |
| run: | | |
| TAG="${GITHUB_REF#refs/tags/}" | |
| if [[ "$TAG" =~ -(next|canary|beta|rc) ]]; then | |
| # Extract pre-release tag (e.g., beta, rc) | |
| NPM_TAG=${BASH_REMATCH[1]} | |
| else | |
| # Check if the commit is on the main branch or a version branch | |
| git fetch origin main | |
| CURRENT_BRANCH=$(git branch -r --contains "$GITHUB_SHA" | grep -E 'origin/(main|v[0-9]+\.[0-9]+\.x)' | head -1 | sed 's/.*origin\///') | |
| if [[ "$CURRENT_BRANCH" == "main" ]]; then | |
| NPM_TAG="latest" | |
| elif [[ "$CURRENT_BRANCH" =~ ^v([0-9]+\.[0-9]+)\.x$ ]]; then | |
| # For version branches like v1.3.x, v1.4.x, use the version as npm tag | |
| # Use "release-X.Y" format to avoid SemVer range conflict (npm rejects "1.4" and "v1.4") | |
| NPM_TAG="release-${BASH_REMATCH[1]}" | |
| else | |
| echo "The tagged commit is not on the main branch or a version branch (v*.*.x)." | |
| echo "::error ::Releases must be on the main branch or a version branch (v*.*.x)." | |
| exit 1 | |
| fi | |
| fi | |
| echo "npm_tag=$NPM_TAG" >> $GITHUB_OUTPUT | |
| echo "Using npm tag: $NPM_TAG" | |
| - name: Publish to npm | |
| run: pnpm -r publish --provenance --access public --no-git-checks --tag ${{ steps.determine_npm_tag.outputs.npm_tag }} |