1.0.1 #4
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: 查看当前存储库 | |
uses: actions/checkout@v4 | |
with: | |
ref: main | |
# 为后续步骤设置 Java 环境 | |
- name: 为后续步骤设置 Java 环境 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: zulu | |
java-version: 17 | |
# 设置 Gradle | |
- name: 设置 Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
with: | |
gradle-home-cache-cleanup: true | |
# 设置环境变量 | |
- name: 设置环境变量 | |
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: 使用当前发行说明更新未发布部分 | |
if: ${{ steps.properties.outputs.changelog != '' }} | |
env: | |
CHANGELOG: ${{ steps.properties.outputs.changelog }} | |
run: | | |
./gradlew patchChangelog --release-note="$CHANGELOG" | |
# 将插件发布到 JetBrains Marketplace | |
- name: 将插件发布到 JetBrains Marketplace | |
env: | |
PUBLISH_TOKEN: ${{ secrets.PUSH_TOKEN }} | |
CERTIFICATE_CHAIN: ${{ secrets.CERTIFICATECHAIN }} | |
PRIVATE_KEY: ${{ secrets.PRIVATEKEY }} | |
PRIVATE_KEY_PASSWORD: ${{ secrets.PASSWORD }} | |
run: ./gradlew publishPlugin | |
# 上传工件作为发布资产 | |
- name: 上传工件作为发布资产 ${{github.event.release.tag_name}} | |
env: | |
GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} | |
run: gh release upload ${{ github.event.release.tag_name }} ./build/distributions/* | |
# 创建拉取请求 | |
- name: 创建拉取请求 | |
if: ${{ steps.properties.outputs.changelog != '' }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.ACCESS_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 |