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]($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: ture 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 - 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 }}