Check Update #25396
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
name: Check Update | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '30 * * * *' | |
permissions: | |
contents: write | |
jobs: | |
dev-check-update: | |
if: ${{ github.repository_owner == 'HMCL-dev' }} | |
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 | |
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=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 | |
- 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 | |
- 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 | |
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 | $(cat HMCL-$HMCL_VERSION.exe.sha256) |" >> RELEASE_NOTE | |
echo "| HMCL-$HMCL_VERSION.jar | $(cat HMCL-$HMCL_VERSION.jar.sha256) |" >> RELEASE_NOTE | |
echo "| HMCL-$HMCL_VERSION.sh | $(cat HMCL-$HMCL_VERSION.sh.sha256) |" >> RELEASE_NOTE | |
- name: Create release | |
if: ${{ env.continue == 'true' }} | |
uses: softprops/action-gh-release@v1 | |
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 }} | |
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 | $(cat HMCL-$HMCL_VERSION.exe.sha256) |" >> RELEASE_NOTE | |
echo "| HMCL-$HMCL_VERSION.jar | $(cat HMCL-$HMCL_VERSION.jar.sha256) |" >> RELEASE_NOTE | |
echo "| HMCL-$HMCL_VERSION.sh | $(cat HMCL-$HMCL_VERSION.sh.sha256) |" >> RELEASE_NOTE | |
- name: Create release | |
if: ${{ env.continue == 'true' }} | |
uses: softprops/action-gh-release@v1 | |
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 }} |