name: Check Update

on:
  workflow_dispatch:
  schedule:
    - cron: '30 * * * *'

jobs:
  check-update:
    if: ${{ github.repository_owner == 'huanghongxun' }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - 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 "^HMCL-[0-9]\.[0-9]\.[0-9]\{3\}\.exe\$"` ]; then exit 1; fi
          
          export HMCL_BASE_VERSION=${HMCL_EXE_FILE_NAME:5:3}
          export HMCL_BUILD_NUMBER=`cat ci.json | jq -M -r '.id'`
          export HMCL_VERSION="$HMCL_BASE_VERSION.$HMCL_BUILD_NUMBER"
          export HMCL_COMMIT_SHA=`cat ci.json | jq -M -r '.actions[] | select(._class == "hudson.plugins.git.util.BuildData") | .lastBuiltRevision.SHA1'`

          if [ "${#HMCL_BUILD_NUMBER}" != 3 ]; then exit 1; fi
          if [ "${#HMCL_COMMIT_SHA}" != 40 ]; then exit 1; fi

          echo "HMCL_BASE_VERSION=$HMCL_BASE_VERSION" >> $GITHUB_ENV
          echo "HMCL_BUILD_NUMBER=$HMCL_BUILD_NUMBER" >> $GITHUB_ENV
          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.sha1"
          wget "$DOWNLOAD_BASE_URL/HMCL-$HMCL_VERSION.jar"
          wget "$DOWNLOAD_BASE_URL/HMCL-$HMCL_VERSION.jar.sha1"
        env:
          DOWNLOAD_BASE_URL: https://ci.huangyuhui.net/job/HMCL/${{ env.HMCL_BUILD_NUMBER }}/artifact/HMCL/build/libs
      - name: Generate release note
        if: ${{ env.continue == 'true' }}
        run: |
          echo "HMCL v$HMCL_VERSION" >> RELEASE_NOTE
          echo "" >> RELEASE_NOTE
          echo "The full changelogs can be found on the website: https://hmcl.huangyuhui.net/changelog/dev.html" >> RELEASE_NOTE
          echo "Notice: changelogs are written in Chinese." >> 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 }}.exe.sha1
            HMCL-${{ env.HMCL_VERSION }}.jar
            HMCL-${{ env.HMCL_VERSION }}.jar.sha1
          target_commitish: ${{ env.HMCL_COMMIT_SHA }}
          name: ${{ env.HMCL_TAG_NAME }}
          tag_name: ${{ env.HMCL_TAG_NAME }}
