Skip to content

Commit ef617fb

Browse files
committed
Setup gradle plugin publish
1 parent 3c3442b commit ef617fb

8 files changed

Lines changed: 66 additions & 25 deletions

File tree

.github/workflows/ci.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ jobs:
5353
- name: Test Maven 3.2.5 compatibility
5454
working-directory: build-tool-plugins/maven-plugin/it
5555
run: ./mvnw stype:gen -e -B
56-
- name: Build Gradle plugin
56+
- name: Build and Test Gradle plugin
5757
working-directory: build-tool-plugins/gradle-plugin
58-
run: ./gradlew publishToMavenLocal --stacktrace
58+
run: ./gradlew test publishToMavenLocal --stacktrace
5959
- name: Test Gradle plugin
6060
working-directory: build-tool-plugins/gradle-plugin/it
6161
run: ./gradlew stypeGen test --stacktrace

.github/workflows/release.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ jobs:
3434
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
3535
SONATYPE_CENTRAL_USER: ${{ secrets.SONATYPE_CENTRAL_USER }}
3636
SONATYPE_CENTRAL_PASS: ${{ secrets.SONATYPE_CENTRAL_PASS }}
37+
GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }}
38+
GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }}
3739
run: |
3840
. ./misc/release.sh
3941
echo "new_version=$(cat NEW_VERSION.cache)" >> "$GITHUB_OUTPUT"

build-tool-plugins/gradle-plugin/build.gradle.kts

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
plugins {
22
`java-gradle-plugin`
3-
`maven-publish`
3+
id("com.gradle.plugin-publish") version "1.2.1"
4+
id("com.vanniktech.maven.publish") version "0.34.0"
45
}
56

67
java {
@@ -9,7 +10,6 @@ java {
910
}
1011

1112
group = "online.sharedtype"
12-
version = "0.14.0-SNAPSHOT"
1313

1414
repositories {
1515
mavenCentral()
@@ -25,12 +25,46 @@ dependencies {
2525
}
2626

2727
gradlePlugin {
28-
val greeting by plugins.creating {
29-
id = "online.sharedtype.sharedtype-gradle-plugin"
30-
implementationClass = "online.sharedtype.gradle.SharedtypeGradlePlugin"
28+
website = "https://github.com/SharedType/sharedtype"
29+
vcsUrl = "https://github.com/SharedType/sharedtype.git"
30+
plugins {
31+
create("sharedtype") {
32+
id = "online.sharedtype.sharedtype-gradle-plugin"
33+
displayName = "SharedType Gradle Plugin"
34+
description = "SharedType Gradle Plugin, SharedType is the tool to generate types from Java to target languages."
35+
tags = listOf("sharedtype", "java", "annotation processing", "type generation")
36+
implementationClass = "online.sharedtype.gradle.SharedtypeGradlePlugin"
37+
}
3138
}
3239
}
3340

3441
tasks.named<Test>("test") {
3542
useJUnitPlatform()
3643
}
44+
45+
mavenPublishing {
46+
pom {
47+
name.set("SharedType Gradle Plugin")
48+
description.set("SharedType Gradle Plugin, SharedType is the tool to generate types from Java to target languages.")
49+
inceptionYear.set("2024")
50+
url.set("https://github.com/SharedType/sharedtype")
51+
licenses {
52+
license {
53+
name.set("CC BY 4.0")
54+
url.set("https://creativecommons.org/licenses/by/4.0/deed.en")
55+
distribution.set("https://creativecommons.org/licenses/by/4.0/deed.en")
56+
}
57+
}
58+
developers {
59+
developer {
60+
id.set("cuzfrog")
61+
name.set("Cause Chung")
62+
url.set("https://github.com/cuzfrog")
63+
}
64+
}
65+
scm {
66+
url.set("https://github.com/SharedType/sharedtype")
67+
connection.set("scm:git@github.com:SharedType/sharedtype.git")
68+
}
69+
}
70+
}
Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
# This file was generated by the Gradle 'init' task.
2-
# https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties
3-
4-
org.gradle.configuration-cache=true
5-
1+
version=0.14.0-SNAPSHOT
2+
mavenCentralPublishing=true
3+
signAllPublications=true

build-tool-plugins/gradle-plugin/it/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
plugins {
22
id("java")
3-
id("online.sharedtype.sharedtype-gradle-plugin") version "0.14.0-SNAPSHOT"
3+
id("online.sharedtype.sharedtype-gradle-plugin") version project.version
44
}
55

66
java {
@@ -9,7 +9,7 @@ java {
99
}
1010

1111
dependencies {
12-
compileOnly("online.sharedtype:sharedtype:0.14.0-SNAPSHOT")
12+
compileOnly("online.sharedtype:sharedtype:$project.version")
1313
}
1414

1515
repositories {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
version=0.14.0-SNAPSHOT

misc/release.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,9 @@ sed -i -E "s/<sharedtype\.version>[0-9]+\.[0-9\.\[0-9]+\.[0-9]+<\/sharedtype\.ve
3333
NEW_VERSION="$(increment_version "$version" 1)-SNAPSHOT"
3434
./mvnw versions:set -DgenerateBackupPoms=false -DnewVersion="$NEW_VERSION" --ntp -B
3535
printf '%s' "$NEW_VERSION" > NEW_VERSION.cache
36+
37+
# gradle plugin
38+
cd build-tool-plugins/gradle-plugin || exit 1
39+
./gradlew publishPlugins -Pversion="$version" -Pgradle.publish.key="$GRADLE_PUBLISH_KEY" -Pgradle.publish.secret="$GRADLE_PUBLISH_SECRET" --no-daemon
40+
sed -i -E "s/^version=.*\$/version=$version/g" build-tool-plugins/gradle-plugin/gradle.properties
41+
sed -i -E "s/^version=.*\$/version=$version/g" build-tool-plugins/gradle-plugin/it/gradle.properties

setenv

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
#!/bin/bash
2-
version=$1
2+
javaVersion=$1
33

4-
if [ -z "$version" ];then
5-
version="21"
6-
echo "No version provided, use default jdk$version"
4+
if [ -z "$javaVersion" ];then
5+
javaVersion="21"
6+
echo "No javaVersion provided, use default jdk$javaVersion"
77
fi
88

9-
if [[ "$version" == "17" ]];then
9+
if [[ "$javaVersion" == "17" ]];then
1010
export JAVA_HOME=$JAVA17_HOME
11-
elif [[ "$version" == "8" ]];then
11+
elif [[ "$javaVersion" == "8" ]];then
1212
export JAVA_HOME=$JAVA8_HOME
13-
elif [[ "$version" == "11" ]];then
13+
elif [[ "$javaVersion" == "11" ]];then
1414
export JAVA_HOME=$JAVA11_HOME
15-
elif [[ "$version" == "21" ]];then
15+
elif [[ "$javaVersion" == "21" ]];then
1616
export JAVA_HOME=$JAVA21_HOME
1717
else
18-
echo "Unsupported version $version"
18+
echo "Unsupported javaVersion $javaVersion"
1919
return
2020
fi
2121

@@ -24,7 +24,7 @@ export PATH=$JAVA_HOME/bin:$MVND_HOME/bin:$PATH
2424

2525
if [ -z "$MVND_HOME" ];then
2626
echo "MVND_HOME is not set, mvnd can speed up local build, see https://github.com/apache/maven-mvnd. (mvnd currently does not update plugins on each run, when developing maven plugin, use mvnw)"
27-
java -version
27+
java -javaVersion
2828
else
29-
mvnd -version
29+
mvnd -javaVersion
3030
fi

0 commit comments

Comments
 (0)