diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml deleted file mode 100644 index 95e1a31dd..000000000 --- a/.github/workflows/release-insiders.yml +++ /dev/null @@ -1,70 +0,0 @@ -name: Release Insiders - -on: - push: - branches: [master] - -permissions: - contents: read - id-token: write - -env: - CI: true - -jobs: - build: - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [18] - - steps: - - uses: actions/checkout@v3 - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - registry-url: 'https://registry.npmjs.org' - - - name: Use cached node_modules - id: cache - uses: actions/cache@v3 - with: - path: node_modules - key: nodeModules-${{ hashFiles('**/package-lock.json') }}-${{ matrix.node-version }} - restore-keys: | - nodeModules- - - - name: Install dependencies - if: steps.cache.outputs.cache-hit != 'true' - run: npm install - - - name: Calculate environment variables - run: | - echo "SHA_SHORT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV - - - name: 'Version `heroicons` based on commit: 0.0.0-insiders.${{ env.SHA_SHORT }}' - run: npm version 0.0.0-insiders.${{ env.SHA_SHORT }} --force --no-git-tag-version - - - name: 'Version `@heroicons/react` based on commit: 0.0.0-insiders.${{ env.SHA_SHORT }}' - run: npm version 0.0.0-insiders.${{ env.SHA_SHORT }} --force --no-git-tag-version --prefix react - - - name: 'Version `@heroicons/vue` based on commit: 0.0.0-insiders.${{ env.SHA_SHORT }}' - run: npm version 0.0.0-insiders.${{ env.SHA_SHORT }} --force --no-git-tag-version --prefix vue - - - name: Publish `heroicons` - run: npm publish --provenance --tag insiders - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - - name: Publish `@heroicons/react` - run: npm publish ./react --provenance --tag insiders - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - - name: Publish `@heroicons/vue` - run: npm publish ./vue --provenance --tag insiders - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c32181979..83e251ae5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,6 +1,8 @@ name: Release on: + push: + branches: [master] release: types: [published] @@ -17,7 +19,7 @@ jobs: strategy: matrix: - node-version: [18] + node-version: [24] steps: - uses: actions/checkout@v3 @@ -41,21 +43,34 @@ jobs: if: steps.cache.outputs.cache-hit != 'true' run: npm install - - 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 `heroicons` based on commit + if: env.RELEASE_KIND == 'insiders' + run: npm version "$INSIDERS_VERSION" --force --no-git-tag-version + + - name: Version `@heroicons/react` based on commit + if: env.RELEASE_KIND == 'insiders' + run: npm version "$INSIDERS_VERSION" --force --no-git-tag-version --prefix react + + - name: Version `@heroicons/vue` based on commit + if: env.RELEASE_KIND == 'insiders' + run: npm version "$INSIDERS_VERSION" --force --no-git-tag-version --prefix vue - name: Publish `heroicons` - run: npm publish --provenance --tag ${{ env.RELEASE_CHANNEL }} - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npm publish --provenance --tag "$RELEASE_CHANNEL" - name: Publish `@heroicons/react` - run: npm publish ./react --provenance --tag ${{ env.RELEASE_CHANNEL }} - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npm publish ./react --provenance --tag "$RELEASE_CHANNEL" - name: Publish `@heroicons/vue` - run: npm publish ./vue --provenance --tag ${{ env.RELEASE_CHANNEL }} - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npm publish ./vue --provenance --tag "$RELEASE_CHANNEL" diff --git a/scripts/release-channel.js b/scripts/release-channel.js index 0c827f3fd..a9ba3bd28 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 {