From 5f22add8778388a0a9fc8385ea355121e9f6c87d Mon Sep 17 00:00:00 2001 From: Manuele Simi Date: Mon, 2 Sep 2019 23:44:35 -0400 Subject: [PATCH] Restore pipeline parameters and sanity checks. --- Jenkinsfile_yaml | 65 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile_yaml b/Jenkinsfile_yaml index f4c80a7..01fc4f9 100644 --- a/Jenkinsfile_yaml +++ b/Jenkinsfile_yaml @@ -1,8 +1,50 @@ import org.yaml.snakeyaml.Yaml +// set the build options according to the Type of build +def (options,maven_local_repo_path,maven_settings_file) = ['','',''] +def maven_jdk = 'OpenJDK 8' +def agent_root_folder = '/var/lib/jenkins' + +if (params.Type == 'SNAPSHOT-DRY-RUN') { + echo "Configure Maven for SNAPSHOT-DRY-RUN artifacts" + options = '' + maven_local_repo_path = "${agent_root_folder}/local-snapshots" + maven_settings_file = "${agent_root_folder}/.m2/jenkins-snapshots-dry-run-settings.xml" +} +if (params.Type == 'SNAPSHOT') { + echo "Configure Maven for SNAPSHOT artifacts" + options = '' + maven_local_repo_path = "${agent_root_folder}/local-snapshots" + maven_settings_file = "${agent_root_folder}/.m2/jenkins-snapshots-settings.xml" +} +if (params.Type == 'RELEASE-DRY-RUN') { + echo "Configure Maven for RELEASE-DRY-RUN artifacts" + options = '' + maven_local_repo_path = "${agent_root_folder}/local-releases" + maven_settings_file = "${agent_root_folder}/.m2/jenkins-releases-dry-run-settings.xml" +} +if (params.Type == 'RELEASE-STAGING') { + echo "Configure Maven for RELEASE-STAGING artifacts" + options = '' + maven_local_repo_path = "${agent_root_folder}/local-staging" + maven_settings_file = "${agent_root_folder}/.m2/jenkins-staging-settings.xml" + echo "This will fail. RELEASES are currently disabled until further testing." +} +if (params.Type == 'RELEASE') { + echo "Configure Maven for RELEASE artifacts" + options = '' + //maven_local_repo_path = "${agent_root_folder}/local-releases" + //maven_settings_file = "${agent_root_folder}/.m2/jenkins-releases-settings.xml" + echo "This will fail. RELEASES are currently disabled until further testing." +} +echo "Use settings file at ${maven_settings_file}" +echo "Use local repo at ${maven_local_repo_path}" +echo "Release number: ${params.gCube_release_number}" + + //locate where this jenkinsfile is String releaseURL = "https://code-repo.d4science.org/gCubeCI/gCubeRelease/raw/branch/feature/17273/releases/gcube-4.14.5.yaml" -//check and parse the release file +//load the release file println "Querying ${releaseURL}" def text = releaseURL.toURL().getText() @@ -10,15 +52,36 @@ def text = releaseURL.toURL().getText() def jsonConfig = new Yaml().load(text) println jsonConfig.inspect() echo "gCube v. ${jsonConfig.gCube_release.Version}" +assert jsonConfig.gCube_release.Version == params.gCube_release_version : "Release versions do not match!" + echo "Found components:" jsonConfig.gCube_release.Components.each{println it.key} pipeline { + // see https://jenkins.io/doc/book/pipeline/syntax/#agent agent { label 'pipeline-agent' } + // see https://jenkins.io/doc/book/pipeline/syntax/#environment + environment { + JOB_OPTIONS = "${options}" + MAVEN_LOCAL_REPO = "${maven_local_repo_path}" + GCUBE_RELEASE_NUMBER = "${params.gCube_release_version}" + } + + // see https://jenkins.io/doc/book/pipeline/syntax/#parameters + parameters { + choice(name: 'Type', + choices: ['SNAPSHOT-DRY-RUN', 'SNAPSHOT', 'RELEASE-DRY-RUN', 'RELEASE-STAGING', 'RELEASE'], + description: 'The type of artifacts the build is expected to generate') + + string(name: 'gCube_release_version', + defaultValue: 'invalid', + description: 'The number of the gCube release to build. Sample values: 4.14, 4.15, etc.') + } + //see https://jenkins.io/doc/book/pipeline/syntax/#stages stages { stage('build SmartGears components') {