Add maven container for deploy to OSSRH / Maven Central
Signed-off-by: Alexander Dudaev <Aleksandr.Dudayev@xored.com>
Change-Id: I976b7bd2f0e62dd6fdd62da24deeadcd058fdcee
diff --git a/releng/Jenkinsfile b/releng/Jenkinsfile
index 49ea239..2e3181b 100644
--- a/releng/Jenkinsfile
+++ b/releng/Jenkinsfile
@@ -27,7 +27,7 @@
stage('Launch agent') {
agent {
kubernetes {
- label 'rcptt-build-agent'
+ label 'rcptt-build-and-deploy-agent'
yaml "${env.YAML_BUILD_AND_DEPLOY_AGENT}"
}
}
diff --git a/releng/Jenkinsfile.groovy b/releng/Jenkinsfile.groovy
index 719cb3c..be644a5 100644
--- a/releng/Jenkinsfile.groovy
+++ b/releng/Jenkinsfile.groovy
@@ -36,7 +36,6 @@
path: toolchains.xml
- name: m2-repo
emptyDir: {}"""
-
DEPLOY_CONTAINER_NAME="jnlp"
DEPLOY_CONTAINER="""
- name: $DEPLOY_CONTAINER_NAME
@@ -47,6 +46,49 @@
- name: volume-known-hosts
configMap:
name: known-hosts"""
+DEPLOY_MAVEN_CONTAINER_NAME="maven"
+DEPLOY_MAVEN_CONTAINER="""
+ - name: $DEPLOY_MAVEN_CONTAINER_NAME
+ image: maven:alpine
+ tty: true
+ command:
+ - cat
+ volumeMounts:
+ - name: deploy-settings-xml
+ mountPath: /home/jenkins/.m2/settings.xml
+ subPath: settings.xml
+ readOnly: true
+ - name: deploy-toolchains-xml
+ mountPath: /home/jenkins/.m2/toolchains.xml
+ subPath: toolchains.xml
+ readOnly: true
+ - name: deploy-settings-security-xml
+ mountPath: /home/jenkins/.m2/settings-security.xml
+ subPath: settings-security.xml
+ readOnly: true
+ - name: deploy-m2-repo
+ mountPath: /home/jenkins/.m2/repository"""
+DEPLOY_MAVEN_CONTAINER_VOLUMES="""
+ - name: deploy-settings-xml
+ secret:
+ secretName: m2-secret-dir
+ items:
+ - key: settings.xml
+ path: settings.xml
+ - name: deploy-toolchains-xml
+ configMap:
+ name: m2-dir
+ items:
+ - key: toolchains.xml
+ path: toolchains.xml
+ - name: deploy-settings-security-xml
+ secret:
+ secretName: m2-secret-dir
+ items:
+ - key: settings-security.xml
+ path: settings-security.xml
+ - name: deploy-m2-repo
+ emptyDir: {}"""
env.YAML_BUILD_AGENT="""
apiVersion: v1
@@ -65,9 +107,11 @@
containers:
$BUILD_CONTAINER
$DEPLOY_CONTAINER
+$DEPLOY_MAVEN_CONTAINER
volumes:
$BUILD_CONTAINER_VOLUMES
$DEPLOY_CONTAINER_VOLUMES
+$DEPLOY_MAVEN_CONTAINER_VOLUMES
"""
CREDENTIAL="genie.rcptt@projects-storage.eclipse.org"
@@ -171,12 +215,10 @@
}
def deploy(String mode, String arg = "M0") {
- container(DEPLOY_CONTAINER_NAME) {
- switch(mode) {
- case "Release": release(); break;
- case "Milestone": milestone(arg); break;
- case "Nightly": nightly(); break;
- }
+ switch(mode) {
+ case "Release": release(); break;
+ case "Milestone": milestone(arg); break;
+ case "Nightly": nightly(); break;
}
}
@@ -196,20 +238,24 @@
def qualifier = get_qualifier()
def qualifiedDecoration = "-N$qualifier"
- copy_files(type, version, qualifier, qualifiedDecoration, true)
- def storageFolder = get_version_storage_folder(type, version)
- sshagent(["projects-storage.eclipse.org-bot-ssh"]) {
- def oldBuilds = sh_with_return("$SSH_CLIENT ls -r $storageFolder | grep -v latest | tail -n +${buildsToKeep + 1}")
- for(old in oldBuilds.split("\n")) {
- sh "$SSH_CLIENT rm -r $storageFolder/$old"
+ container(DEPLOY_CONTAINER_NAME) {
+ copy_files(type, version, qualifier, qualifiedDecoration, true)
+ def storageFolder = get_version_storage_folder(type, version)
+ sshagent(["projects-storage.eclipse.org-bot-ssh"]) {
+ def oldBuilds = sh_with_return("$SSH_CLIENT ls -r $storageFolder | grep -v latest | tail -n +${buildsToKeep + 1}")
+ for(old in oldBuilds.split("\n")) {
+ sh "$SSH_CLIENT rm -r $storageFolder/$old"
+ }
}
+
+ def storageFolderLatest = get_storage_folder(type, version, "latest")
+ sshagent(["projects-storage.eclipse.org-bot-ssh"]) {
+ sh "$SSH_CLIENT rm -rf ${storageFolderLatest}"
+ }
+ copy_files(type, version, "latest", "-nightly", true)
}
- def storageFolderLatest = get_storage_folder(type, version, "latest")
- sshagent(["projects-storage.eclipse.org-bot-ssh"]) {
- sh "$SSH_CLIENT rm -rf ${storageFolderLatest}"
- }
- copy_files(type, version, "latest", "-nightly", true)
+ maven_deploy("$version-SNAPSHOT")
}
def milestone(String milestone) {
@@ -217,10 +263,11 @@
def version = get_version()
def qualifiedDecoration = "-$milestone"
- copy_files(type, version, milestone, qualifiedDecoration, false)
+ container(DEPLOY_CONTAINER_NAME) {
+ copy_files(type, version, milestone, qualifiedDecoration, false)
+ }
- maven_deploy_runner("$version-$milestone", type, milestone)
- meven_deploy_maven_plugin(version)
+ maven_deploy("$version-$milestone")
}
def release() {
@@ -228,10 +275,11 @@
def version = get_version()
def qualifiedDecoration = ""
- copy_files(type, version, "", qualifiedDecoration, false)
+ container(DEPLOY_CONTAINER_NAME) {
+ copy_files(type, version, "", qualifiedDecoration, false)
+ }
- maven_deploy_runner(version, type, "")
- meven_deploy_maven_plugin(version)
+ maven_deploy(version)
}
def copy_files(String type, String version, String subfolder, String qualifiedDecoration, Boolean copy_full) { // subfolder is empty for type == release
@@ -264,19 +312,28 @@
}
}
-def maven_deploy_runner(String version, String type, String subfolder) {
- sh "mvn deploy:deploy-file \
- -Dversion=$version -Durl=https://repo.eclipse.org/content/repositories/rcptt-releases/ \
- -DgroupId=org.eclipse.rcptt.runner \
- -DrepositoryId=repo.eclipse.org \
- -DgeneratePom=true \
- -DartifactId=rcptt.runner \
- -Dfile=https://download.eclipse.org/rcptt/${type}/${version}/${subfolder}/runner/rcptt.runner-${version}.zip"
+def maven_deploy(String version) {
+ maven_deploy_runner(version)
+ maven_deploy_maven_plugin(version)
}
-def meven_deploy_maven_plugin(String version){
- sh "mvn -f maven-plugin/pom.xml clean versions:set -DnewVersion=$version"
- sh "mvn -f maven-plugin/pom.xml clean deploy -DnewVersion=$version"
+def maven_deploy_runner(String version) {
+ container(DEPLOY_MAVEN_CONTAINER_NAME) {
+ sh "mvn deploy:deploy-file \
+ -Dversion=$version -Durl=https://repo.eclipse.org/content/repositories/rcptt-releases/ \
+ -DgroupId=org.eclipse.rcptt.runner \
+ -DrepositoryId=repo.eclipse.org \
+ -DgeneratePom=true \
+ -DartifactId=rcptt.runner \
+ -Dfile=`readlink -f $WORKSPACE/$RUNNER_DIR/rcptt.runner-*.zip`"
+ }
+}
+
+def maven_deploy_maven_plugin(String version){
+ container(DEPLOY_MAVEN_CONTAINER_NAME) {
+ sh "mvn -f maven-plugin/pom.xml clean versions:set -DnewVersion=$version"
+ sh "mvn -f maven-plugin/pom.xml clean deploy -Dversion=$version"
+ }
}
return this
\ No newline at end of file
diff --git a/releng/nightly/Jenkinsfile b/releng/nightly/Jenkinsfile
index 88bfd76..de00db4 100644
--- a/releng/nightly/Jenkinsfile
+++ b/releng/nightly/Jenkinsfile
@@ -22,7 +22,7 @@
stage('Launch agent') {
agent {
kubernetes {
- label 'rcptt-build-agent'
+ label 'rcptt-build-and-deploy-agent'
yaml "${env.YAML_BUILD_AND_DEPLOY_AGENT}"
}
}