dsl/seed/jobs/seed_job_branch.groovy (131 lines of code) (raw):

/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // +++++++++++++++++++++++++++++++++++++++++++ create a seed job ++++++++++++++++++++++++++++++++++++++++++++++++++++ import org.kie.jenkins.jobdsl.utils.FolderUtils import org.kie.jenkins.jobdsl.KogitoConstants import org.kie.jenkins.jobdsl.utils.SeedJobUtils import org.kie.jenkins.jobdsl.Utils // Create all folders folder("${GENERATION_BRANCH}") if (Utils.isOldFolderStructure(this)) { // For old branches FolderUtils.getAllNeededFolders().each { folder("${GENERATION_BRANCH}/${it}") } } SeedJobUtils.createSeedJobTrigger( this, "${GENERATION_BRANCH}/z-seed-trigger-job", Utils.getSeedRepo(this), Utils.getSeedAuthor(this), Utils.getSeedAuthorCredsId(this), Utils.getSeedBranch(this), [ 'dsl/seed/gradle', 'dsl/seed/jenkinsfiles/scripts', 'dsl/seed/jenkinsfiles/Jenkinsfile.seed.branch', 'dsl/seed/jobs/seed_job_branch.groovy', 'dsl/seed/src', 'dsl/seed/build.gradle', 'dsl/seed/gradle.properties', ], "${JOB_NAME}") SeedJobUtils.createSeedJobTrigger( this, "${GENERATION_BRANCH}/z-seed-config-trigger-job", "${SEED_CONFIG_FILE_GIT_REPOSITORY}", "${SEED_CONFIG_FILE_GIT_AUTHOR_NAME}", "${SEED_CONFIG_FILE_GIT_AUTHOR_CREDS_ID}", "${SEED_CONFIG_FILE_GIT_BRANCH}", [ "${SEED_CONFIG_FILE_PATH}", ], "${JOB_NAME}" ) // Configuration of the seed and generated jobs is done via `dsl/seed/config.yaml` pipelineJob("${GENERATION_BRANCH}/${JOB_NAME}") { description("This job creates all needed Jenkins jobs on branch ${GENERATION_BRANCH}. DO NOT USE FOR TESTING !!!! See https://github.com/apache/incubator-kie-kogito-pipelines/blob/main/docs/jenkins.md#test-specific-jobs") logRotator { numToKeep(5) } throttleConcurrentBuilds { maxTotal(1) } parameters { booleanParam('DEBUG', false, 'Enable Debug capability') booleanParam('SKIP_TESTS', false, 'Skip testing') } environmentVariables { env('GENERATION_BRANCH', "${GENERATION_BRANCH}") env('MAIN_BRANCHES', "${MAIN_BRANCHES}") env('SEED_CONFIG_FILE_GIT_REPOSITORY', "${SEED_CONFIG_FILE_GIT_REPOSITORY}") env('SEED_CONFIG_FILE_GIT_AUTHOR_NAME', "${SEED_CONFIG_FILE_GIT_AUTHOR_NAME}") env('SEED_CONFIG_FILE_GIT_AUTHOR_CREDS_ID', "${SEED_CONFIG_FILE_GIT_AUTHOR_CREDS_ID}") env('SEED_CONFIG_FILE_GIT_BRANCH', "${SEED_CONFIG_FILE_GIT_BRANCH}") env('SEED_CONFIG_FILE_PATH', "${SEED_CONFIG_FILE_PATH}") env('SEED_REPO', Utils.getSeedRepo(this)) env('SEED_AUTHOR', Utils.getSeedAuthor(this)) env('SEED_AUTHOR_CREDS_ID', Utils.getSeedAuthorCredsId(this)) env('SEED_BRANCH', Utils.getSeedBranch(this)) env('AGENT_LABEL', 'ubuntu') env('JENKINS_EMAIL_CREDS_ID', Utils.getJenkinsEmailCredsId(this)) } definition { cpsScm { scm { git { remote { url('https://github.com/${SEED_AUTHOR}/${SEED_REPO}.git') credentials('${SEED_AUTHOR_CREDS_ID}') } branch('${SEED_BRANCH}') extensions { wipeWorkspace() cleanBeforeCheckout() } } } scriptPath("${SEED_JENKINSFILE}") } } properties { githubProjectUrl("https://github.com/${Utils.getSeedAuthor(this)}/${Utils.getSeedRepo(this)}/") } } // Toggle triggers job folder("${GENERATION_BRANCH}/tools") pipelineJob("${GENERATION_BRANCH}/tools/toggle-dsl-triggers") { description('Toggle DSL triggers') logRotator { numToKeep(5) } throttleConcurrentBuilds { maxTotal(1) } parameters { booleanParam('DISABLE_TRIGGERS', false, 'If selected the triggers will be disabled.') } environmentVariables { env('SEED_CONFIG_FILE_GIT_REPOSITORY', "${SEED_CONFIG_FILE_GIT_REPOSITORY}") env('SEED_CONFIG_FILE_GIT_AUTHOR_NAME', "${SEED_CONFIG_FILE_GIT_AUTHOR_NAME}") env('SEED_CONFIG_FILE_GIT_AUTHOR_CREDS_ID', "${SEED_CONFIG_FILE_GIT_AUTHOR_CREDS_ID}") env('SEED_CONFIG_FILE_GIT_AUTHOR_PUSH_CREDS_ID', "${SEED_CONFIG_FILE_GIT_AUTHOR_PUSH_CREDS_ID}") env('SEED_CONFIG_FILE_GIT_BRANCH', "${SEED_CONFIG_FILE_GIT_BRANCH}") env('SEED_CONFIG_FILE_PATH', "${SEED_CONFIG_FILE_PATH}") env('JENKINS_EMAIL_CREDS_ID', Utils.getJenkinsEmailCredsId(this)) env('AGENT_DOCKER_BUILDER_IMAGE', Utils.getJenkinsAgentDockerImage(this, 'builder')) env('AGENT_DOCKER_BUILDER_ARGS', Utils.getJenkinsAgentDockerArgs(this, 'builder')) } definition { cpsScm { scm { git { remote { url("https://github.com/${Utils.getSeedAuthor(this)}/${Utils.getSeedRepo(this)}.git") credentials(Utils.getSeedAuthorCredsId(this)) } branch(Utils.getSeedBranch(this)) extensions { wipeWorkspace() cleanBeforeCheckout() } } } scriptPath("dsl/seed/jenkinsfiles/Jenkinsfile.tools.toggle-triggers") } } properties { githubProjectUrl("https://github.com/${Utils.getSeedAuthor(this)}/${Utils.getSeedRepo(this)}/") } }