2.1.0.EAP #40
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# GitHub Actions Workflow created for handling the release process based on the draft release prepared with the Build workflow. | |
# Running the publishPlugin task requires all following secrets to be provided: PUBLISH_TOKEN, PRIVATE_KEY, PRIVATE_KEY_PASSWORD, CERTIFICATE_CHAIN. | |
# See https://plugins.jetbrains.com/docs/intellij/plugin-signing.html for more information. | |
name: Release | |
on: | |
release: | |
types: [prereleased, released] | |
jobs: | |
# 准备插件并将其发布到 JetBrains Marketplace 存储库 | |
release: | |
name: Publish Plugin | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
pull-requests: write | |
steps: | |
# 查看当前存储库 | |
- name: Fetch Sources | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.release.tag_name }} | |
# 为后续步骤设置 Java 环境 | |
- name: Setup Java | |
uses: actions/setup-java@v4 | |
with: | |
distribution: zulu | |
java-version: 17 | |
# 设置 Gradle | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
with: | |
gradle-home-cache-cleanup: true | |
# 设置环境变量 | |
- name: Export Properties | |
id: properties | |
shell: bash | |
run: | | |
CHANGELOG="$(cat << 'EOM' | sed -e 's/^[[:space:]]*$//g' -e '/./,$!d' | |
${{ github.event.release.body }} | |
EOM | |
)" | |
echo "changelog<<EOF" >> $GITHUB_OUTPUT | |
echo "$CHANGELOG" >> $GITHUB_OUTPUT | |
echo "EOF" >> $GITHUB_OUTPUT | |
# 使用当前发行说明更新未发布部分 | |
- name: Patch Changelog | |
if: ${{ steps.properties.outputs.changelog != '' }} | |
env: | |
CHANGELOG: ${{ steps.properties.outputs.changelog }} | |
run: | | |
./gradlew patchChangelog --release-note="$CHANGELOG" | |
# 将插件发布到 JetBrains Marketplace | |
- name: Publish Plugin | |
env: | |
PUBLISH_TOKEN: ${{ secrets.PUBLISH_TOKEN }} | |
CERTIFICATE_CHAIN: ${{ secrets.CERTIFICATE_CHAIN }} | |
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} | |
PRIVATE_KEY_PASSWORD: ${{ secrets.PRIVATE_KEY_PASSWORD }} | |
run: ./gradlew publishPlugin -Dorg.gradle.project.intellijPublishToken=${{ secrets.PUBLISH_TOKEN }} | |
# 上传工件作为发布资产 | |
- name: Upload Release Asset | |
env: | |
GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN }} | |
run: gh release upload ${{ github.event.release.tag_name }} ./build/distributions/* | |
# 创建拉取请求 | |
- name: Create Pull Request | |
if: ${{ steps.properties.outputs.changelog != '' }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN }} | |
run: | | |
VERSION="${{ github.event.release.tag_name }}" | |
BRANCH="changelog-update-$VERSION" | |
LABEL="release changelog" | |
git config user.email "[email protected]" | |
git config user.name "GitHub Action" | |
git checkout -b $BRANCH | |
git commit -am "Changelog update - $VERSION" | |
git push --set-upstream origin $BRANCH | |
gh label create "$LABEL" \ | |
--description "Pull requests with release changelog update" \ | |
--force \ | |
|| true | |
gh pr create \ | |
--title "Changelog update - \`$VERSION\`" \ | |
--body "Current pull request contains patched \`CHANGELOG.md\` file for the \`$VERSION\` version." \ | |
--label "$LABEL" \ | |
--head $BRANCH |