Skip to content

Commit

Permalink
feat: release gradle plugin (#975)
Browse files Browse the repository at this point in the history
* feat: release gradle plugin

* change comment

* specify version in build.gradle

* setup maven-publish plugin

* change working dir for gradle plugin

* change gradle command

* export gpg_key_id
  • Loading branch information
JoeWang1127 committed Jan 16, 2024
1 parent 6b7c42a commit f1acae4
Show file tree
Hide file tree
Showing 8 changed files with 64 additions and 12 deletions.
13 changes: 13 additions & 0 deletions .kokoro/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ setup_environment_secrets() {
mkdir "${GPG_HOMEDIR}"
mv "${KOKORO_KEYSTORE_DIR}"/70247_maven-gpg-pubkeyring "${GPG_HOMEDIR}"/pubring.gpg
mv "${KOKORO_KEYSTORE_DIR}"/70247_maven-gpg-keyring "${GPG_HOMEDIR}"/secring.gpg
GPG_KEY_ID=$(echo -n "$(gpg --with-colons "${GPG_HOMEDIR}"/pubring.gpg | awk -F':' '/pub/{ print $5 }')")
export GPG_KEY_ID
SONATYPE_USERNAME=$(cat "${KOKORO_KEYSTORE_DIR}"/70247_sonatype-credentials | cut -f1 -d'|')
export SONATYPE_USERNAME
SONATYPE_PASSWORD=$(cat "${KOKORO_KEYSTORE_DIR}"/70247_sonatype-credentials | cut -f2 -d'|')
Expand Down Expand Up @@ -52,3 +54,14 @@ create_settings_xml_file() {
</servers>
</settings>" > "$1"
}

create_gradle_properties_file() {
echo "
signing.gnupg.executable=gpg
signing.gnupg.homeDir=${GPG_HOMEDIR}
signing.gnupg.keyName=${GPG_KEY_ID}
signing.gnupg.passphrase=${GPG_PASSPHRASE}
ossrhUsername=${SONATYPE_USERNAME}
ossrhPassword=${SONATYPE_PASSWORD}" > $1
}
1 change: 0 additions & 1 deletion .kokoro/release_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,3 @@ mvn -Prelease -B -U verify -Dtest=!FilePermissionsTest -Dorg.slf4j.simpleLogger.
ARTIFACT_ID=$(mvn -B help:evaluate -Dexpression=project.artifactId 2>/dev/null | grep -v "^\[")
PROJECT_VERSION=$(mvn -B help:evaluate -Dexpression=project.version 2>/dev/null| grep -v "^\[")
cp pom.xml target/${ARTIFACT_ID}-${PROJECT_VERSION}.pom

13 changes: 12 additions & 1 deletion .kokoro/stage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,15 @@ else
echo "AUTORELEASE_PR environment variable is not set (probably testing something). Not promoting the staged repository."
fi

popd
# release app-gradle-plugin
GRADLE_SETTING_FILE=$(realpath .)/app-gradle-plugin/gradle.properties
create_gradle_properties_file "${GRADLE_SETTING_FILE}"
pushd app-gradle-plugin
if [[ -n "${AUTORELEASE_PR}" ]]; then
./gradlew publishMavenJavaPublicationToMavenRepository
echo "Successfully finished './gradlew publishMavenJavaPublicationToMavenRepository'"
else
./gradlew publishMavenJavaPublicationToMavenLocal
fi
popd # app-gradle-plugin
popd # repository root
37 changes: 33 additions & 4 deletions app-gradle-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import net.researchgate.release.GitAdapter.GitConfig
import java.util.Date
import org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL
import java.beans.EventHandler.create

/*
* Copyright 2022 Google LLC. All Rights Reserved.
Expand All @@ -19,6 +20,9 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL
*
*/

group = "com.google.cloud.tools"
version = "2.5.2-SNAPSHOT" // {x-version-update:app-gradle-plugin:current}

plugins {
id("java")
id("maven")
Expand All @@ -27,6 +31,8 @@ plugins {
id("com.github.sherter.google-java-format") version "0.9"
id("checkstyle")
id("jacoco")
id("maven-publish")
id("signing")
}

repositories {
Expand All @@ -39,20 +45,17 @@ java {
targetCompatibility = JavaVersion.VERSION_1_8
}

group = "com.google.cloud.tools"

dependencies {
implementation(localGroovy())
implementation(gradleApi())
api("com.google.cloud.tools:appengine-plugins-core:0.10.1") // {x-version-update:appengine-plugins-core:current}
api("com.google.cloud.tools:appengine-plugins-core:0.10.2-SNAPSHOT") // {x-version-update:appengine-plugins-core:current}

testImplementation("commons-io:commons-io:2.11.0")
testImplementation("junit:junit:4.13.2")
testImplementation("org.hamcrest:hamcrest-library:2.2")
testImplementation("org.mockito:mockito-core:4.11.0")
}


tasks.wrapper {
gradleVersion = "6.9"
}
Expand Down Expand Up @@ -194,6 +197,32 @@ release {
requireBranch = """^release-v\d+.*$""" //regex
}
}

publishing {
publications {
create<MavenPublication>("mavenJava") {
artifactId = "appengine-gradle-plugin"
from(components["java"])
}
}
repositories {
maven {
url = uri("https://google.oss.sonatype.org/service/local/staging/deploy/maven2/")
credentials {
username = findProperty("ossrhUsername").toString()
password = findProperty("ossrhPassword").toString()
}
}
}
}

signing {
setRequired({ gradle.taskGraph.hasTask(":${name}:publishMavenJavaPublicationToMavenRepository") })
if (project.hasProperty("signing.gnupg.executable")) {
useGpgCmd()
}
sign(publishing.publications["mavenJava"])
}
/* RELEASING */

/* FORMATTING */
Expand Down
1 change: 0 additions & 1 deletion app-gradle-plugin/gradle.properties

This file was deleted.

4 changes: 2 additions & 2 deletions app-maven-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.5.1</version><!-- {x-version-update:app-maven-plugin:current} -->
<version>2.5.2-SNAPSHOT</version><!-- {x-version-update:app-maven-plugin:current} -->
<packaging>maven-plugin</packaging>

<name>App Engine Maven Plugin</name>
Expand Down Expand Up @@ -92,7 +92,7 @@
<dependency>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-plugins-core</artifactId>
<version>0.10.1</version><!-- {x-version-update:appengine-plugins-core:current} -->
<version>0.10.2-SNAPSHOT</version><!-- {x-version-update:appengine-plugins-core:current} -->
</dependency>

<dependency>
Expand Down
2 changes: 1 addition & 1 deletion appengine-plugins-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-plugins-core</artifactId>
<version>0.10.1</version><!-- {x-version-update:appengine-plugins-core:current} -->
<version>0.10.2-SNAPSHOT</version><!-- {x-version-update:appengine-plugins-core:current} -->

<name>App Engine Plugins Core Library</name>
<description>
Expand Down
5 changes: 3 additions & 2 deletions versions.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Format:
# module:released-version:current-version

appengine-plugins-core:0.10.0:0.10.1
app-maven-plugin:2.5.0:2.5.1
appengine-plugins-core:0.10.1:0.10.2-SNAPSHOT
app-maven-plugin:2.5.1:2.5.2-SNAPSHOT
app-gradle-plugin:2.5.0:2.5.2-SNAPSHOT

0 comments on commit f1acae4

Please sign in to comment.