diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9f78ba51..d6d5a824 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -37,9 +37,16 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: ./gradlew build clean --no-daemon + - name: Import GPG key + uses: crazy-max/ghaction-import-gpg@v5 + with: + gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} + passphrase: ${{ secrets.PASSPHRASE }} - name: Setup semantic-release run: npm install - name: Release env: GITHUB_TOKEN: ${{ secrets.REPOSITORY_PUSH_ACCESS }} + OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} + OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} run: npm exec semantic-release diff --git a/api/revanced-patcher.api b/api/revanced-patcher.api new file mode 100644 index 00000000..e69de29b diff --git a/build.gradle.kts b/build.gradle.kts index 491907e5..703a4bc1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,10 +1,83 @@ +import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension + plugins { - kotlin("jvm") version "1.9.0" apply false + kotlin("jvm") version "1.9.0" alias(libs.plugins.binary.compatibility.validator) + `maven-publish` + signing + java } -allprojects { +val githubUsername: String = providers.gradleProperty("gpr.user").orNull ?: System.getenv("GITHUB_ACTOR") +val githubPassword: String = providers.gradleProperty("gpr.key").orNull ?: System.getenv("GITHUB_TOKEN") + +val isDev = project.version.toString().contains("-dev") + +var publicationVersion = project.version.toString() +if (isDev) publicationVersion += "-SNAPSHOT" + +subprojects { apply(plugin = "maven-publish") + apply(plugin = "signing") + apply(plugin = "java") + apply(plugin ="kotlin") group = "app.revanced" -} \ No newline at end of file + + extra["version"] = version + + repositories { + mavenCentral() + mavenLocal() + google() + listOf("multidexlib2", "apktool").forEach { repo -> + maven { + url = uri("https://maven.pkg.github.com/revanced/$repo") + credentials { + username = githubUsername + password = githubPassword + } + } + } + } + + java { + withJavadocJar() + withSourcesJar() + } + + configure { + kotlin { jvmToolchain(11) } + } + + signing { + useGpgCmd() + sign(publishing.publications) + } + + publishing { + repositories { + mavenLocal() + maven { + url = if (isDev) + uri("https://s01.oss.sonatype.org/content/repositories/snapshots/") + else + uri("https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/") + + credentials { + username = (System.getenv("OSSRH_USERNAME") ?: "").toString() + password = (System.getenv("OSSRH_PASSWORD") ?: "").toString() + } + } + } + } + + tasks { + test { + useJUnitPlatform() + testLogging { + events("PASSED", "SKIPPED", "FAILED") + } + } + } +} diff --git a/gradle.properties b/gradle.properties index 5a782964..7b06f5e7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 16.0.2 +version = 16.0.2 \ No newline at end of file diff --git a/revanced-patch-annotation-processor/build.gradle.kts b/revanced-patch-annotation-processor/build.gradle.kts index 2c2f860a..66e7ec02 100644 --- a/revanced-patch-annotation-processor/build.gradle.kts +++ b/revanced-patch-annotation-processor/build.gradle.kts @@ -1,5 +1,4 @@ plugins { - kotlin("jvm") version "1.9.0" alias(libs.plugins.ksp) } @@ -12,38 +11,12 @@ dependencies { testImplementation(libs.kotlin.compile.testing) } -tasks { - test { - useJUnitPlatform() - testLogging { - events("PASSED", "SKIPPED", "FAILED") - } - } -} - -kotlin { jvmToolchain(11) } - -java { - withSourcesJar() -} - publishing { - repositories { - mavenLocal() - maven { - name = "GitHubPackages" - url = uri("https://maven.pkg.github.com/revanced/revanced-patcher") - credentials { - username = System.getenv("GITHUB_ACTOR") - password = System.getenv("GITHUB_TOKEN") - } - } - } publications { - create("gpr") { + create("revanced-patch-annotation-processor-publication") { from(components["java"]) - version = project.version.toString() + version = extra["version"].toString() pom { name = "ReVanced patch annotation processor" diff --git a/revanced-patcher/build.gradle.kts b/revanced-patcher/build.gradle.kts index 1a0713fa..bb2d887e 100644 --- a/revanced-patcher/build.gradle.kts +++ b/revanced-patcher/build.gradle.kts @@ -1,7 +1,3 @@ -plugins { - kotlin("jvm") version "1.9.0" -} - dependencies { implementation(libs.kotlinx.coroutines.core) implementation(libs.xpp3) @@ -17,41 +13,17 @@ dependencies { } tasks { - test { - useJUnitPlatform() - testLogging { - events("PASSED", "SKIPPED", "FAILED") - } - } - processResources { expand("projectVersion" to project.version) } } -kotlin { jvmToolchain(11) } - -java { - withSourcesJar() -} - publishing { - repositories { - mavenLocal() - maven { - name = "GitHubPackages" - url = uri("https://maven.pkg.github.com/revanced/revanced-patcher") - credentials { - username = System.getenv("GITHUB_ACTOR") - password = System.getenv("GITHUB_TOKEN") - } - } - } publications { - create("gpr") { + create("revanced-patcher-publication") { from(components["java"]) - version = project.version.toString() + version = extra["version"].toString() pom { name = "ReVanced Patcher" diff --git a/settings.gradle.kts b/settings.gradle.kts index 3761ccf9..23a5a770 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,22 +1 @@ -val githubUsername: String = providers.gradleProperty("gpr.user").orNull ?: System.getenv("GITHUB_ACTOR") -val githubPassword: String = providers.gradleProperty("gpr.key").orNull ?: System.getenv("GITHUB_TOKEN") - -dependencyResolutionManagement { - repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) - repositories { - mavenCentral() - google() - mavenLocal() - listOf("multidexlib2", "apktool").forEach { repo -> - maven { - url = uri("https://maven.pkg.github.com/revanced/$repo") - credentials { - username = githubUsername - password = githubPassword - } - } - } - } -} - include("revanced-patch-annotation-processor", "revanced-patcher") \ No newline at end of file