From 5056e7ecbcc728b40c007729cc6b1bc19c6b9d9d Mon Sep 17 00:00:00 2001 From: ShintoKosei <2081384668@qq.com> Date: Sun, 14 Apr 2024 10:25:13 +0800 Subject: [PATCH] update ci --- .github/workflows/build_1_20_4_v2.yml | 59 +++++++++++++++------------ scripts/PushToAPI.sh | 33 +++------------ scripts/SetENV.sh | 22 +++++++--- 3 files changed, 55 insertions(+), 59 deletions(-) diff --git a/.github/workflows/build_1_20_4_v2.yml b/.github/workflows/build_1_20_4_v2.yml index d8d2d7a..5c45958 100644 --- a/.github/workflows/build_1_20_4_v2.yml +++ b/.github/workflows/build_1_20_4_v2.yml @@ -5,60 +5,67 @@ on: branches: [ "ver/1.20.4" ] pull_request: branches: [ "ver/1.20.4" ] - # workflow_dispatch: + permissions: write-all + jobs: build: runs-on: ubuntu-latest environment: default - steps: - name: Checkout Git Repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 + - name: Validate Gradle wrapper + uses: gradle/actions/wrapper-validation@v3 + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '17' - - name: Setup Git Config - run: | - git config --global user.email "ci@luminolmc.com" - git config --global user.name "Luminol CI" + - name: Configure Git User Details + run: git config --global user.email "ci@luminolmc.com" && git config --global user.name "LuminolMC CI" - name: Apply Patches - run: ./gradlew applyPatches - - name: Build - run: ./gradlew createReobfBundlerJar createReobfPaperclipJar - - uses: "actions/upload-artifact@v3" + uses: gradle/actions/setup-gradle@v3 with: - name: "Luminol CI Artifacts" - path: "build/libs/*.jar" - - name: Rename jar file - run: | - mv build/libs/luminol-bundler-1.20.4-R0.1-SNAPSHOT-reobf.jar build/libs/luminol-1.20.4-bundler.jar - mv build/libs/luminol-paperclip-1.20.4-R0.1-SNAPSHOT-reobf.jar build/libs/luminol-1.20.4-paperclip.jar - - name: SetEnvironment + arguments: applyPatches + - name: CreateJar + uses: gradle/actions/setup-gradle@v3 + with: + arguments: createReobfBundlerJar createReobfPaperclipJar + - name: SetENV run: | sh scripts/SetENV.sh echo "${{ env.tag }}" + - name: Upload Artifact + uses: "actions/upload-artifact@v4" + with: + name: "${{ env.project_id_b }} CI Artifacts" + path: "build/libs/*.jar" - name: Create Release - if: "!contains(github.event.commits[0].message, '[release-skip]')" - uses: ncipollo/release-action@v1.12.0 + if: "!contains(github.event.commits[0].message, '[release skip]')" + uses: ncipollo/release-action@v1.14.0 with: tag: ${{ env.tag }} name: Luminol ${{ env.mcversion }} - ${{ env.commitid }} body: | - 📦Version: `${{ env.mcversion }}` | Commit ${{ env.commitid }} [![download](https://img.shields.io/github/downloads/LuminolMC/Luminol/${{ env.tag }}/total?color=0)](https://github.com/LeavesMC/LuminolMC/Luminol/download/${{ env.tag }}/luminol-1.20.4-paperclip.jar) + ==== + 📦Version: `${{ env.mcversion }}` | Commit ${{ env.commit_id }} [![download](https://img.shields.io/github/downloads/LuminolMC/${{ env.project_id }}/${{ env.tag }}/total?color=0)](https://github.com/LuminolMC/${{ env.project_id }}/download/${{ env.tag }}/${{ env.jar }}) This release is automatically compiled by GitHub Actions + ### Commit Message + ${{ env.commit_msg }} artifacts: | - build/libs/luminol-1.20.4-bundler.jar - build/libs/luminol-1.20.4-paperclip.jar + ${{ env.jar_dir }} + build/libs/${{ env.project_id }}-${{ env.mcversion }}-bundler.jar generateReleaseNotes: true prerelease: ${{ env.pre }} makeLatest: ${{ env.make_latest }} token: "${{ secrets.GITHUB_TOKEN }}" - name: Push to API - if: "!contains(github.event.commits[0].message, '[release-skip]')" + if: "!contains(github.event.commits[0].message, '[release skip]')" env: secret_v2: ${{ secrets.API_KEY }} tag: ${{ env.tag }} - run: sh scripts/PushToAPI.sh + project_id: ${{ env.project_id }} + run: sh scripts/PushToAPI.sh \ No newline at end of file diff --git a/scripts/PushToAPI.sh b/scripts/PushToAPI.sh index 0bfbd59..b5806e7 100644 --- a/scripts/PushToAPI.sh +++ b/scripts/PushToAPI.sh @@ -1,48 +1,25 @@ sha256() { sha256sum $1 | awk '{print $1}' } - prop() { grep "${1}" gradle.properties | cut -d'=' -f2 | sed 's/\r//' } -project_id="luminol" mcversion_group=$(prop GroupMCV) mcversion=$(prop mcVersion) pre=$(prop preVersion) +pro_id_mcv=$project_id-$mcversion if [ $pre = "true" ]; then channel="experimental" else channel="default" fi + changes=$(git log -1 --pretty="[{\"commit\": \"%H\", \"message\": \"%s\", \"summary\": \"%s\"}]") -jar_sha256=`sha256 build/libs/luminol-1.20.4-paperclip.jar` -jar_name="luminol-1.20.4-paperclip.jar" +jar_sha256=`sha256 build/libs/$pro_id_mcv-paperclip.jar` +jar_name="$pro_id_mcv-paperclip.jar" ctime=$(date -u +"%s")"000" # v2 -echo "Authentication: $secret_v2" -#echo "{\"version_group\":\"$mcversion_group\",\"channel\":\"$channel\",\"changes\":\"$changes\",\"jar_name\":\"$jar_name\",\"sha256\":\"$jar_sha256\",\"release_tag\":\"$tag\",\"time\":\"$ctime\"}" > data.json -json=$(printf "{\\\"channel\\\":\\\"%s\\\", \\\"jar_name\\\":\\\"%s\\\", \\\"sha256\\\":\\\"%s\\\", \\\"tag\\\":\\\"%s\\\", \\\"time\\\":\\\"%s\\\", \\\"changes\\\":\\\"%s\\\"}" \ - "$channel" "$jar_name" "$jar_sha256" "$tag" "$ctime" "$changes") -echo "[DEBUG] $json" -echo "[DEBUG] $changes" -echo "[DEBUG] curl --location --request POST \"https://api.luminolmc.com/v2/projects/$project_id/$mcversion/build/commit\" \ - -H \"Content-Type: application/x-www-form-urlencoded\" \ - -H \"Authorization: $secret_v2\" \ - --data-urlencode \"channel=$channel\" \ - --data-urlencode \"jar_name=$jar_name\" \ - --data-urlencode \"sha256=$jar_sha256\" \ - --data-urlencode \"release_tag=$tag\" \ - --data-urlencode \"time=$ctime\" \ - --data-urlencode \"changes=$changes\"" -curl -L --request POST "https://api.luminolmc.com/v2/projects/$project_id/$mcversion/build/commit" \ - -H "Content-Type: application/x-www-form-urlencoded" \ - -H "Authorization: $secret_v2" \ - --data-urlencode "channel=$channel" \ - --data-urlencode "jar_name=$jar_name" \ - --data-urlencode "sha256=$jar_sha256" \ - --data-urlencode "release_tag=$tag" \ - --data-urlencode "time=$ctime" \ - --data-urlencode "changes=$changes" +curl -L --request POST "https://api.luminolmc.com/v2/projects/$project_id/$mcversion/build/commit" -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: $secret_v2" --data-urlencode "channel=$channel" --data-urlencode "jar_name=$jar_name" --data-urlencode "sha256=$jar_sha256" --data-urlencode "release_tag=$tag" --data-urlencode "time=$ctime" --data-urlencode "changes=$changes" \ No newline at end of file diff --git a/scripts/SetENV.sh b/scripts/SetENV.sh index 88f4caa..8ea7b03 100644 --- a/scripts/SetENV.sh +++ b/scripts/SetENV.sh @@ -2,17 +2,29 @@ prop() { grep "${1}" gradle.properties | cut -d'=' -f2 | sed 's/\r//' } +$project_id="luminol" +$project_id_b="Luminol" + commitid=$(git log --pretty='%h' -1) mcversion=$(prop mcVersion) +grdversion=$(prop version) preVersion=$(prop preVersion) release_tag="$mcversion-$commitid" -jarName="build/libs/luminol-1.20.4-paperclip.jar" +jarName="$project_id-$mcversion-paperclip.jar" +jarName_dir="build/libs/$jarName" make_latest=$([ $preVersion = "true" ] && echo "false" || echo "true") -echo "commitid=$commitid" >> $GITHUB_ENV +mv build/libs/$project_id-paperclip-$grdversion-reobf.jar build/libs/$jarName +mv build/libs/$project_id-bundler-$grdversion-reobf.jar build/libs/$project_id-$mcversion-bundler.jar + +echo "project_id=$project_id" >> $GITHUB_ENV +echo "project_id_b=$project_id_b" >> $GITHUB_ENV +echo "commit_id=$commitid" >> $GITHUB_ENV +echo "commit_msg=$(git log --pretty='> [%h] %s' -$number)" >> $GITHUB_ENV +echo "$commit_msg" echo "mcversion=$mcversion" >> $GITHUB_ENV -echo "$mcversion" +echo "pre=$preVersion" >> $GITHUB_ENV echo "tag=$release_tag" >> $GITHUB_ENV echo "jar=$jarName" >> $GITHUB_ENV -echo "pre=$preVersion" >> $GITHUB_ENV -echo "make_latest=$make_latest" >> $GITHUB_ENV +echo "jar_dir=$jarName_dir" >> $GITHUB_ENV +echo "make_latest=$make_latest" >> $GITHUB_ENV \ No newline at end of file