--- /dev/null
+name: Publish Package
+
+on:
+ workflow_dispatch:
+ inputs:
+ branch:
+ description: 'Branch to publish'
+ required: true
+ default: 'main'
+ type: choice
+ options:
+ - main
+ - minor
+ bump:
+ description: 'Bump version'
+ required: true
+ default: 'patch'
+ type: choice
+ options:
+ - patch
+ - minor
+ - prepatch
+ - preminor
+ - custom
+ custom_version:
+ description: 'Custom version'
+ required: false
+ default: ''
+ type: string
+
+jobs:
+ publish:
+ # prevents this action from running on forks
+ if: github.repository == 'vuejs/core'
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ id-token: write
+ # Use Release environment for deployment protection
+ environment: Release
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ inputs.branch }}
+
+ - name: Install pnpm
+ uses: pnpm/action-setup@v2
+
+ - name: Install Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version-file: '.node-version'
+ cache: 'pnpm'
+
+ - name: Install deps
+ run: pnpm install
+
+ - name: Configure git user as vue bot
+ run: |
+ git config user.name "vue-bot"
+ git config user.email "<bot@vuejs.org>"
+
+ - name: Release
+ run: pnpm release ${{ inputs.bump != 'custom' && inputs.bump || inputs.custom_version }} --skip-prompts
+ env:
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
+
+ - name: Push tags
+ run: git push -u origin ${{ inputs.branch }} --follow-tags
}
}
+ // @ts-expect-error
+ if (versionIncrements.includes(targetVersion)) {
+ // @ts-expect-error
+ targetVersion = inc(targetVersion)
+ }
+
if (!semver.valid(targetVersion)) {
throw new Error(`invalid target version: ${targetVersion}`)
}
if (branch !== 'main') {
additionalPublishFlags.push('--publish-branch', branch)
}
+ // add provenance metadata when releasing from CI
+ // canary release commits are not pushed therefore we don't need to add provenance
+ if (process.env.CI && !isCanary) {
+ additionalPublishFlags.push('--provenance')
+ }
for (const pkg of packages) {
await publishPackage(pkg, targetVersion, additionalPublishFlags)