From 7f8557541a001f8e72647c09ab6b45deb1bb1dc3 Mon Sep 17 00:00:00 2001 From: Walter Oggioni Date: Sat, 30 Oct 2021 17:22:04 +0200 Subject: [PATCH] added Jenkinsfile --- Jenkinsfile | 22 ++++++++++++++++ build.gradle | 25 +++++++++++-------- gradle.properties | 3 ++- launcher/build.gradle | 16 ++++++++++-- .../gradle/envelope/LauncherResource.java | 2 +- 5 files changed, 53 insertions(+), 15 deletions(-) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..7f9a83b --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,22 @@ +import java.nio.file.Path +import java.nio.file.Files + +pipeline { + agent any + stages { + stage("Build") { + steps { + sh "./gradlew clean build" + archiveArtifacts artifacts: 'build/libs/*.jar', + allowEmptyArchive: true, + fingerprint: true, + onlyIfSuccessful: true + } + } + stage("Publish") { + steps { + sh "./gradlew publish" + } + } + } +} diff --git a/build.gradle b/build.gradle index 50daa9c..e460d6b 100644 --- a/build.gradle +++ b/build.gradle @@ -35,23 +35,23 @@ allprojects { version = getProperty("version.envelope") configurations { - embedded + embedded { + visible = false + canBeConsumed = false + } compileOnly.extendsFrom(embedded) + tar { + visible = false + canBeConsumed = false + transitive = false + } } dependencies { + tar project(path: "launcher", configuration: 'tar') embedded project(path: "common", configuration: "archives") } -Provider copyLauncher = tasks.register("copyLauncher", Copy) { - from(project("launcher").tasks.named("tar").map {it.outputs }) - into(new File(project.buildDir, "resources/main/META-INF")) -} - -tasks.named("processResources") { - inputs.files(copyLauncher) -} - java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 @@ -68,6 +68,9 @@ jar { } } } + into('LIB-INF') { + from(configurations.named('tar')) + } } gradlePlugin { @@ -82,7 +85,7 @@ gradlePlugin { publishing { repositories { maven { - url = woggioniMavenRepositoryUrl + url = publishMavenRepositoryUrl } } publications { diff --git a/gradle.properties b/gradle.properties index 1c1b2db..599c822 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,5 @@ -woggioniMavenRepositoryUrl=https://mvn.woggioni.net/ +woggioniMavenRepositoryUrl=https://woggioni.net/mvn/ +publishMavenRepositoryUrl=https://mvn.woggioni.net/ version.envelope=0.1 version.lombok=1.18.16 diff --git a/launcher/build.gradle b/launcher/build.gradle index d03c5b2..686bfb2 100644 --- a/launcher/build.gradle +++ b/launcher/build.gradle @@ -7,8 +7,16 @@ plugins { ext.setProperty("jpms.module.name", "net.woggioni.envelope") configurations { - embedded + embedded { + visible = false + canBeConsumed = false + } compileOnly.extendsFrom(embedded) + tar { + visible = true + canBeConsumed = true + transitive = false + } } dependencies { @@ -38,7 +46,7 @@ jar { } } -tasks.register("tar", Tar) { +Provider tarTaskProvider = tasks.register("tar", Tar) { archiveFileName = "${project.name}.tar" from(project.tasks.named(JavaPlugin.JAR_TASK_NAME) .flatMap(Jar.&getArchiveFile) @@ -60,3 +68,7 @@ tasks.named(JavaPlugin.COMPILE_JAVA_TASK_NAME, JavaCompile) { options.compilerArgs.addAll(["--patch-module", "net.woggioni.envelope=$path"]) } } + +artifacts { + tar tarTaskProvider +} \ No newline at end of file diff --git a/src/main/java/net/woggioni/gradle/envelope/LauncherResource.java b/src/main/java/net/woggioni/gradle/envelope/LauncherResource.java index e636722..cfc6808 100644 --- a/src/main/java/net/woggioni/gradle/envelope/LauncherResource.java +++ b/src/main/java/net/woggioni/gradle/envelope/LauncherResource.java @@ -14,7 +14,7 @@ final class LauncherResource implements ReadableResource { private final URL url; private LauncherResource() { - url = getClass().getResource(String.format("/META-INF/%s", getDisplayName())); + url = getClass().getResource(String.format("/LIB-INF/%s", getDisplayName())); } @Override