From 3c13e63e40fc536c056cc084c25e02ee24a30908 Mon Sep 17 00:00:00 2001 From: tibs <37983572+TibiNonEst@users.noreply.github.com> Date: Mon, 17 Jan 2022 16:20:25 -0500 Subject: [PATCH] Update github workflows - Add release workflow - Add build numbers on action --- .../{gradle.yml => build-gradle.yml} | 2 +- .github/workflows/build-release.yml | 27 ++++++++++++++++++ build.gradle | 28 ++++++++++++++++++- 3 files changed, 55 insertions(+), 2 deletions(-) rename .github/workflows/{gradle.yml => build-gradle.yml} (96%) create mode 100644 .github/workflows/build-release.yml diff --git a/.github/workflows/gradle.yml b/.github/workflows/build-gradle.yml similarity index 96% rename from .github/workflows/gradle.yml rename to .github/workflows/build-gradle.yml index d69356e..e02e70d 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/build-gradle.yml @@ -1,4 +1,4 @@ -name: gradle-ci +name: build-gradle on: [ push, pull_request ] diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml new file mode 100644 index 0000000..07b4fe3 --- /dev/null +++ b/.github/workflows/build-release.yml @@ -0,0 +1,27 @@ +name: build-release + +on: + release: + types: + - published + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + distribution: 'temurin' + java-version: 17 + + - name: Build with Gradle + run: ./gradlew build + + - name: Upload build artifacts + uses: AButler/upload-release-assets@v2.0 + with: + files: 'build/libs/!(*-@(dev|sources)).jar' + repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/build.gradle b/build.gradle index f808702..07a45ab 100644 --- a/build.gradle +++ b/build.gradle @@ -1,12 +1,14 @@ plugins { id 'fabric-loom' version '0.10.+' id 'io.github.juuxel.loom-quiltflower-mini' version '1.2.1' + id 'org.ajoberstar.grgit' version '4.1.0' } sourceCompatibility = '17' targetCompatibility = '17' -version = project.mod_version +archivesBaseName = project.archives_base_name +version = "${project.mod_version}${getVersionMetadata()}" group = project.maven_group repositories { @@ -65,3 +67,27 @@ jar { rename { "${it}_${project.archivesBaseName}"} } } + +def getVersionMetadata() { + def build_id = System.getenv("GITHUB_RUN_NUMBER") + def workflow_id = System.getenv("GITHUB_WORKFLOW") + + // CI builds only + if (workflow_id == "build-release") { + return "+${project.minecraft_version}" + } else if (build_id != null) { + return "+build.${build_id}" + } + + if (grgit != null) { + def head = grgit.head() + def id = head.abbreviatedId + + // Flag the build if the build tree is not clean + if (!grgit.status().clean) { + id += "-dirty" + } + + return "+rev.${id}" + } +}