| pipeline { | |
| agent any | |
| parameters { | |
| string(defaultValue: '', description: 'The name of the organization working on this repository.', name: 'orgName') | |
| } | |
| stages{ | |
| stage("Create Repo Piplines") { | |
| steps { | |
| jobDsl scriptText: """ | |
| folder (orgName) | |
| def orgApi = new URL("https://api.github.com/users/${orgName}/repos") | |
| def repos = new groovy.json.JsonSlurper().parse(orgApi.newReader()) | |
| repos.each { | |
| def repo = it.name | |
| def project = "$orgName/\${repo}" | |
| folder("\${project}") | |
| multibranchPipelineJob("\${project}/Branches") { | |
| branchSources { | |
| github { | |
| scanCredentialsId("$orgName") | |
| repoOwner(orgName) | |
| repository(repo) | |
| } | |
| } | |
| } | |
| pipelineJob("\${project}/Deploy") { | |
| parameters { | |
| stringParam("DEPLOY_BRANCH") | |
| } | |
| definition { | |
| cpsScm { | |
| scm { | |
| git { | |
| branch('\${DEPLOY_BRANCH}') | |
| remote { | |
| github("\${project}") | |
| credentials("$orgName") | |
| } | |
| } | |
| } | |
| scriptPath('Jenkinsfile.deploy') | |
| } | |
| } | |
| } | |
| } | |
| """ | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment