From e7c4d77a2b5fb3a05572b2299480e9bfc8ea5742 Mon Sep 17 00:00:00 2001 From: Luke Bemish Date: Mon, 22 Jul 2024 01:54:02 -0500 Subject: [PATCH] More fixes for publishing --- .github/workflows/release.yml | 149 ++++++++++++++++++++++++++++++++++ build.gradle | 4 +- 2 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..be1e132 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,149 @@ +{ + "jobs": { + "build": { + "outputs": { + "version": "${{ steps.record_version_capture_version.outputs.version }}" + }, + "runs-on": "ubuntu-22.04", + "permissions": { + "contents": "write" + }, + "steps": [ + { + "name": "Setup Java", + "run": "echo \"JAVA_HOME=$JAVA_HOME_21_X64\" >> \"$GITHUB_ENV\"" + }, + { + "with": { + "fetch-depth": "0" + }, + "name": "Checkout", + "uses": "actions/checkout@v4" + }, + { + "name": "Validate Gradle Wrapper", + "uses": "gradle/actions/wrapper-validation@v3" + }, + { + "with": { + "path": "**/.gradle/loom-cache\n**/.gradle/quilt-loom-cache", + "key": "${{ runner.os }}-gradle-${{ hashFiles('**/libs.versions.*', '**/*.gradle*', '**/gradle-wrapper.properties') }}", + "restore-keys": "${{ runner.os }}-gradle-" + }, + "name": "Cache", + "uses": "actions/cache@v4" + }, + { + "with": { + "gradle-home-cache-cleanup": true + }, + "name": "Setup Gradle", + "uses": "gradle/actions/setup-gradle@v3" + }, + { + "uses": "fregante/setup-git-user@v2" + }, + { + "name": "Tag Release", + "run": "./gradlew tagRelease", + "id": "tag_release", + "env": { + "BUILD_CACHE_PASSWORD": "${{ secrets.BUILD_CACHE_PASSWORD }}", + "BUILD_CACHE_USER": "${{ secrets.BUILD_CACHE_USER }}", + "BUILD_CACHE_URL": "${{ secrets.BUILD_CACHE_URL }}" + } + }, + { + "name": "Build", + "run": "./gradlew build", + "id": "build", + "env": { + "BUILD_CACHE_PASSWORD": "${{ secrets.BUILD_CACHE_PASSWORD }}", + "BUILD_CACHE_USER": "${{ secrets.BUILD_CACHE_USER }}", + "BUILD_CACHE_URL": "${{ secrets.BUILD_CACHE_URL }}" + } + }, + { + "run": "git push && git push --tags" + }, + { + "name": "Record Version", + "run": "./gradlew recordVersion", + "id": "record_version", + "env": { + "BUILD_CACHE_PASSWORD": "${{ secrets.BUILD_CACHE_PASSWORD }}", + "BUILD_CACHE_USER": "${{ secrets.BUILD_CACHE_USER }}", + "BUILD_CACHE_URL": "${{ secrets.BUILD_CACHE_URL }}" + } + }, + { + "name": "Capture Recorded Version", + "run": "echo version=$(cat build/recordVersion.txt) >> \"$GITHUB_OUTPUT\"", + "id": "record_version_capture_version" + } + ] + }, + "publish": { + "needs": [ + "build" + ], + "runs-on": "ubuntu-22.04", + "steps": [ + { + "name": "Setup Java", + "run": "echo \"JAVA_HOME=$JAVA_HOME_21_X64\" >> \"$GITHUB_ENV\"" + }, + { + "with": { + "fetch-depth": "0", + "ref": "refs/tags/${{needs.build.outputs.version}}", + "persist-credentials": "false" + }, + "name": "Checkout", + "uses": "actions/checkout@v4" + }, + { + "name": "Validate Gradle Wrapper", + "uses": "gradle/actions/wrapper-validation@v3" + }, + { + "with": { + "path": "**/.gradle/loom-cache\n**/.gradle/quilt-loom-cache", + "key": "${{ runner.os }}-gradle-${{ hashFiles('**/libs.versions.*', '**/*.gradle*', '**/gradle-wrapper.properties') }}", + "restore-keys": "${{ runner.os }}-gradle-" + }, + "name": "Cache", + "uses": "actions/cache/restore@v4" + }, + { + "with": { + "cache-read-only": true, + "gradle-home-cache-cleanup": true + }, + "name": "Setup Gradle", + "uses": "gradle/actions/setup-gradle@v3" + }, + { + "name": "Publish", + "run": "./gradlew publish", + "id": "publish", + "env": { + "BUILD_CACHE_PASSWORD": "${{ secrets.BUILD_CACHE_PASSWORD }}", + "BUILD_CACHE_USER": "${{ secrets.BUILD_CACHE_USER }}", + "BUILD_CACHE_URL": "${{ secrets.BUILD_CACHE_URL }}", + "RELEASE_MAVEN_PASSWORD": "${{ secrets.RELEASE_MAVEN_PASSWORD }}", + "RELEASE_MAVEN_USER": "github", + "RELEASE_MAVEN_URL": "https://maven.lukebemish.dev/releases/" + } + } + ] + } + }, + "name": "Release", + "concurrency": "ci-${{ github.ref }}", + "on": { + "workflow_dispatch": { + + } + } +} \ No newline at end of file diff --git a/build.gradle b/build.gradle index 5ca18c4..69f5eca 100644 --- a/build.gradle +++ b/build.gradle @@ -39,6 +39,8 @@ managedVersioning { } } } + + apply() } sourceSets { @@ -88,7 +90,7 @@ tasks.named('compileTestmodJava', JavaCompile) { ['processResources', 'processTestmodResources'].each { tasks.named(it, ProcessResources) { var replaceProperties = [ - version: project.version + version: project.version as String ] inputs.properties replaceProperties filesMatching(['META-INF/neoforge.mods.toml', 'fabric.mod.json']) {