From b2e8a51923892e661e730b55da42d78411b35a29 Mon Sep 17 00:00:00 2001 From: PrexorJustin Date: Sat, 1 Feb 2025 23:57:51 +0100 Subject: [PATCH 01/10] feat: added channel based publishing --- .github/workflows/release.yml | 138 ++++++++++++++++++++++++++++++++ build.gradle.kts | 70 +++++++++++----- controller-api/build.gradle.kts | 2 + gradle.properties | 10 +++ 4 files changed, 201 insertions(+), 19 deletions(-) create mode 100644 .github/workflows/release.yml create mode 100644 gradle.properties diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..4bed238 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,138 @@ +name: Build and Deploy + +on: + push: + branches: + - develop # For snapshot builds + - main # For release builds + paths-ignore: + - '**.md' + - '.gitignore' + - 'LICENSE' + workflow_dispatch: + inputs: + channel: + description: 'Release Channel' + required: true + default: 'snapshot' + type: choice + options: + - snapshot + - rc + - release + version: + description: 'Version (only for release channel)' + required: false + type: string + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Checkout Code + uses: actions/checkout@v4 + with: + fetch-depth: 1 + + - name: Set up JDK 21 + uses: actions/setup-java@v4.7.0 + with: + distribution: 'temurin' + java-version: '21' + cache: 'gradle' + + - name: Set up Gradle + uses: gradle/actions/setup-gradle@v4 + with: + build-scan-publish: true + build-scan-terms-of-use-url: 'https://gradle.com/help/legal-terms-of-use' + build-scan-terms-of-use-agree: 'yes' + + - name: Make Gradle Wrapper Executable + run: chmod +x ./gradlew + + - name: Determine Version and Channel + id: version + run: | + # If triggered manually, use workflow input; otherwise, decide based on branch name + if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then + CHANNEL="${{ github.event.inputs.channel }}" + if [[ "$CHANNEL" == "release" && -n "${{ github.event.inputs.version }}" ]]; then + VERSION="${{ github.event.inputs.version }}" + fi + elif [[ "${{ github.ref }}" == "refs/heads/main" ]]; then + CHANNEL="release" + else + CHANNEL="snapshot" + fi + + # Get the commit hash (short version) + COMMIT_HASH=$(git rev-parse --short HEAD) + echo "COMMIT_HASH=$COMMIT_HASH" >> $GITHUB_ENV + + # Read the base version from gradle.properties + BASE_VERSION=$(grep '^baseVersion=' gradle.properties | cut -d'=' -f2) + if [ "$CHANNEL" == "release" ]; then + FINAL_VERSION="$BASE_VERSION" + elif [ "$CHANNEL" == "rc" ]; then + FINAL_VERSION="${BASE_VERSION}-rc.${COMMIT_HASH}" + else + FINAL_VERSION="${BASE_VERSION}-SNAPSHOT.${COMMIT_HASH}" + fi + echo "Determined version: $FINAL_VERSION" + + # Set outputs for later steps + echo "CHANNEL=$CHANNEL" >> $GITHUB_OUTPUT + echo "VERSION=$FINAL_VERSION" >> $GITHUB_OUTPUT + + - name: Build with Gradle + run: | + ./gradlew --parallel --build-cache clean build shadowJar \ + -PreleaseType=${{ steps.version.outputs.CHANNEL }} \ + -Pversion=${{ steps.version.outputs.VERSION }} + env: + COMMIT_HASH: ${{ env.COMMIT_HASH }} + + - name: Publish to SimpleCloud Repository + run: | + ./gradlew --parallel --build-cache publishMavenJavaPublicationToSimplecloudRepository \ + -PreleaseType=${{ steps.version.outputs.CHANNEL }} \ + -Pversion=${{ steps.version.outputs.VERSION }} + env: + COMMIT_HASH: ${{ env.COMMIT_HASH }} + SIMPLECLOUD_USERNAME: ${{ secrets.SIMPLECLOUD_USERNAME }} + SIMPLECLOUD_PASSWORD: ${{ secrets.SIMPLECLOUD_PASSWORD }} + + - name: Prepare Artifacts + run: | + mkdir -p release-artifacts + find . -type f -name "*.jar" -path "*/build/libs/*.jar" -not -path "./build/libs/*" \ + -not -name "*${{ steps.version.outputs.VERSION }}*" \ + -exec cp {} release-artifacts/ \; + + - name: Update Channel Tag + run: | + git config user.name "GitHub Actions" + git config user.email "actions@github.com" + # Delete any existing channel tag locally and remotely + git tag -d ${{ steps.version.outputs.CHANNEL }} || true + git push origin :refs/tags/${{ steps.version.outputs.CHANNEL }} || true + # Create a new tag at the current commit + git tag -a ${{ steps.version.outputs.CHANNEL }} -m "Latest ${{ steps.version.outputs.CHANNEL }} build (v${{ steps.version.outputs.VERSION }})" + git push origin ${{ steps.version.outputs.CHANNEL }} --force + + - name: Create Channel Release + uses: softprops/action-gh-release@v2 + with: + name: "${{ steps.version.outputs.CHANNEL }} channel" + tag_name: ${{ steps.version.outputs.CHANNEL }} + body: | + Latest build in the ${{ steps.version.outputs.CHANNEL }} channel. + Version: ${{ steps.version.outputs.VERSION }} + Commit: ${{ github.sha }} + prerelease: ${{ steps.version.outputs.CHANNEL != 'release' }} + files: release-artifacts/*.jar + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 486ecae..98e8922 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,4 +1,5 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar +import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { alias(libs.plugins.kotlin) @@ -7,13 +8,9 @@ plugins { `maven-publish` } -val baseVersion = "0.0.30" -val commitHash = System.getenv("COMMIT_HASH") -val snapshotversion = "${baseVersion}-dev.$commitHash" - allprojects { group = "app.simplecloud.controller" - version = if (commitHash != null) snapshotversion else baseVersion + version = determineVersion() repositories { mavenCentral() @@ -37,11 +34,15 @@ subprojects { repositories { maven { name = "simplecloud" - url = uri("https://repo.simplecloud.app/snapshots/") + url = uri(determineRepositoryUrl()) + credentials { - username = System.getenv("SIMPLECLOUD_USERNAME")?: (project.findProperty("simplecloudUsername") as? String) - password = System.getenv("SIMPLECLOUD_PASSWORD")?: (project.findProperty("simplecloudPassword") as? String) + username = System.getenv("SIMPLECLOUD_USERNAME") + ?: (project.findProperty("simplecloudUsername") as? String) + password = System.getenv("SIMPLECLOUD_PASSWORD") + ?: (project.findProperty("simplecloudPassword") as? String) } + authentication { create("basic") } @@ -49,7 +50,6 @@ subprojects { } publications { - // Not publish controller-runtime if (project.name == "controller-runtime") { return@publications } @@ -68,18 +68,10 @@ subprojects { jvmToolchain(21) compilerOptions { apiVersion.set(org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_2_0) + jvmTarget.set(JvmTarget.JVM_21) } } - tasks.named("shadowJar", ShadowJar::class) { - mergeServiceFiles() - archiveFileName.set("${project.name}.jar") - } - - tasks.test { - useJUnitPlatform() - } - centralPortal { name = project.name @@ -114,12 +106,52 @@ subprojects { } } + tasks { + withType { + options.isFork = true + options.isIncremental = true + } + + named("shadowJar", ShadowJar::class) { + mergeServiceFiles() + archiveFileName.set("${project.name}.jar") + } + + test { + useJUnitPlatform() + } + } + + signing { - if (commitHash != null) { + val releaseType = project.findProperty("releaseType")?.toString() ?: "snapshot" + if (releaseType != "release") { return@signing } sign(publishing.publications) useGpgCmd() } +} + +fun determineVersion(): String { + val baseVersion = project.findProperty("baseVersion")?.toString() ?: "0.0.0" + val releaseType = project.findProperty("releaseType")?.toString() ?: "snapshot" + val commitHash = System.getenv("COMMIT_HASH") ?: "local" + + return when (releaseType) { + "release" -> baseVersion + "rc" -> "$baseVersion-rc.$commitHash" + "snapshot" -> "$baseVersion-SNAPSHOT.$commitHash" + else -> "$baseVersion-SNAPSHOT.local" + } +} + +fun determineRepositoryUrl(): String { + val baseUrl = "https://repo.simplecloud.app" + return when (project.findProperty("releaseType")?.toString() ?: "snapshot") { + "release" -> "$baseUrl/releases" + "rc" -> "$baseUrl/rc" + else -> "$baseUrl/snapshots" + } } \ No newline at end of file diff --git a/controller-api/build.gradle.kts b/controller-api/build.gradle.kts index ecc433b..eaa4321 100644 --- a/controller-api/build.gradle.kts +++ b/controller-api/build.gradle.kts @@ -6,6 +6,7 @@ dependencies { tasks.named("shadowJar", ShadowJar::class) { mergeServiceFiles() + relocate("com", "app.simplecloud.external.com") relocate("google", "app.simplecloud.external.google") relocate("io", "app.simplecloud.external.io") @@ -13,5 +14,6 @@ tasks.named("shadowJar", ShadowJar::class) { relocate("javax", "app.simplecloud.external.javax") relocate("android", "app.simplecloud.external.android") relocate("build.buf.gen.simplecloud", "app.simplecloud.buf") + archiveFileName.set("${project.name}.jar") } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..a434d49 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,10 @@ +baseVersion=0.0.30 +org.gradle.parallel=true +org.gradle.caching=true +org.gradle.configureondemand=true +org.gradle.daemon=true +org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError +kotlin.incremental=true +kotlin.incremental.js=true +kotlin.caching.enabled=true +kotlin.parallel.tasks.in.project=true \ No newline at end of file From 79b517f13a65bc12a7a379e51f9e747ea7b7697a Mon Sep 17 00:00:00 2001 From: PrexorJustin Date: Sun, 2 Feb 2025 01:28:54 +0100 Subject: [PATCH 02/10] fix: remove -all suffix --- build.gradle.kts | 1 + controller-api/build.gradle.kts | 1 + 2 files changed, 2 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index 98e8922..d49c636 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -115,6 +115,7 @@ subprojects { named("shadowJar", ShadowJar::class) { mergeServiceFiles() archiveFileName.set("${project.name}.jar") + archiveClassifier.set("") } test { diff --git a/controller-api/build.gradle.kts b/controller-api/build.gradle.kts index eaa4321..bc8f187 100644 --- a/controller-api/build.gradle.kts +++ b/controller-api/build.gradle.kts @@ -16,4 +16,5 @@ tasks.named("shadowJar", ShadowJar::class) { relocate("build.buf.gen.simplecloud", "app.simplecloud.buf") archiveFileName.set("${project.name}.jar") + archiveClassifier.set("") } \ No newline at end of file From 5a8dda1142d230869c0d8611059bccadb2bc0cdb Mon Sep 17 00:00:00 2001 From: PrexorJustin Date: Sun, 2 Feb 2025 01:35:26 +0100 Subject: [PATCH 03/10] fix: fix build.gradle.kts --- build.gradle.kts | 83 +++++++++++++++++++++++------------------------- 1 file changed, 40 insertions(+), 43 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index d49c636..abffff4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,6 +8,28 @@ plugins { `maven-publish` } +fun determineVersion(): String { + val baseVersion = project.findProperty("baseVersion")?.toString() ?: "0.0.0" + val releaseType = project.findProperty("releaseType")?.toString() ?: "snapshot" + val commitHash = System.getenv("COMMIT_HASH") ?: "local" + + return when (releaseType) { + "release" -> baseVersion + "rc" -> "$baseVersion-rc.$commitHash" + "snapshot" -> "$baseVersion-SNAPSHOT.$commitHash" + else -> "$baseVersion-SNAPSHOT.local" + } +} + +fun determineRepositoryUrl(): String { + val baseUrl = "https://repo.simplecloud.app/" + return when (project.findProperty("releaseType")?.toString() ?: "snapshot") { + "release" -> "$baseUrl/releases" + "rc" -> "$baseUrl/rc" + else -> "$baseUrl/snapshots" + } +} + allprojects { group = "app.simplecloud.controller" version = determineVersion() @@ -17,6 +39,11 @@ allprojects { maven("https://buf.build/gen/maven") maven("https://repo.simplecloud.app/snapshots") } + + tasks.withType { + options.isFork = true + options.isIncremental = true + } } subprojects { @@ -35,14 +62,12 @@ subprojects { maven { name = "simplecloud" url = uri(determineRepositoryUrl()) - credentials { username = System.getenv("SIMPLECLOUD_USERNAME") ?: (project.findProperty("simplecloudUsername") as? String) password = System.getenv("SIMPLECLOUD_PASSWORD") ?: (project.findProperty("simplecloudPassword") as? String) } - authentication { create("basic") } @@ -55,7 +80,7 @@ subprojects { } create("mavenJava") { - from(components["java"]) + artifact(tasks.named("shadowJar")) } } } @@ -66,12 +91,24 @@ subprojects { kotlin { jvmToolchain(21) + compilerOptions { + languageVersion.set(org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_2_0) apiVersion.set(org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_2_0) jvmTarget.set(JvmTarget.JVM_21) } } + tasks.named("shadowJar", ShadowJar::class) { + mergeServiceFiles() + archiveFileName.set("${project.name}.jar") + archiveClassifier.set("") + } + + tasks.test { + useJUnitPlatform() + } + centralPortal { name = project.name @@ -106,24 +143,6 @@ subprojects { } } - tasks { - withType { - options.isFork = true - options.isIncremental = true - } - - named("shadowJar", ShadowJar::class) { - mergeServiceFiles() - archiveFileName.set("${project.name}.jar") - archiveClassifier.set("") - } - - test { - useJUnitPlatform() - } - } - - signing { val releaseType = project.findProperty("releaseType")?.toString() ?: "snapshot" if (releaseType != "release") { @@ -134,25 +153,3 @@ subprojects { useGpgCmd() } } - -fun determineVersion(): String { - val baseVersion = project.findProperty("baseVersion")?.toString() ?: "0.0.0" - val releaseType = project.findProperty("releaseType")?.toString() ?: "snapshot" - val commitHash = System.getenv("COMMIT_HASH") ?: "local" - - return when (releaseType) { - "release" -> baseVersion - "rc" -> "$baseVersion-rc.$commitHash" - "snapshot" -> "$baseVersion-SNAPSHOT.$commitHash" - else -> "$baseVersion-SNAPSHOT.local" - } -} - -fun determineRepositoryUrl(): String { - val baseUrl = "https://repo.simplecloud.app" - return when (project.findProperty("releaseType")?.toString() ?: "snapshot") { - "release" -> "$baseUrl/releases" - "rc" -> "$baseUrl/rc" - else -> "$baseUrl/snapshots" - } -} \ No newline at end of file From b8c9b4e7d6cebb9b3f3fb31b5dd800c1c6e82d10 Mon Sep 17 00:00:00 2001 From: PrexorJustin Date: Sun, 2 Feb 2025 14:33:58 +0100 Subject: [PATCH 04/10] fix: fix signing releases --- .github/workflows/release.yml | 22 +++++++++++---- build.gradle.kts | 53 ++++++++++++++++++++--------------- 2 files changed, 47 insertions(+), 28 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4bed238..15e7cd3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,8 +3,8 @@ name: Build and Deploy on: push: branches: - - develop # For snapshot builds - - main # For release builds + - develop + - main paths-ignore: - '**.md' - '.gitignore' @@ -97,13 +97,25 @@ jobs: - name: Publish to SimpleCloud Repository run: | - ./gradlew --parallel --build-cache publishMavenJavaPublicationToSimplecloudRepository \ - -PreleaseType=${{ steps.version.outputs.CHANNEL }} \ - -Pversion=${{ steps.version.outputs.VERSION }} + if [[ "${{ steps.version.outputs.CHANNEL }}" == "release" ]]; then + export GPG_TTY=$(tty) + export GRADLE_OPTS="-Dorg.gradle.daemon=false" + ./gradlew --no-daemon --parallel --build-cache publishMavenJavaPublicationToSimplecloudRepository \ + -PreleaseType=${{ steps.version.outputs.CHANNEL }} \ + -Pversion=${{ steps.version.outputs.VERSION }} \ + -Psigning.gnupg.keyName="${{ secrets.GPG_KEY_ID }}" \ + -Psigning.gnupg.passphrase="${{ secrets.GPG_PASSPHRASE }}" + else + ./gradlew --parallel --build-cache publishMavenJavaPublicationToSimplecloudRepository \ + -PreleaseType=${{ steps.version.outputs.CHANNEL }} \ + -Pversion=${{ steps.version.outputs.VERSION }} + fi env: COMMIT_HASH: ${{ env.COMMIT_HASH }} SIMPLECLOUD_USERNAME: ${{ secrets.SIMPLECLOUD_USERNAME }} SIMPLECLOUD_PASSWORD: ${{ secrets.SIMPLECLOUD_PASSWORD }} + ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_PRIVATE_KEY }} + ORG_GRADLE_PROJECT_signingPassphrase: ${{ secrets.GPG_PASSPHRASE }} - name: Prepare Artifacts run: | diff --git a/build.gradle.kts b/build.gradle.kts index abffff4..1e2aa9d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,28 +8,6 @@ plugins { `maven-publish` } -fun determineVersion(): String { - val baseVersion = project.findProperty("baseVersion")?.toString() ?: "0.0.0" - val releaseType = project.findProperty("releaseType")?.toString() ?: "snapshot" - val commitHash = System.getenv("COMMIT_HASH") ?: "local" - - return when (releaseType) { - "release" -> baseVersion - "rc" -> "$baseVersion-rc.$commitHash" - "snapshot" -> "$baseVersion-SNAPSHOT.$commitHash" - else -> "$baseVersion-SNAPSHOT.local" - } -} - -fun determineRepositoryUrl(): String { - val baseUrl = "https://repo.simplecloud.app/" - return when (project.findProperty("releaseType")?.toString() ?: "snapshot") { - "release" -> "$baseUrl/releases" - "rc" -> "$baseUrl/rc" - else -> "$baseUrl/snapshots" - } -} - allprojects { group = "app.simplecloud.controller" version = determineVersion() @@ -149,7 +127,36 @@ subprojects { return@signing } + if (hasProperty("signingPassphrase")) { + val signingKey: String? by project + val signingPassphrase: String? by project + useInMemoryPgpKeys(signingKey, signingPassphrase) + } else { + useGpgCmd() + } + sign(publishing.publications) - useGpgCmd() } } + +fun determineVersion(): String { + val baseVersion = project.findProperty("baseVersion")?.toString() ?: "0.0.0" + val releaseType = project.findProperty("releaseType")?.toString() ?: "snapshot" + val commitHash = System.getenv("COMMIT_HASH") ?: "local" + + return when (releaseType) { + "release" -> baseVersion + "rc" -> "$baseVersion-rc.$commitHash" + "snapshot" -> "$baseVersion-SNAPSHOT.$commitHash" + else -> "$baseVersion-SNAPSHOT.local" + } +} + +fun determineRepositoryUrl(): String { + val baseUrl = "https://repo.simplecloud.app/" + return when (project.findProperty("releaseType")?.toString() ?: "snapshot") { + "release" -> "$baseUrl/releases" + "rc" -> "$baseUrl/rc" + else -> "$baseUrl/snapshots" + } +} \ No newline at end of file From f6b92bd31873560414d4e805b6ae40297741251a Mon Sep 17 00:00:00 2001 From: PrexorJustin Date: Tue, 4 Feb 2025 06:58:50 +0100 Subject: [PATCH 05/10] fix: release fat jar alongside normal jar --- build.gradle.kts | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 1e2aa9d..e3d252c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,11 +17,6 @@ allprojects { maven("https://buf.build/gen/maven") maven("https://repo.simplecloud.app/snapshots") } - - tasks.withType { - options.isFork = true - options.isIncremental = true - } } subprojects { @@ -58,7 +53,7 @@ subprojects { } create("mavenJava") { - artifact(tasks.named("shadowJar")) + from(components["java"]) } } } @@ -77,14 +72,21 @@ subprojects { } } - tasks.named("shadowJar", ShadowJar::class) { - mergeServiceFiles() - archiveFileName.set("${project.name}.jar") - archiveClassifier.set("") - } + tasks { + withType { + options.isFork = true + options.isIncremental = true + } - tasks.test { - useJUnitPlatform() + named("shadowJar", ShadowJar::class) { + mergeServiceFiles() + + archiveFileName.set("${project.name}.jar") + } + + test { + useJUnitPlatform() + } } centralPortal { From 4eec22a8e22b06fd08c85b0cb23eba32096c7985 Mon Sep 17 00:00:00 2001 From: PrexorJustin Date: Tue, 4 Feb 2025 07:02:22 +0100 Subject: [PATCH 06/10] fix: duplicate archiveClassifier --- controller-api/build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/controller-api/build.gradle.kts b/controller-api/build.gradle.kts index bc8f187..eaa4321 100644 --- a/controller-api/build.gradle.kts +++ b/controller-api/build.gradle.kts @@ -16,5 +16,4 @@ tasks.named("shadowJar", ShadowJar::class) { relocate("build.buf.gen.simplecloud", "app.simplecloud.buf") archiveFileName.set("${project.name}.jar") - archiveClassifier.set("") } \ No newline at end of file From 5e3bb897e32791c2e441f0ffa6caea26937fcdd5 Mon Sep 17 00:00:00 2001 From: PrexorJustin Date: Tue, 4 Feb 2025 07:17:05 +0100 Subject: [PATCH 07/10] fix: release runtime to reposilite for autoupdater --- build.gradle.kts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index e3d252c..a534b91 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -48,10 +48,6 @@ subprojects { } publications { - if (project.name == "controller-runtime") { - return@publications - } - create("mavenJava") { from(components["java"]) } From 9605e4c6423c514d9c5092406816c183a3d03e0d Mon Sep 17 00:00:00 2001 From: PrexorJustin Date: Tue, 4 Feb 2025 07:26:38 +0100 Subject: [PATCH 08/10] fix: build.gradle reformatting --- build.gradle.kts | 48 ++++++++++++++--------------- controller-runtime/build.gradle.kts | 4 ++- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index a534b91..48fea16 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -30,30 +30,6 @@ subprojects { implementation(rootProject.libs.kotlin.jvm) } - publishing { - repositories { - maven { - name = "simplecloud" - url = uri(determineRepositoryUrl()) - credentials { - username = System.getenv("SIMPLECLOUD_USERNAME") - ?: (project.findProperty("simplecloudUsername") as? String) - password = System.getenv("SIMPLECLOUD_PASSWORD") - ?: (project.findProperty("simplecloudPassword") as? String) - } - authentication { - create("basic") - } - } - } - - publications { - create("mavenJava") { - from(components["java"]) - } - } - } - java { toolchain.languageVersion.set(JavaLanguageVersion.of(21)) } @@ -119,6 +95,30 @@ subprojects { } } + publishing { + repositories { + maven { + name = "simplecloud" + url = uri(determineRepositoryUrl()) + credentials { + username = System.getenv("SIMPLECLOUD_USERNAME") + ?: (project.findProperty("simplecloudUsername") as? String) + password = System.getenv("SIMPLECLOUD_PASSWORD") + ?: (project.findProperty("simplecloudPassword") as? String) + } + authentication { + create("basic") + } + } + } + + publications { + create("mavenJava") { + from(components["java"]) + } + } + } + signing { val releaseType = project.findProperty("releaseType")?.toString() ?: "snapshot" if (releaseType != "release") { diff --git a/controller-runtime/build.gradle.kts b/controller-runtime/build.gradle.kts index d44a354..e23d62d 100644 --- a/controller-runtime/build.gradle.kts +++ b/controller-runtime/build.gradle.kts @@ -8,13 +8,15 @@ dependencies { api(project(":controller-shared")) api(libs.bundles.jooq) api(libs.sqlite.jdbc) - jooqCodegen(libs.jooq.meta.extensions) + implementation(libs.simplecloud.metrics) implementation(libs.bundles.log4j) implementation(libs.clikt) implementation(libs.spring.crypto) implementation(libs.spotify.completablefutures) implementation(libs.envoy.controlplane) + + jooqCodegen(libs.jooq.meta.extensions) } application { From eb9ad34fd941b083af04e0ac9b3c2604d68a1493 Mon Sep 17 00:00:00 2001 From: PrexorJustin Date: Tue, 4 Feb 2025 07:50:51 +0100 Subject: [PATCH 09/10] fix: updated workflow --- .github/workflows/release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 15e7cd3..425e7d2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,8 +3,8 @@ name: Build and Deploy on: push: branches: - - develop - - main + - develop # For snapshot builds + - main # For release builds paths-ignore: - '**.md' - '.gitignore' @@ -103,7 +103,7 @@ jobs: ./gradlew --no-daemon --parallel --build-cache publishMavenJavaPublicationToSimplecloudRepository \ -PreleaseType=${{ steps.version.outputs.CHANNEL }} \ -Pversion=${{ steps.version.outputs.VERSION }} \ - -Psigning.gnupg.keyName="${{ secrets.GPG_KEY_ID }}" \ + -Psigning.gnupg.keyName="${{ secrets.GPG_PRIVATE_KEY }}" \ -Psigning.gnupg.passphrase="${{ secrets.GPG_PASSPHRASE }}" else ./gradlew --parallel --build-cache publishMavenJavaPublicationToSimplecloudRepository \ From d338e50bca4b7f8771f6b2c45a4089ed0ad3b920 Mon Sep 17 00:00:00 2001 From: PrexorJustin Date: Tue, 4 Feb 2025 07:54:34 +0100 Subject: [PATCH 10/10] fix: update links --- build.gradle.kts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 48fea16..a02c384 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -70,7 +70,7 @@ subprojects { pom { name.set("SimpleCloud controller") description.set("The heart of SimpleCloud v3") - url.set("https://github.com/theSimpleCloud/simplecloud-controller") + url.set("https://github.com/simplecloudapp/simplecloud-controller") developers { developer { @@ -89,8 +89,8 @@ subprojects { } } scm { - url.set("https://github.com/theSimpleCloud/simplecloud-controller.git") - connection.set("git:git@github.com:theSimpleCloud/simplecloud-controller.git") + url.set("https://github.com/simplecloudapp/simplecloud-controller.git") + connection.set("git:git@github.com:simplecloudapp/simplecloud-controller.git") } } }