From 51d607a6bbba68091da5df6d421d34754dfe228e Mon Sep 17 00:00:00 2001 From: William Date: Wed, 18 Oct 2023 19:04:04 +0100 Subject: [PATCH] ci: add publishing to maven --- .github/workflows/java_ci.yml | 7 +++-- .github/workflows/release.yml | 7 +++-- build.gradle | 52 +++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 4 deletions(-) diff --git a/.github/workflows/java_ci.yml b/.github/workflows/java_ci.yml index eaefd0c..19d2234 100644 --- a/.github/workflows/java_ci.yml +++ b/.github/workflows/java_ci.yml @@ -23,9 +23,12 @@ jobs: java-version: '16' distribution: 'temurin' - name: Build with Gradle - uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 + uses: gradle/gradle-build-action@v2 with: - arguments: build + arguments: build test publish + env: + SNAPSHOTS_MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + SNAPSHOTS_MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} - name: Query Version run: | echo "::set-output name=VERSION_NAME::$(${{github.workspace}}/gradlew properties --no-daemon --console=plain -q | grep "^version:" | awk '{printf $2}')" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 92b35e9..004a5c4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,9 +19,12 @@ jobs: java-version: '16' distribution: 'temurin' - name: Build with Gradle - uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 + uses: gradle/gradle-build-action@v2 with: - arguments: build + arguments: build test publish + env: + RELEASES_MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + RELEASES_MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} - name: Query Version run: | echo "::set-output name=VERSION_NAME::$(${{github.workspace}}/gradlew properties --no-daemon --console=plain -q | grep "^version:" | awk '{printf $2}')" diff --git a/build.gradle b/build.gradle index e2c55c6..b1bc4c0 100644 --- a/build.gradle +++ b/build.gradle @@ -4,6 +4,7 @@ plugins { id 'com.github.johnrengelman.shadow' version '8.1.1' id 'org.cadixdev.licenser' version '0.6.1' id 'org.ajoberstar.grgit' version '5.2.0' + id 'maven-publish' id 'java' } @@ -66,6 +67,15 @@ logger.lifecycle("Building Velocitab ${version} by William278") version rootProject.version archivesBaseName = "${rootProject.name}" +compileJava.options.encoding = 'UTF-8' +javadoc.options.encoding = 'UTF-8' +javadoc.options.addStringOption('Xdoclint:none', '-quiet') + +java { + withSourcesJar() + withJavadocJar() +} + shadowJar { relocate 'org.apache.commons.text', 'net.william278.velocitab.libraries.commons.text' relocate 'org.apache.commons.lang3', 'net.william278.velocitab.libraries.commons.lang3' @@ -89,6 +99,48 @@ shadowJar { jar.dependsOn shadowJar clean.delete "$rootDir/target" +publishing { + repositories { + if (System.getenv("RELEASES_MAVEN_USERNAME") != null) { + maven { + name = "william278-releases" + url = "https://repo.william278.net/releases" + credentials { + username = System.getenv("RELEASES_MAVEN_USERNAME") + password = System.getenv("RELEASES_MAVEN_PASSWORD") + } + authentication { + basic(BasicAuthentication) + } + } + } + if (System.getenv("SNAPSHOTS_MAVEN_USERNAME") != null) { + maven { + name = "william278-snapshots" + url = "https://repo.william278.net/snapshots" + credentials { + username = System.getenv("SNAPSHOTS_MAVEN_USERNAME") + password = System.getenv("SNAPSHOTS_MAVEN_PASSWORD") + } + authentication { + basic(BasicAuthentication) + } + } + } + } + + publications { + mavenJava(MavenPublication) { + groupId = 'net.william278' + artifactId = 'velocitab' + version = "$rootProject.version" + artifact shadowJar + artifact javadocJar + artifact sourcesJar + } + } +} + @SuppressWarnings('GrMethodMayBeStatic') def versionMetadata() { // Get if there is a tag for this commit