From f8b620282f0d44731e2a893bee6f4be9e98ad122 Mon Sep 17 00:00:00 2001 From: violetc <58360096+s-yh-china@users.noreply.github.com> Date: Mon, 3 Jun 2024 16:43:57 +0800 Subject: [PATCH] [ci skip] Update scripts --- .github/workflows/build.yml | 2 +- scripts/GetBuildNumber.sh | 6 +-- scripts/GetReleaseInfo.sh | 77 +++++++++++++++++++++---------------- 3 files changed, 48 insertions(+), 37 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 537b67a7..5f1d385c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -61,7 +61,7 @@ jobs: https://github.com/LeavesMC/Leaves/commit/$(cd .. && git rev-parse HEAD)" git push origin HEAD:Leaves - name: Get Release Info - run: sh scripts/GetReleaseInfo.sh + run: bash scripts/GetReleaseInfo.sh env: BUILD_NUMBER: ${{ env.BUILD_NUMBER }} - name: Upload Artifact diff --git a/scripts/GetBuildNumber.sh b/scripts/GetBuildNumber.sh index 2ce59e5f..622caca1 100644 --- a/scripts/GetBuildNumber.sh +++ b/scripts/GetBuildNumber.sh @@ -1,13 +1,13 @@ -#!/bin/bash +#!/usr/bin/env bash prop() { grep "${1}" gradle.properties | cut -d'=' -f2 | sed 's/\r//' } -latest_build=$(curl -s https://api.leavesmc.org/v2/projects/leaves/versions/$(prop mcVersion)/latestGroupBuildId) +latest_build=$(curl -s -L "https://api.leavesmc.org/projects/leaves/versions/$(prop mcVersion)/latestGroupBuildId") if [[ $latest_build =~ ^[0-9]+$ ]]; then - echo "BUILD_NUMBER=$((latest_build + 1))" >> $GITHUB_ENV + echo "BUILD_NUMBER=$((latest_build + 1))" >> "$GITHUB_ENV" else echo "Error: Received non-integer value from API: $latest_build" exit 1 diff --git a/scripts/GetReleaseInfo.sh b/scripts/GetReleaseInfo.sh index 1d10470a..559d33b6 100644 --- a/scripts/GetReleaseInfo.sh +++ b/scripts/GetReleaseInfo.sh @@ -1,13 +1,15 @@ +#!/usr/bin/env bash + sha256() { - sha256sum $1 | awk '{print $1}' + sha256sum "$1" | awk '{print $1}' } sha1() { - sha1sum $1 | awk '{print $1}' + sha1sum "$1" | awk '{print $1}' } md5() { - md5sum $1 | awk '{print $1}' + md5sum "$1" | awk '{print $1}' } prop() { @@ -23,41 +25,50 @@ jarName="leaves-$mcversion.jar" leavesid="Leaves-$BUILD_NUMBER-$commitid" releaseinfo="releaseinfo.md" discordmes="discordmes.json" -make_latest=$([ $preVersion = "true" ] && echo "false" || echo "true") +make_latest=$([ "$preVersion" = "true" ] && echo "false" || echo "true") rm -f $discordmes rm -f $releaseinfo -mv build/libs/Leaves-leavesclip-$gradleVersion-mojmap.jar $jarName -echo "name=$leavesid" >> $GITHUB_ENV -echo "tag=$tagid" >> $GITHUB_ENV -echo "jar=$jarName" >> $GITHUB_ENV -echo "info=$releaseinfo" >> $GITHUB_ENV -echo "discordmes=$discordmes" >> $GITHUB_ENV -echo "pre=$preVersion" >> $GITHUB_ENV -echo "make_latest=$make_latest" >> $GITHUB_ENV +mv build/libs/Leaves-leavesclip-"$gradleVersion"-mojmap.jar "$jarName" +{ + echo "name=$leavesid" + echo "tag=$tagid" + echo "jar=$jarName" + echo "info=$releaseinfo" + echo "discordmes=$discordmes" + echo "pre=$preVersion" + echo "make_latest=$make_latest" +} >> "$GITHUB_ENV" -echo "$leavesid [![download](https://img.shields.io/github/downloads/LeavesMC/Leaves/$tagid/total?color=0)](https://github.com/LeavesMC/Leaves/releases/download/$tagid/$jarName)" >> $releaseinfo -echo "=====" >> $releaseinfo -echo "" >> $releaseinfo -if [ $preVersion = "true" ]; then - echo "> This is an early, experimental build. It is only recommended for usage on test servers and should be used with caution." >> $releaseinfo - echo "> **Backups are mandatory!**" >> $releaseinfo - echo "" >> $releaseinfo -fi -echo "### Commit Message" >> $releaseinfo +{ + echo "$leavesid [![download](https://img.shields.io/github/downloads/LeavesMC/Leaves/$tagid/total?color=0)](https://github.com/LeavesMC/Leaves/releases/download/$tagid/$jarName)" + echo "=====" + echo "" + if [ "$preVersion" = "true" ]; then + echo "> This is an early, experimental build. It is only recommended for usage on test servers and should be used with caution." + echo "> **Backups are mandatory!**" + echo "" + fi + echo "### Commit Message" +} >> $releaseinfo -number=$(git log --oneline master ^`git describe --tags --abbrev=0` | wc -l) -echo "$(git log --pretty='> [%h] %s' -$number)" >> $releaseinfo +number=$(git log --oneline master ^"$(git describe --tags --abbrev=0)" | wc -l) +git log --pretty='> [%h] %s' "-$number" >> $releaseinfo -echo "" >> $releaseinfo -echo "### Checksum" >> $releaseinfo -echo "| File | $jarName |" >> $releaseinfo -echo "| ---- | ---- |" >> $releaseinfo -echo "| MD5 | `md5 $jarName` |" >> $releaseinfo -echo "| SHA1 | `sha1 $jarName` |" >> $releaseinfo -echo "| SHA256 | `sha256 $jarName` |" >> $releaseinfo +{ + echo "" + echo "### Checksum" + echo "| File | $jarName |" + echo "| ---- | ---- |" + echo "| MD5 | $(md5 "$jarName") |" + echo "| SHA1 | $(sha1 "$jarName") |" + echo "| SHA256 | $(sha256 "$jarName") |" +} >> $releaseinfo -echo -n "{\"content\":\"Leaves New Release\",\"embeds\":[{\"title\":\"$leavesid\",\"url\":\"https://github.com/LeavesMC/Leaves/releases/tag/$tagid\",\"fields\":[{\"name\":\"Changelog\",\"value\":\"" >> $discordmes -echo -n $(git log --oneline --pretty='> [%h] %s\\n' -$number) >> $discordmes -echo "\",\"inline\":true}]}]}" >> $discordmes +{ + echo -n "{\"content\":\"Leaves New Release\",\"embeds\":[{\"title\":\"$leavesid\",\"url\":\"https://github.com/LeavesMC/Leaves/releases/tag/$tagid\",\"fields\":[{\"name\":\"Changelog\",\"value\":\"" + # shellcheck disable=SC2046 + echo -n $(git log --oneline --pretty='> [%h] %s\\n' "-$number") + echo "\",\"inline\":true}]}]}" +} >> $discordmes \ No newline at end of file