137 lines
6.4 KiB
YAML
137 lines
6.4 KiB
YAML
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@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 | $(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@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 }}
|