name: Check Update on: workflow_dispatch: # schedule: # - cron: '30 * * * *' permissions: contents: write jobs: check-update: if: ${{ github.repository_owner == 'HMCL-dev' }} strategy: fail-fast: false max-parallel: 1 matrix: include: - channel: dev task: checkUpdateDev - channel: stable task: checkUpdateStable runs-on: ubuntu-latest name: check-update-${{ matrix.channel }} steps: - name: Checkout uses: actions/checkout@v6 with: fetch-depth: 0 fetch-tags: true - name: Set up JDK uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '25' - name: Fetch last version run: ./gradlew ${{ matrix.task }} --no-daemon --info --stacktrace - 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 "$HMCL_CI_DOWNLOAD_BASE_URI/HMCL-$HMCL_VERSION.exe" wget "$HMCL_CI_DOWNLOAD_BASE_URI/HMCL-$HMCL_VERSION.exe.sha256" wget "$HMCL_CI_DOWNLOAD_BASE_URI/HMCL-$HMCL_VERSION.jar" wget "$HMCL_CI_DOWNLOAD_BASE_URI/HMCL-$HMCL_VERSION.jar.sha256" wget "$HMCL_CI_DOWNLOAD_BASE_URI/HMCL-$HMCL_VERSION.sh" wget "$HMCL_CI_DOWNLOAD_BASE_URI/HMCL-$HMCL_VERSION.sh.sha256" - name: Generate release note if: ${{ env.continue == 'true' }} run: | 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/${{ github.repository }}/releases/download - name: Create release if: ${{ env.continue == 'true' }} run: | gh release create "${{ env.HMCL_TAG_NAME }}" \ "HMCL-${{ env.HMCL_VERSION }}.exe" \ "HMCL-${{ env.HMCL_VERSION }}.jar" \ "HMCL-${{ env.HMCL_VERSION }}.sh" \ --target "${{ env.HMCL_COMMIT_SHA }}" \ --title "${{ env.HMCL_TAG_NAME }}" \ --notes-file RELEASE_NOTE \ --prerelease env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}