Merge 4e9300380f7f7912fdf2ff0c744ea5c74c6b0d39 into 9969dc60c5278340b6b9a4d7facdde620e99d1f5

This commit is contained in:
neveler 2025-08-02 19:33:46 +08:00 committed by GitHub
commit 8b0ddb2c28
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -9,18 +9,24 @@ permissions:
contents: write
jobs:
dev-check-update:
if: ${{ github.repository_owner == 'HMCL-dev' }}
check-update:
if: ${{ github.event_name != 'schedule' || github.repository_owner == 'HMCL-dev' }}
strategy:
fail-fast: false
matrix:
channel: [dev, stable]
include:
- channel: dev
tag_prefix: v
job_name: HMCL
- channel: stable
tag_prefix: release-
job_name: HMCL-stable
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Fetch tags
run: git fetch --all --tags
- name: Install tools
run: sudo apt-get install -y jq
- name: Fetch last version
run: |
wget -O ci.json https://ci.huangyuhui.net/job/HMCL/lastSuccessfulBuild/api/json
wget -O ci.json "https://ci.huangyuhui.net/job/${{ matrix.job_name }}/lastSuccessfulBuild/api/json"
export HMCL_EXE_FILE_NAME=`cat ci.json | jq -M -r '.artifacts[] | select(.fileName | endswith(".exe")) | .fileName'`
if [ -z `echo $HMCL_EXE_FILE_NAME | grep -E "^HMCL-[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?\.exe\$"` ]; then exit 1; fi
@ -32,101 +38,38 @@ jobs:
echo "HMCL_VERSION=$HMCL_VERSION" >> $GITHUB_ENV
echo "HMCL_COMMIT_SHA=$HMCL_COMMIT_SHA" >> $GITHUB_ENV
echo "HMCL_TAG_NAME=v$HMCL_VERSION" >> $GITHUB_ENV
- name: Check for existing tags
run: if [ -z "$(git tag -l "$HMCL_TAG_NAME")" ]; then echo "continue=true" >> $GITHUB_ENV; fi
echo "HMCL_TAG_NAME=${{ matrix.tag_prefix }}$HMCL_VERSION" >> $GITHUB_ENV
- name: Check continue
run: |
if [ "$(curl -s -o /dev/null -w '%{http_code}' "https://api.github.com/repos/${{ github.repository }}/git/ref/tags/${{ env.HMCL_TAG_NAME }}")" != "200" ] && \
[ "$(curl -s -o /dev/null -w '%{http_code}' "https://api.github.com/repos/${{ github.repository }}/commits/${{ env.HMCL_COMMIT_SHA }}")" = "200" ]; then
echo "continue=true" >> $GITHUB_ENV
fi
- name: Download artifacts
if: ${{ env.continue == 'true' }}
run: |
wget "$DOWNLOAD_BASE_URL/HMCL-$HMCL_VERSION.exe"
wget "$DOWNLOAD_BASE_URL/HMCL-$HMCL_VERSION.exe.sha256"
wget "$DOWNLOAD_BASE_URL/HMCL-$HMCL_VERSION.jar"
wget "$DOWNLOAD_BASE_URL/HMCL-$HMCL_VERSION.jar.sha256"
wget "$DOWNLOAD_BASE_URL/HMCL-$HMCL_VERSION.sh"
wget "$DOWNLOAD_BASE_URL/HMCL-$HMCL_VERSION.sh.sha256"
env:
DOWNLOAD_BASE_URL: https://ci.huangyuhui.net/job/HMCL/lastSuccessfulBuild/artifact/HMCL/build/libs
wget "https://ci.huangyuhui.net/job/${{ matrix.job_name }}/lastSuccessfulBuild/artifact/HMCL/build/libs/HMCL-${{ env.HMCL_VERSION }}.exe"
wget "https://ci.huangyuhui.net/job/${{ matrix.job_name }}/lastSuccessfulBuild/artifact/HMCL/build/libs/HMCL-${{ env.HMCL_VERSION }}.exe.sha256"
wget "https://ci.huangyuhui.net/job/${{ matrix.job_name }}/lastSuccessfulBuild/artifact/HMCL/build/libs/HMCL-${{ env.HMCL_VERSION }}.jar"
wget "https://ci.huangyuhui.net/job/${{ matrix.job_name }}/lastSuccessfulBuild/artifact/HMCL/build/libs/HMCL-${{ env.HMCL_VERSION }}.jar.sha256"
wget "https://ci.huangyuhui.net/job/${{ matrix.job_name }}/lastSuccessfulBuild/artifact/HMCL/build/libs/HMCL-${{ env.HMCL_VERSION }}.sh"
wget "https://ci.huangyuhui.net/job/${{ matrix.job_name }}/lastSuccessfulBuild/artifact/HMCL/build/libs/HMCL-${{ env.HMCL_VERSION }}.sh.sha256"
- name: Generate release note
if: ${{ env.continue == 'true' }}
run: |
echo "The full changelogs can be found on the website: https://docs.hmcl.net/changelog/dev.html" >> RELEASE_NOTE
if [[ "${{ matrix.channel }}" == "stable" ]]; then
echo "**This version is a stable version.**" >> RELEASE_NOTE
echo "" >> RELEASE_NOTE
fi
echo "The full changelogs can be found on the website: https://docs.hmcl.net/changelog/${{ matrix.channel }}.html" >> RELEASE_NOTE
echo "" >> RELEASE_NOTE
echo "*Notice: changelogs are written in Chinese.*" >> RELEASE_NOTE
echo "" >> RELEASE_NOTE
echo "| File Name | SHA-256 Checksum |" >> RELEASE_NOTE
echo "| --- | --- |" >> RELEASE_NOTE
echo "| [HMCL-$HMCL_VERSION.exe]($GH_DOWNLOAD_BASE_URL/v$HMCL_VERSION/HMCL-$HMCL_VERSION.exe) | \`$(cat HMCL-$HMCL_VERSION.exe.sha256)\` |" >> RELEASE_NOTE
echo "| [HMCL-$HMCL_VERSION.jar]($GH_DOWNLOAD_BASE_URL/v$HMCL_VERSION/HMCL-$HMCL_VERSION.jar) | \`$(cat HMCL-$HMCL_VERSION.jar.sha256)\` |" >> RELEASE_NOTE
echo "| [HMCL-$HMCL_VERSION.sh]($GH_DOWNLOAD_BASE_URL/v$HMCL_VERSION/HMCL-$HMCL_VERSION.sh) | \`$(cat HMCL-$HMCL_VERSION.sh.sha256)\` |" >> RELEASE_NOTE
env:
GH_DOWNLOAD_BASE_URL: https://github.com/HMCL-dev/HMCL/releases/download
- name: Create release
if: ${{ env.continue == 'true' }}
uses: softprops/action-gh-release@v2
with:
body_path: RELEASE_NOTE
files: |
HMCL-${{ env.HMCL_VERSION }}.exe
HMCL-${{ env.HMCL_VERSION }}.jar
HMCL-${{ env.HMCL_VERSION }}.sh
target_commitish: ${{ env.HMCL_COMMIT_SHA }}
name: ${{ env.HMCL_TAG_NAME }}
tag_name: ${{ env.HMCL_TAG_NAME }}
prerelease: true
stable-check-update:
if: ${{ github.repository_owner == 'HMCL-dev' }}
needs: dev-check-update
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Fetch tags
run: git fetch --all --tags
- name: Install tools
run: sudo apt-get install -y jq
- name: Fetch last version
run: |
wget -O ci.json https://ci.huangyuhui.net/job/HMCL-stable/lastSuccessfulBuild/api/json
export HMCL_EXE_FILE_NAME=`cat ci.json | jq -M -r '.artifacts[] | select(.fileName | endswith(".exe")) | .fileName'`
if [ -z `echo $HMCL_EXE_FILE_NAME | grep -E "^HMCL-[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?\.exe\$"` ]; then exit 1; fi
export HMCL_VERSION=`echo "${HMCL_EXE_FILE_NAME%.exe}" | tail -c +6`
export HMCL_COMMIT_SHA=`cat ci.json | jq -M -r '.actions[] | select(._class == "hudson.plugins.git.util.BuildData") | .lastBuiltRevision.SHA1'`
if [ "${#HMCL_COMMIT_SHA}" != 40 ]; then exit 1; fi
echo "HMCL_VERSION=$HMCL_VERSION" >> $GITHUB_ENV
echo "HMCL_COMMIT_SHA=$HMCL_COMMIT_SHA" >> $GITHUB_ENV
echo "HMCL_TAG_NAME=release-$HMCL_VERSION" >> $GITHUB_ENV
- name: Check for existing tags
run: if ! git tag -l | grep -q "$HMCL_TAG_NAME"; then echo "continue=true" >> $GITHUB_ENV; fi
- name: Download artifacts
if: ${{ env.continue == 'true' }}
run: |
wget "$DOWNLOAD_BASE_URL/HMCL-$HMCL_VERSION.exe"
wget "$DOWNLOAD_BASE_URL/HMCL-$HMCL_VERSION.exe.sha256"
wget "$DOWNLOAD_BASE_URL/HMCL-$HMCL_VERSION.jar"
wget "$DOWNLOAD_BASE_URL/HMCL-$HMCL_VERSION.jar.sha256"
wget "$DOWNLOAD_BASE_URL/HMCL-$HMCL_VERSION.sh"
wget "$DOWNLOAD_BASE_URL/HMCL-$HMCL_VERSION.sh.sha256"
env:
DOWNLOAD_BASE_URL: https://ci.huangyuhui.net/job/HMCL-stable/lastSuccessfulBuild/artifact/HMCL/build/libs
- name: Generate release note
if: ${{ env.continue == 'true' }}
run: |
echo "**This version is a stable version.**" >> RELEASE_NOTE
echo "" >> RELEASE_NOTE
echo "The full changelogs can be found on the website: https://docs.hmcl.net/changelog/stable.html" >> RELEASE_NOTE
echo "" >> RELEASE_NOTE
echo "*Notice: changelogs are written in Chinese.*" >> RELEASE_NOTE
echo "" >> RELEASE_NOTE
echo "| File Name | SHA-256 Checksum |" >> RELEASE_NOTE
echo "| --- | --- |" >> RELEASE_NOTE
echo "| [HMCL-$HMCL_VERSION.exe]($GH_DOWNLOAD_BASE_URL/release-$HMCL_VERSION/HMCL-$HMCL_VERSION.exe) | \`$(cat HMCL-$HMCL_VERSION.exe.sha256)\` |" >> RELEASE_NOTE
echo "| [HMCL-$HMCL_VERSION.jar]($GH_DOWNLOAD_BASE_URL/release-$HMCL_VERSION/HMCL-$HMCL_VERSION.jar) | \`$(cat HMCL-$HMCL_VERSION.jar.sha256)\` |" >> RELEASE_NOTE
echo "| [HMCL-$HMCL_VERSION.sh]($GH_DOWNLOAD_BASE_URL/release-$HMCL_VERSION/HMCL-$HMCL_VERSION.sh) | \`$(cat HMCL-$HMCL_VERSION.sh.sha256)\` |" >> RELEASE_NOTE
env:
GH_DOWNLOAD_BASE_URL: https://github.com/HMCL-dev/HMCL/releases/download
echo "| [HMCL-${{ env.HMCL_VERSION }}.exe](https://github.com/${{ github.repository }}/releases/download/${{ env.HMCL_TAG_NAME }}/HMCL-${{ env.HMCL_VERSION }}.exe) | \`$(cat HMCL-${{ env.HMCL_VERSION }}.exe.sha256)\` |" >> RELEASE_NOTE
echo "| [HMCL-${{ env.HMCL_VERSION }}.jar](https://github.com/${{ github.repository }}/releases/download/${{ env.HMCL_TAG_NAME }}/HMCL-${{ env.HMCL_VERSION }}.jar) | \`$(cat HMCL-${{ env.HMCL_VERSION }}.jar.sha256)\` |" >> RELEASE_NOTE
echo "| [HMCL-${{ env.HMCL_VERSION }}.sh](https://github.com/${{ github.repository }}/releases/download/${{ env.HMCL_TAG_NAME }}/HMCL-${{ env.HMCL_VERSION }}.sh) | \`$(cat HMCL-${{ env.HMCL_VERSION }}.sh.sha256)\` |" >> RELEASE_NOTE
- name: Create release
if: ${{ env.continue == 'true' }}
uses: softprops/action-gh-release@v2
@ -139,3 +82,4 @@ jobs:
target_commitish: ${{ env.HMCL_COMMIT_SHA }}
name: ${{ env.HMCL_TAG_NAME }}
tag_name: ${{ env.HMCL_TAG_NAME }}
prerelease: ${{ matrix.channel == 'dev' }}