Skip to content

Instantly share code, notes, and snippets.

@res0nat0r
Forked from HRMPW/jobdsl pipeline
Created February 4, 2019 01:35
Show Gist options
  • Save res0nat0r/fe090d6c1ccfdb9976bc26a5c6e1ec72 to your computer and use it in GitHub Desktop.
Save res0nat0r/fe090d6c1ccfdb9976bc26a5c6e1ec72 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