Skip to content

Instantly share code, notes, and snippets.

@xocasdashdash
Forked from HRMPW/jobdsl pipeline
Created April 6, 2017 13:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xocasdashdash/cd17bfa661fa7543a33cd80b3b54923a to your computer and use it in GitHub Desktop.
Save xocasdashdash/cd17bfa661fa7543a33cd80b3b54923a to your computer and use it in GitHub Desktop.
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