diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml deleted file mode 100644 index 9eb00f0..0000000 --- a/.github/workflows/release-insiders.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Release Insiders - -on: - push: - branches: [main] - -permissions: - contents: read - id-token: write - -jobs: - build: - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [22] - - steps: - - uses: actions/checkout@v4 - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v4 - with: - node-version: ${{ matrix.node-version }} - registry-url: 'https://registry.npmjs.org' - cache: 'npm' - - - name: Install dependencies - run: npm install - - - name: Test - run: npm test - - - name: Resolve version - id: vars - run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" - - - name: 'Version based on commit: 0.0.0-insiders.${{ steps.vars.outputs.sha_short }}' - run: npm version 0.0.0-insiders.${{ steps.vars.outputs.sha_short }} --force --no-git-tag-version - - - name: Publish - run: npm publish --provenance --tag insiders - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 39a4aff..d9c3d3e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,6 +1,8 @@ name: Release on: + push: + branches: [main] release: types: [published] @@ -17,10 +19,10 @@ jobs: node-version: [22] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} registry-url: 'https://registry.npmjs.org' @@ -32,11 +34,20 @@ jobs: - name: Test run: npm test - - name: Calculate environment variables + - name: Resolve release metadata run: | - echo "RELEASE_CHANNEL=$(npm run release-channel --silent)" >> $GITHUB_ENV + if [ "${{ github.event_name }}" = "release" ]; then + echo "RELEASE_KIND=release" >> $GITHUB_ENV + echo "RELEASE_CHANNEL=$(npm run release-channel --silent)" >> $GITHUB_ENV + else + echo "RELEASE_KIND=insiders" >> $GITHUB_ENV + echo "INSIDERS_VERSION=0.0.0-insiders.$(git rev-parse --short HEAD)" >> $GITHUB_ENV + echo "RELEASE_CHANNEL=insiders" >> $GITHUB_ENV + fi + + - name: Version based on commit + if: env.RELEASE_KIND == 'insiders' + run: npm version "$INSIDERS_VERSION" --force --no-git-tag-version - name: Publish - run: npm publish --provenance --tag ${{ env.RELEASE_CHANNEL }} - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npm publish --provenance --tag "$RELEASE_CHANNEL" diff --git a/scripts/release-channel.js b/scripts/release-channel.js index 0c827f3..a9ba3bd 100644 --- a/scripts/release-channel.js +++ b/scripts/release-channel.js @@ -10,7 +10,7 @@ let version = process.argv[2] || process.env.npm_package_version || require('../package.json').version -let match = /\d+\.\d+\.\d+-(.*)\.\d+/g.exec(version) +let match = /\d+\.\d+\.\d+-(.*)(\.\d+)?/g.exec(version) if (match) { console.log(match[1]) } else {