pipeline { agent { node { label 'windows-agent' } }
environment { MY_CRE = credentials("2aee7e0c-a728-4d9c-b25b-ad5451a12d") }
parameters { // Jenkins parameter choice( name: 'REPO', choices: ['repo1', 'repo2', 'repo3', 'repo4'], description: 'Required: pick a repo you want to build') string( name: 'BRANCH', defaultValue: '', description: 'Required: chose a branch you want to checkout') string( name: 'BUILD_NO', defaultValue: '', description: 'Required: input build number') string( name: 'JIRA_NO', defaultValue: '', description: 'Optional: input jira ticket number for commit message') }
stages { stage("Are you sure?"){ steps{ // make sure you want to start this build input message: "${REPO}/${BRANCH}:${BUILD_NO}, are you sure?" echo "I'm sure!" } } stage('Git clone repos') { steps { // git clone one repo source code checkout([ $class: 'GitSCM', branches: [[name: 'refs/heads/${BRANCH}']], browser: [$class: 'GitHub', repoUrl: 'https://github.com/${REPO}'], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CleanBeforeCheckout'], [$class: 'LocalBranch', localBranch: '**'], [$class: 'RelativeTargetDirectory', relativeTargetDir: '../${REPO}']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '2aee7e0c-a728-4d9c-b25b', url: 'https://github.com/${REPO}.git']]])
// git clone another repo source code checkout([ $class: 'GitSCM', branches: [[name: 'refs/heads/${BRANCH}']], browser: [$class: 'GitHub', repoUrl: 'https://github.com/${REPO}'], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CleanBeforeCheckout'], [$class: 'LocalBranch', localBranch: '**'], [$class: 'RelativeTargetDirectory', relativeTargetDir: '../${REPO}']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '2aee7e0c-a728-4d9c-b25b', url: 'https://github.com/${REPO}.git']]]) } } stage('Build repo1 and repo2') { when { // if REPO=repo1 or REPO=repo2, execute build_repo12.sh anyOf { environment name: 'REPO', value: 'repo1' environment name: 'REPO', value: 'repo2' } } steps { sh label: '', script: '${REPO}/build_repo12.sh ${REPO} ${BUILD_NO} ${JIRA_NO}' } } stage('Build repo3 and repo4') { when { // if REPO=repo3 or REPO=repo4, execute build_repo34.sh anyOf { environment name: 'REPO', value: 'repo3' environment name: 'REPO', value: 'repo4' } } steps { sh label: '', script: '${REPO}/build_repo34.sh ${REPO} ${BUILD_NO} ${JIRA_NO}' } }
stage('Git push to remote repo') { steps { // commit code to remote repo sshagent(['2aee7e0c-a728-4d9c-b25b']) { sh "git push https://%MY_CRE_USR%:%MY_CRE_PSW%@github.com/${REPO}.git" } } } } }
|