ブランチのジョブを作成する方法を詳しく説明しているwikiに実際の例があります。
def project = 'Netflix/asgard'
def branchApi = new URL("https://api.github.com/repos/${project}/branches")
def branches = new groovy.json.JsonSlurper().parse(branchApi.newReader())
branches.each {
def branchName = it.name
def jobName = "${project}-${branchName}".replaceAll('/','-')
job(jobName) {
scm {
git("https://github.com/${project}.git", branchName)
}
}
}
必要なことは、job
セクションをクロージャの外に移動しeach
、フォーク名を使用することです。
ssh とプライベート リポジトリに関するコメントについて。wikiのようにCredentials プラグインを使用して、ssh キーをスクリプトから除外することをお勧めします。
最初のオプションには、クレデンシャルを安全な方法で管理し、ジョブ DSL スクリプトが識別子によってクレデンシャルを参照できるようにするクレデンシャル プラグインが含まれます。資格情報をジョブ DSL スクリプトに渡す必要がないため、これは最も安全なオプションでもあります。
// use the github-ci-key credentials for authentication with GitHub
job('example-1') {
scm {
git {
remote {
github('account/repo', 'ssh')
credentials('github-ci-key')
}
}
}
}