Skip to content

Commit

Permalink
cicd(CHN-208): auto release
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeff-Tian committed Mar 22, 2024
1 parent 56c9f9f commit b2033e5
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up JDK 18
uses: actions/setup-java@v1
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mavenpublish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up JDK 18
uses: actions/setup-java@v1
with:
Expand Down
70 changes: 70 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Release Workflow

on:
workflow_run:
workflows: ["Java CI with Maven"]
branches: [master]
types:
- completed


jobs:
release:
name: Release Process
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up JDK 18
uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '18'

- name: Get latest tag
id: get_latest_tag
run: |
git fetch --tags
latest_tag=$(git describe --tags $(git rev-list --tags --max-count=1))
echo "::set-output name=latest_tag::$latest_tag"
- name: Get current version from pom.xml
id: get_current_version
run: |
current_version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
echo "::set-output name=current_version::$current_version"
- name: Check if pom.xml version has changed
id: check_version
run: |
if [ "${{ steps.get_current_version.outputs.current_version }}" != "${{ steps.get_latest_tag.outputs.latest_tag }}" ]; then
echo "Version changed"
echo "::set-output name=version_changed::true"
else
echo "Version not changed"
echo "::set-output name=version_changed::false"
fi
- name: Create tag
id: create_tag
if: steps.check_version.outputs.version_changed == 'true'
run: git tag ${{ steps.get_current_version.outputs.current_version }} -m "Release ${{ steps.get_current_version.outputs.current_version }}"

- name: Push tag
id: push_tag
if: steps.check_version.outputs.version_changed == 'true'
run: git push origin ${{ steps.get_current_version.outputs.current_version }}

- name: Create release
id: create_release
if: steps.check_version.outputs.version_changed == 'true'
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.get_current_version.outputs.current_version }}
release_name: Release ${{ steps.get_current_version.outputs.current_version }}
draft: false
prerelease: false
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ ls target

## 发版

本项目使用 GitHub Actions 自动发版,只需要在 master 分支上打一个 tag,然后在 GitHub 上发布一个 release 即可。
本项目使用 GitHub Actions 自动发版,只需要在 master 分支上打一个 tag,然后在 GitHub 上发布一个 release 即可。不过,一般来说,也不需要手动打 tag。每次提交代码到 master 分支,GitHub Actions 都会检测是否有版本号的变化。如果版本号发生了变化,就会自动将该版本号做为新的 tag,并基于此来发布一个 release。详见: [这个 yml 文件](.github/workflows/release.yml)

## 版本更新

Expand Down

0 comments on commit b2033e5

Please sign in to comment.