| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- name: Release
- 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:
- release:
- # 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 }}
- fetch-depth: 0 # need this to get tags for changelog generation
- - name: Install pnpm
- uses: pnpm/action-setup@v4
- - name: Install Node.js
- uses: actions/setup-node@v4
- with:
- node-version-file: '.node-version'
- registry-url: 'https://registry.npmjs.org'
- 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: Import GPG key
- uses: crazy-max/ghaction-import-gpg@v6
- with:
- gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
- passphrase: ${{ secrets.GPG_PASSPHRASE }}
- git_user_signingkey: true
- git_commit_gpgsign: true
- - name: Run release script
- id: release
- run: |
- pnpm release ${{ inputs.bump != 'custom' && inputs.bump || inputs.custom_version }} --skipPrompts
- RELEASE_TAG=$(git describe --tags --abbrev=0)
- echo "tag=$RELEASE_TAG" >> $GITHUB_OUTPUT
- env:
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- - name: Push tags
- run: git push -u origin ${{ inputs.branch }} --follow-tags
- - name: Create Release for Tag
- id: release_tag
- uses: yyx990803/release-tag@master
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- tag_name: ${{ steps.release.outputs.tag }}
- body: |
- For stable releases, please refer to [CHANGELOG.md](https://github.com/vuejs/core/blob/main/CHANGELOG.md) for details.
- For pre-releases, please refer to [CHANGELOG.md](https://github.com/vuejs/core/blob/minor/CHANGELOG.md) of the `minor` branch.
|