Release #50
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: | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Version to release ("major", "minor", "patch", or "pre*" version; or specify version like "5.3.3")' | |
| required: true | |
| type: string | |
| args: | |
| description: 'Additional arguments to pass to release-it (e.g. "--dry-run"). See docs: https://github.com/release-it/release-it/blob/main/docs/git.md#configuration-options' | |
| required: false | |
| type: string | |
| jobs: | |
| release: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| packages: write | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| ssh-key: ${{ secrets.RELEASE_KEY }} | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '22' | |
| registry-url: 'https://registry.npmjs.org' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Configure Git | |
| run: | | |
| git config --local user.email "action@github.com" | |
| git config --local user.name "GitHub Action" | |
| # Build all packages | |
| - name: Build packages | |
| run: npm run build | |
| # Release using the monorepo approach | |
| - name: Release packages | |
| run: npm run release -- --ci -i ${{ github.event.inputs.version }} ${{ github.event.inputs.args }} | |
| env: | |
| NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| # Packages are released one workspace at a time starting with @redis/client. | |
| # `npm version` runs a workspace-update install after the bump; because the sibling | |
| # packages still pin "@redis/client" to the pre-bump range until their own bumpers | |
| # run, that install ERESOLVEs. This is most visible on a pre-release bump (e.g. | |
| # 6.2.0-beta.0), which semver excludes from a plain "^6.1.0" range even though a | |
| # non-pre 6.2.0 would satisfy it. The post-bump install is throwaway (each package | |
| # publishes from its own dist), so skip it entirely — this avoids the resolve | |
| # altogether, rather than relaxing peer checks (which would pull the stale client | |
| # from the registry) and leaves the lockfile untouched. | |
| NPM_CONFIG_WORKSPACES_UPDATE: "false" |