Skip to content

Commit d45d994

Browse files
authored
将 Release 同步至 CNB (#5000)
1 parent 01b7a6b commit d45d994

File tree

2 files changed

+120
-79
lines changed

2 files changed

+120
-79
lines changed

.github/workflows/check-update.yml

Lines changed: 0 additions & 79 deletions
This file was deleted.

.github/workflows/release.yml

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
name: Create Release
2+
3+
on:
4+
workflow_dispatch:
5+
# schedule:
6+
# - cron: '30 * * * *'
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
check-update:
13+
if: ${{ github.repository_owner == 'HMCL-dev' }}
14+
strategy:
15+
fail-fast: false
16+
max-parallel: 1
17+
matrix:
18+
include:
19+
- channel: dev
20+
task: checkUpdateDev
21+
- channel: stable
22+
task: checkUpdateStable
23+
runs-on: ubuntu-latest
24+
name: check-update-${{ matrix.channel }}
25+
steps:
26+
- name: Checkout
27+
uses: actions/checkout@v6
28+
with:
29+
fetch-depth: 0
30+
fetch-tags: true
31+
- name: Set up JDK
32+
uses: actions/setup-java@v5
33+
with:
34+
distribution: 'temurin'
35+
java-version: '25'
36+
- name: Fetch last version
37+
run: ./gradlew ${{ matrix.task }} --no-daemon --info --stacktrace
38+
- name: Check for existing tags
39+
run: if [ -z "$(git tag -l "$HMCL_TAG_NAME")" ]; then echo "continue=true" >> $GITHUB_ENV; fi
40+
- name: Download artifacts
41+
if: ${{ env.continue == 'true' }}
42+
run: |
43+
wget "$HMCL_CI_DOWNLOAD_BASE_URI/HMCL-$HMCL_VERSION.exe"
44+
wget "$HMCL_CI_DOWNLOAD_BASE_URI/HMCL-$HMCL_VERSION.exe.sha256"
45+
wget "$HMCL_CI_DOWNLOAD_BASE_URI/HMCL-$HMCL_VERSION.jar"
46+
wget "$HMCL_CI_DOWNLOAD_BASE_URI/HMCL-$HMCL_VERSION.jar.sha256"
47+
wget "$HMCL_CI_DOWNLOAD_BASE_URI/HMCL-$HMCL_VERSION.sh"
48+
wget "$HMCL_CI_DOWNLOAD_BASE_URI/HMCL-$HMCL_VERSION.sh.sha256"
49+
- name: Verify artifacts
50+
if: ${{ env.continue == 'true' }}
51+
run: |
52+
export JAR_SHA256=$(cat HMCL-$HMCL_VERSION.jar.sha256 | tr -d '\n')
53+
export EXE_SHA256=$(cat HMCL-$HMCL_VERSION.exe.sha256 | tr -d '\n')
54+
export SH_SHA256=$(cat HMCL-$HMCL_VERSION.sh.sha256 | tr -d '\n')
55+
56+
echo "$JAR_SHA256 HMCL-$HMCL_VERSION.jar" | sha256sum -c
57+
echo "$EXE_SHA256 HMCL-$HMCL_VERSION.exe" | sha256sum -c
58+
echo "$SH_SHA256 HMCL-$HMCL_VERSION.sh" | sha256sum -c
59+
- name: Generate release note
60+
if: ${{ env.continue == 'true' }}
61+
run: |
62+
# GitHub Release Note
63+
echo " **[Changelog](https://docs.hmcl.net/changelog/${{ matrix.channel }}.html#HMCL-$HMCL_VERSION)** (Chinese)" >> RELEASE_NOTE
64+
echo "" >> RELEASE_NOTE
65+
echo "| File | SHA-256 Checksum |" >> RELEASE_NOTE
66+
echo "| --- | --- |" >> RELEASE_NOTE
67+
echo "| [HMCL-$HMCL_VERSION.exe]($GH_DOWNLOAD_BASE_URL/v$HMCL_VERSION/HMCL-$HMCL_VERSION.exe) | \`$(cat HMCL-$HMCL_VERSION.exe.sha256)\` |" >> RELEASE_NOTE
68+
echo "| [HMCL-$HMCL_VERSION.jar]($GH_DOWNLOAD_BASE_URL/v$HMCL_VERSION/HMCL-$HMCL_VERSION.jar) | \`$(cat HMCL-$HMCL_VERSION.jar.sha256)\` |" >> RELEASE_NOTE
69+
echo "| [HMCL-$HMCL_VERSION.sh]($GH_DOWNLOAD_BASE_URL/v$HMCL_VERSION/HMCL-$HMCL_VERSION.sh) | \`$(cat HMCL-$HMCL_VERSION.sh.sha256)\` |" >> RELEASE_NOTE
70+
71+
# CNB Release Note
72+
echo "[更新日志](https://docs.hmcl.net/changelog/${{ matrix.channel }}.html#HMCL-$HMCL_VERSION)" >> CNB_RELEASE_NOTE
73+
echo "" >> CNB_RELEASE_NOTE
74+
echo "| 文件 | SHA-256 校验码 |" >> CNB_RELEASE_NOTE
75+
echo "| :--- | --- |" >> CNB_RELEASE_NOTE
76+
echo "| [HMCL-$HMCL_VERSION.exe]($CNB_DOWNLOAD_BASE_URL/v$HMCL_VERSION/HMCL-$HMCL_VERSION.exe) | \`$(cat HMCL-$HMCL_VERSION.exe.sha256)\` |" >> CNB_RELEASE_NOTE
77+
echo "| [HMCL-$HMCL_VERSION.jar]($CNB_DOWNLOAD_BASE_URL/v$HMCL_VERSION/HMCL-$HMCL_VERSION.jar) | \`$(cat HMCL-$HMCL_VERSION.jar.sha256)\` |" >> CNB_RELEASE_NOTE
78+
echo "| [HMCL-$HMCL_VERSION.sh]($CNB_DOWNLOAD_BASE_URL/v$HMCL_VERSION/HMCL-$HMCL_VERSION.sh) | \`$(cat HMCL-$HMCL_VERSION.sh.sha256)\` |" >> CNB_RELEASE_NOTE
79+
env:
80+
GH_DOWNLOAD_BASE_URL: https://github.com/${{ github.repository }}/releases/download
81+
CNB_DOWNLOAD_BASE_URL: https://cnb.cool/HMCL-dev/HMCL/-/releases/download
82+
- name: Create GitHub release
83+
if: ${{ env.continue == 'true' }}
84+
run: |
85+
gh release create "${{ env.HMCL_TAG_NAME }}" \
86+
"HMCL-${{ env.HMCL_VERSION }}.exe" \
87+
"HMCL-${{ env.HMCL_VERSION }}.jar" \
88+
"HMCL-${{ env.HMCL_VERSION }}.sh" \
89+
--target "${{ env.HMCL_COMMIT_SHA }}" \
90+
--title "${{ env.HMCL_TAG_NAME }}" \
91+
--notes-file RELEASE_NOTE \
92+
--prerelease
93+
env:
94+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
95+
- name: Install git-cnb
96+
if: ${{ env.continue == 'true' }}
97+
run: go install "cnb.cool/looc/git-cnb@$GIT_CNB_VERSION"
98+
env:
99+
GIT_CNB_VERSION: '1.1.2'
100+
- name: Create CNB release
101+
if: ${{ env.continue == 'true' }}
102+
run: |
103+
~/go/bin/git-cnb release create \
104+
--repo "$CNB_REPO" \
105+
--tag "v$HMCL_VERSION" \
106+
--name "HMCL $HMCL_VERSION" \
107+
--body "$(cat CNB_RELEASE_NOTE)" \
108+
--prerelease true
109+
110+
echo "Uploading HMCL-$HMCL_VERSION.jar"
111+
~/go/bin/git-cnb release asset-upload --repo="$CNB_REPO" --tag-name "v$HMCL_VERSION" --file-name "HMCL-$HMCL_VERSION.jar"
112+
113+
echo "Uploading HMCL-$HMCL_VERSION.exe"
114+
~/go/bin/git-cnb release asset-upload --repo="$CNB_REPO" --tag-name "v$HMCL_VERSION" --file-name "HMCL-$HMCL_VERSION.exe"
115+
116+
echo "Uploading HMCL-$HMCL_VERSION.sh"
117+
~/go/bin/git-cnb release asset-upload --repo="$CNB_REPO" --tag-name "v$HMCL_VERSION" --file-name "HMCL-$HMCL_VERSION.sh"
118+
env:
119+
CNB_TOKEN: ${{ secrets.CNB_SYNC_TOKEN }}
120+
CNB_REPO: HMCL-dev/HMCL

0 commit comments

Comments
 (0)