diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1d2e8ef3be53..dbd03894a7fd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,17 +47,17 @@ jobs: - name: Calculate environment variables run: | - echo "TAG_NAME=$(npm run calculate-tag-name --silent)" >> $GITHUB_ENV + echo "RELEASE_CHANNEL=$(npm run release-channel --silent)" >> $GITHUB_ENV echo "TAILWINDCSS_VERSION=$(node -e 'console.log(require(`./package.json`).version);')" >> $GITHUB_ENV - name: Publish - run: npm publish --tag ${{ env.TAG_NAME }} + run: npm publish --tag ${{ env.RELEASE_CHANNEL }} env: CI: true NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - name: Trigger Tailwind Play update - if: env.TAG_NAME == 'latest' + if: env.RELEASE_CHANNEL == 'latest' uses: actions/github-script@v6 with: github-token: ${{ secrets.TAILWIND_PLAY_TOKEN }} diff --git a/package.json b/package.json index 8be67fdad9f8..9486e39d7013 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "generate:plugin-list": "node -r @swc/register scripts/create-plugin-list.js", "generate:types": "node -r @swc/register scripts/generate-types.js", "generate": "npm run generate:plugin-list && npm run generate:types", - "calculate-tag-name": "node scripts/calculate-tag-name.js", + "release-channel": "node ./scripts/release-channel.js", "release-notes": "node ./scripts/release-notes.js" }, "files": [ diff --git a/scripts/calculate-tag-name.js b/scripts/calculate-tag-name.js deleted file mode 100644 index 7d9cd7939e19..000000000000 --- a/scripts/calculate-tag-name.js +++ /dev/null @@ -1,8 +0,0 @@ -let version = process.env.npm_package_version || require('../package.json').version - -let match = /\d+\.\d+\.\d+-(.*)\.\d+/g.exec(version) -if (match) { - console.log(match[1]) -} else { - console.log('latest') -} diff --git a/scripts/release-channel.js b/scripts/release-channel.js new file mode 100644 index 000000000000..0c827f3fda8c --- /dev/null +++ b/scripts/release-channel.js @@ -0,0 +1,18 @@ +// Given a version, figure out what the release channel is so that we can publish to the correct +// channel on npm. +// +// E.g.: +// +// 1.2.3 -> latest (default) +// 0.0.0-insiders.ffaa88 -> insiders +// 4.1.0-alpha.4 -> alpha + +let version = + process.argv[2] || process.env.npm_package_version || require('../package.json').version + +let match = /\d+\.\d+\.\d+-(.*)\.\d+/g.exec(version) +if (match) { + console.log(match[1]) +} else { + console.log('latest') +} diff --git a/scripts/release-notes.js b/scripts/release-notes.js index 97feef884f5d..23d869bcb5b9 100644 --- a/scripts/release-notes.js +++ b/scripts/release-notes.js @@ -1,7 +1,12 @@ +// Given a version, figure out what the release notes are so that we can use this to pre-fill the +// relase notes on a GitHub release for the current version. + let path = require('path') let fs = require('fs') -let version = process.argv[2] || require('../package.json').version +let version = + process.argv[2] || process.env.npm_package_version || require('../package.json').version + let changelog = fs.readFileSync(path.resolve(__dirname, '..', 'CHANGELOG.md'), 'utf8') let match = new RegExp( `## \\[${version}\\] - (.*)\\n\\n([\\s\\S]*?)\\n(?:(?:##\\s)|(?:\\[))`,