Skip to content

Commit

Permalink
adds workingDir convention
Browse files Browse the repository at this point in the history
  • Loading branch information
Joaquimmnetto committed Sep 18, 2023
1 parent e0707c0 commit 018e97a
Show file tree
Hide file tree
Showing 6 changed files with 114 additions and 72 deletions.
13 changes: 9 additions & 4 deletions src/net/wooga/jenkins/pipeline/assemble/Assemblers.groovy
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package net.wooga.jenkins.pipeline.assemble

import net.wooga.jenkins.pipeline.config.PipelineConventions
import net.wooga.jenkins.pipeline.model.Gradle

class Assemblers {
Expand All @@ -16,11 +17,15 @@ class Assemblers {
this.gradle = gradle
}

def unityWDK(String unityLogCategory, String releaseType, String releaseScope) {
jenkins.withEnv(["UNITY_LOG_CATEGORY = ${unityLogCategory}"]) {
gradle.wrapper("-Prelease.stage=${releaseType.trim()} -Prelease.scope=${releaseScope.trim()} assemble")
def unityWDK(String unityLogCategory, String releaseType, String releaseScope,
PipelineConventions conventions = PipelineConventions.standard) {
String workingDir = conventions.workingDir
jenkins.dir(workingDir) {
jenkins.withEnv(["UNITY_LOG_CATEGORY = ${unityLogCategory}"]) {
gradle.wrapper("-Prelease.stage=${releaseType.trim()} -Prelease.scope=${releaseScope.trim()} assemble")
}
}
return jenkins.findFiles(glob: 'build/outputs/*.nupkg')[0]
return jenkins.findFiles(glob: "$workingDir/build/outputs/*.nupkg")[0]
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ class PipelineConventions implements Cloneable {
this.javaParallelPrefix = other.javaParallelPrefix
this.wdkParallelPrefix = other.wdkParallelPrefix
this.wdkCoberturaFile = other.wdkCoberturaFile
this.workingDir = other.workingDir
}

PipelineConventions mergeWithConfigMap(Map configMap) {
Expand All @@ -33,6 +34,7 @@ class PipelineConventions implements Cloneable {
it.wdkParallelPrefix = configMap.wdkParallelPrefix?: it.wdkParallelPrefix
it.wdkCoberturaFile = configMap.wdkCoberturaFile?: it.wdkCoberturaFile
it.wdkSetupStashId = configMap.wdkSetupStashId?: it.wdkSetupStashId
it.workingDir = configMap.workingDir?: it.workingDir
return it
}
}
Expand All @@ -47,6 +49,8 @@ class PipelineConventions implements Cloneable {
String wdkParallelPrefix = "check "
String wdkCoberturaFile = '**/codeCoverage/Cobertura.xml'
String wdkSetupStashId = 'setup_w'

String workingDir = '.'
}

class ImmutablePipelineConventions extends PipelineConventions {
Expand Down
4 changes: 2 additions & 2 deletions src/net/wooga/jenkins/pipeline/config/Platform.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class Platform {
static Platform forJava(String platformName, Map config, boolean isMain) {
return new Platform(
(config.checkoutDir?: ".") as String,
(config.checkDir?: ".") as String,
(config.checkDir?: config.workingDir?: ".") as String,
platformName,
platformName,
platformName == "linux",
Expand All @@ -34,7 +34,7 @@ class Platform {
static Platform forJS(String platformName, Map config, boolean isMain) {
return new Platform(
(config.checkoutDir?: ".") as String,
(config.checkDir?: ".") as String,
(config.checkDir?: config.workingDir?: ".") as String,
platformName,
platformName,
platformName == "linux",
Expand Down
146 changes: 87 additions & 59 deletions src/net/wooga/jenkins/pipeline/publish/Publishers.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -22,54 +22,69 @@ class Publishers {
}

def gradlePlugin(String publishKeySecret, String publishSecretSecret,
String checkTask = PipelineConventions.standard.checkTask) {
jenkins.withCredentials([jenkins.string(credentialsId: publishKeySecret, variable: "GRADLE_PUBLISH_KEY"),
jenkins.string(credentialsId: publishSecretSecret, variable: "GRADLE_PUBLISH_SECRET")]) {
gradle.wrapper("${releaseType} " +
"-Pgradle.publish.key=${jenkins.GRADLE_PUBLISH_KEY} " +
"-Pgradle.publish.secret=${jenkins.GRADLE_PUBLISH_SECRET} " +
"-Prelease.stage=${releaseType} " +
"-Prelease.scope=${releaseScope} -x ${checkTask}")
PipelineConventions conventions = PipelineConventions.standard) {
String checkTask = conventions.checkTask
String workingDir = conventions.workingDir
jenkins.dir(workingDir) {
jenkins.withCredentials([jenkins.string(credentialsId: publishKeySecret, variable: "GRADLE_PUBLISH_KEY"),
jenkins.string(credentialsId: publishSecretSecret, variable: "GRADLE_PUBLISH_SECRET")]) {
gradle.wrapper("${releaseType} " +
"-Pgradle.publish.key=${jenkins.GRADLE_PUBLISH_KEY} " +
"-Pgradle.publish.secret=${jenkins.GRADLE_PUBLISH_SECRET} " +
"-Prelease.stage=${releaseType} " +
"-Prelease.scope=${releaseScope} -x ${checkTask}")
}
}
}

def bintray(String bintraySecret, String checkTask = PipelineConventions.standard.checkTask) {
jenkins.withCredentials([jenkins.usernamePassword(credentialsId: bintraySecret, usernameVariable: "BINTRAY_USER",
passwordVariable: "BINTRAY_API_KEY")]) {
gradle.wrapper("${releaseType} " +
def bintray(String bintraySecret, PipelineConventions conventions = PipelineConventions.standard) {
String checkTask = conventions.checkTask
String workingDir = conventions.workingDir
jenkins.dir(workingDir) {
jenkins.withCredentials([jenkins.usernamePassword(credentialsId: bintraySecret, usernameVariable: "BINTRAY_USER",
passwordVariable: "BINTRAY_API_KEY")]) {
gradle.wrapper("${releaseType} " +
"-Pbintray.user=${jenkins.BINTRAY_USER} " +
"-Pbintray.key=${jenkins.BINTRAY_API_KEY} " +
"-Prelease.stage=${releaseType} " +
"-Prelease.scope=${releaseScope} -x ${checkTask}")
}
}
}

def ossrh(String publishSecret, String signingKeySecret, String signingKeyIdSecret, String signingPassphraseSecret,
String checkTask = PipelineConventions.standard.checkTask) {
def credentials = [jenkins.usernamePassword(credentialsId: publishSecret,
usernameVariable:"OSSRH_USERNAME", passwordVariable: "OSSRH_PASSWORD")] +
ossrhSigningCredentials(signingKeySecret, signingKeyIdSecret, signingPassphraseSecret)
jenkins.withCredentials(credentials) {
gradle.wrapper("${releaseType} " +
"-Prelease.stage=${releaseType} " +
"-Prelease.scope=${releaseScope} -x ${checkTask}")
def ossrh(String publishSecret, String signingKeySecret, String signingKeyIdSecret, String signingPassphraseSecret, PipelineConventions conventions = PipelineConventions.standard) {
String checkTask = conventions.checkTask
String workingDir = conventions.workingDir
jenkins.dir(workingDir) {
def credentials = [jenkins.usernamePassword(credentialsId: publishSecret,
usernameVariable: "OSSRH_USERNAME", passwordVariable: "OSSRH_PASSWORD")] +
ossrhSigningCredentials(signingKeySecret, signingKeyIdSecret, signingPassphraseSecret)
jenkins.withCredentials(credentials) {
gradle.wrapper("${releaseType} " +
"-Prelease.stage=${releaseType} " +
"-Prelease.scope=${releaseScope} -x ${checkTask}")
}
}
}

def artifactoryOSSRH(String artifactorySecret,
String signingKeySecret, String signingKeyIdSecret, String signingPassphraseSecret,
String checkTask = PipelineConventions.standard.checkTask) {
def credentials = [
jenkins.usernamePassword(credentialsId: artifactorySecret,
usernameVariable:"ARTIFACTORY_USER",
passwordVariable: "ARTIFACTORY_PASS")
] + ossrhSigningCredentials(signingKeySecret, signingKeyIdSecret, signingPassphraseSecret)
jenkins.withCredentials(credentials) {
gradle.wrapper("${releaseType} " +
"-Partifactory.user=${jenkins.ARTIFACTORY_USER} " +
"-Partifactory.password=${jenkins.ARTIFACTORY_PASS} " +
"-Prelease.stage=${releaseType} " +
"-Prelease.scope=${releaseScope} -x ${checkTask}")
PipelineConventions conventions = PipelineConventions.standard) {
String checkTask = conventions.checkTask
String workingDir = conventions.workingDir
jenkins.dir(workingDir) {
def credentials = [
jenkins.usernamePassword(credentialsId: artifactorySecret,
usernameVariable: "ARTIFACTORY_USER",
passwordVariable: "ARTIFACTORY_PASS")
] + ossrhSigningCredentials(signingKeySecret, signingKeyIdSecret, signingPassphraseSecret)
jenkins.withCredentials(credentials) {
gradle.wrapper("${releaseType} " +
"-Partifactory.user=${jenkins.ARTIFACTORY_USER} " +
"-Partifactory.password=${jenkins.ARTIFACTORY_PASS} " +
"-Prelease.stage=${releaseType} " +
"-Prelease.scope=${releaseScope} -x ${checkTask}")
}
}
}

Expand All @@ -82,41 +97,54 @@ class Publishers {
}

def unityArtifactoryPaket(String unityPath, String artifactorySecret,
String checkTask = PipelineConventions.standard.checkTask) {
jenkins.withEnv(["UNITY_PACKAGE_MANAGER = paket", "UNITY_PATH=${unityPath}", "UNITY_LOG_CATEGORY=build"]) {
jenkins.withCredentials([jenkins.usernameColonPassword(credentialsId: artifactorySecret, variable: "NUGET_KEY"),
jenkins.usernameColonPassword(credentialsId: artifactorySecret, variable: "nugetkey")]) {
gradle.wrapper("${releaseType} " +
"-Prelease.stage=${releaseType} " +
"-Ppaket.publish.repository='${releaseType}' " +
"-Prelease.scope=${releaseScope} -x ${checkTask}")
PipelineConventions conventions = PipelineConventions.standard) {
String checkTask = conventions.checkTask
String workingDir = conventions.workingDir
jenkins.dir(workingDir) {
jenkins.withEnv(["UNITY_PACKAGE_MANAGER = paket", "UNITY_PATH=${unityPath}", "UNITY_LOG_CATEGORY=build"]) {
jenkins.withCredentials([jenkins.usernameColonPassword(credentialsId: artifactorySecret, variable: "NUGET_KEY"),
jenkins.usernameColonPassword(credentialsId: artifactorySecret, variable: "nugetkey")]) {
gradle.wrapper("${releaseType} " +
"-Prelease.stage=${releaseType} " +
"-Ppaket.publish.repository='${releaseType}' " +
"-Prelease.scope=${releaseScope} -x ${checkTask}")
}
}
}
}

def npm(String npmCredsSecret) {
def credentials = [
jenkins.usernamePassword(credentialsId: npmCredsSecret,
usernameVariable:"NODE_RELEASE_NPM_USER",
passwordVariable: "NODE_RELEASE_NPM_PASS")
]
jenkins.withCredentials(credentials) {
gradle.wrapper("${releaseType} -Prelease.stage=${releaseType} -Prelease.scope=${releaseScope} -x check")
def npm(String npmCredsSecret,
PipelineConventions conventions = PipelineConventions.standard) {
String checkTask = conventions.checkTask
String workingDir = conventions.workingDir
jenkins.dir(workingDir) {
def credentials = [
jenkins.usernamePassword(credentialsId: npmCredsSecret,
usernameVariable: "NODE_RELEASE_NPM_USER",
passwordVariable: "NODE_RELEASE_NPM_PASS")
]
jenkins.withCredentials(credentials) {
gradle.wrapper("${releaseType} -Prelease.stage=${releaseType} -Prelease.scope=${releaseScope} -x ${checkTask}")
}
}
}

def unityArtifactoryUpm(String artifactorySecret) {
jenkins.withEnv(["UNITY_PACKAGE_MANAGER = upm", "UNITY_LOG_CATEGORY=build"]) {
jenkins.withCredentials([jenkins.usernamePassword(credentialsId: artifactorySecret, usernameVariable:"UPM_USERNAME", passwordVariable: "UPM_PASSWORD"),
jenkins.usernameColonPassword(credentialsId: artifactorySecret, variable: "NUGET_KEY"),
jenkins.usernameColonPassword(credentialsId: artifactorySecret, variable: "nugetkey")]) {
def unityArtifactoryUpm(String artifactorySecret,
PipelineConventions conventions = PipelineConventions.standard) {
String workingDir = conventions.workingDir
jenkins.dir(workingDir) {
jenkins.withEnv(["UNITY_PACKAGE_MANAGER = upm", "UNITY_LOG_CATEGORY=build"]) {
jenkins.withCredentials([jenkins.usernamePassword(credentialsId: artifactorySecret, usernameVariable: "UPM_USERNAME", passwordVariable: "UPM_PASSWORD"),
jenkins.usernameColonPassword(credentialsId: artifactorySecret, variable: "NUGET_KEY"),
jenkins.usernameColonPassword(credentialsId: artifactorySecret, variable: "nugetkey")]) {


gradle.wrapper("publish " +
"-Ppaket.publish.repository='${releaseType}' " +
"-Ppublish.repository='${releaseType}' " +
"-PversionBuilder.stage=${releaseType} " +
"-PversionBuilder.scope=${releaseScope}")
gradle.wrapper("publish " +
"-Ppaket.publish.repository='${releaseType}' " +
"-Ppublish.repository='${releaseType}' " +
"-PversionBuilder.stage=${releaseType} " +
"-PversionBuilder.scope=${releaseScope}")
}
}
}
}
Expand Down
11 changes: 8 additions & 3 deletions src/net/wooga/jenkins/pipeline/setup/Setups.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,14 @@ class Setups {
return new Setups(jenkinsScript, gradle)
}

def wdk(String releaseType, String releaseScope, String setupTask = PipelineConventions.standard.setupTask) {
gradle.wrapper("-Prelease.stage=${releaseType.trim()} " +
"-Prelease.scope=${releaseScope.trim()} ${setupTask}")
def wdk(String releaseType, String releaseScope, PipelineConventions conventions = PipelineConventions.standard) {
String setupTask = conventions.setupTask
String workingDir = conventions.workingDir
jenkins.dir(workingDir) {
gradle.wrapper("-Prelease.stage=${releaseType.trim()} " +
"-Prelease.scope=${releaseScope.trim()} ${setupTask}")
}

}

}
8 changes: 4 additions & 4 deletions vars/buildUnityWdkV2.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ def call(Map configMap = [unityVersions: []]) {
env.RELEASE_STAGE = params.RELEASE_STAGE?: defaultReleaseType
env.RELEASE_SCOPE = params.RELEASE_SCOPE?: defaultReleaseScope
def setup = config.pipelineTools.setups
setup.wdk(env.RELEASE_STAGE as String, env.RELEASE_SCOPE as String)
setup.wdk(env.RELEASE_STAGE as String, env.RELEASE_SCOPE as String, config.conventions)
}
}
post {
Expand Down Expand Up @@ -109,7 +109,7 @@ def call(Map configMap = [unityVersions: []]) {
env.RELEASE_STAGE = params.RELEASE_STAGE?: defaultReleaseType
env.RELEASE_SCOPE = params.RELEASE_SCOPE?: defaultReleaseScope
def setup = config.pipelineTools.setups
setup.wdk(env.RELEASE_STAGE as String, env.RELEASE_SCOPE as String)
setup.wdk(env.RELEASE_STAGE as String, env.RELEASE_SCOPE as String, config.conventions)
}
}
post {
Expand Down Expand Up @@ -176,7 +176,7 @@ def call(Map configMap = [unityVersions: []]) {
unstash 'upm_setup_w'
script {
def assembler = config.pipelineTools.assemblers
assembler.unityWDK("build", env.RELEASE_STAGE as String, env.RELEASE_SCOPE as String)
assembler.unityWDK("build", env.RELEASE_STAGE as String, env.RELEASE_SCOPE as String, config.conventions)
}
}

Expand Down Expand Up @@ -244,7 +244,7 @@ def call(Map configMap = [unityVersions: []]) {
unstash 'wdk_output'
script {
def publisher = config.pipelineTools.createPublishers(env.RELEASE_STAGE, env.RELEASE_SCOPE)
publisher.unityArtifactoryUpm('artifactory_publish')
publisher.unityArtifactoryUpm('artifactory_publish', config.conventions)
}
}

Expand Down

0 comments on commit 018e97a

Please sign in to comment.