From 6e3258f13b5124b15390dc2427e6fede1a9ec167 Mon Sep 17 00:00:00 2001 From: Alec Reynolds Date: Fri, 25 Oct 2024 12:12:02 -0700 Subject: [PATCH] Generate an edge release when stable releases are created. --- .github/workflows/release.yml | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7cfd744..1135c23 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,25 +11,24 @@ jobs: runs-on: ${{ matrix.os }} env: TERM: xterm - PRERELEASE_TAG: edge strategy: matrix: os: - - ubuntu-22.04 + - ubuntu-24.04 node-version: - - '18' + - '20' steps: # Install deps and cache - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Install node ${{ matrix.node-version }} - uses: actions/setup-node@v2 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org cache: npm - - name: Install NPM dependencies - run: npm clean-install --production --prefer-offline --frozen-lockfile + - name: Install dependencies + run: npm clean-install --prefer-offline --frozen-lockfile # Let's do tests rq just to make sure we dont push something that is fundamentally broken - name: Lint code @@ -49,14 +48,23 @@ jobs: # Deploy - name: Publish to npm run: | + VERSION=$(node -p "require('./package.json').version") + PACKAGE=$(node -p "require('./package.json').name") + if [ "${{ github.event.release.prerelease }}" == "false" ]; then npm publish --access public --dry-run npm publish --access public - echo "::notice title=Published ${{ github.ref_name }} to @${{ github.repository }}::This is a stable release published to the default 'latest' npm tag" + npm dist-tag add "$PACKAGE@$VERSION" edge + + echo "::notice title=Published $VERSION to $PACKAGE::This is a stable release published to the default 'latest' npm tag" + echo "::notice title=Updated latest tag to $VERSION::The stable tag now points to $VERSION" + echo "::notice title=Updated edge tag to $VERSION::The edge tag now points to $VERSION" else - npm publish --access public --tag ${{ env.PRERELEASE_TAG }} --dry-run - npm publish --access public --tag ${{ env.PRERELEASE_TAG }} - echo "::notice title=Published ${{ github.ref_name }} to @${{ github.repository }}@${{ env.PRERELEASE_TAG }}::This is a pre-release published to the '${{ env.PRERELEASE_TAG }}' npm tag" + npm publish --access public --tag edge --dry-run + npm publish --access public --tag edge + + echo "::notice title=Published $VERSION to $PACKAGE::This is a prerelease published to the 'edge' npm tag" + echo "::notice title=Updated edge tag to $VERSION::The edge tag now points to $VERSION" fi env: NODE_AUTH_TOKEN: ${{secrets.NPM_DEPLOY_TOKEN}}