尝试使用Jobs-dsl编写DSL Jenkins管道作业,并且不确定我是否遇到了一些管道作业限制或缺少更基本的内容。
1-使用configure块在“其他行为”下配置“轮询忽略某些路径中的提交”似乎在管道作业中未按预期工作;我已经测试过,并且此配置块在自由式作业dsl中按预期工作。已搜索且找不到任何相关内容-有人可以确认以下管道作业中是否支持以下内容?
pipelineJob("ProjA/pipeline")
{
logRotator
{
daysToKeep 10
numToKeep 30
}
definition
{
cpsScm
{
scm
{
git('git@github.com:sample-org/pipeline.git', '*/develop')
}
configure { gitScm ->
gitScm / 'extensions' << 'hudson.plugins.git.extensions.impl.PathRestriction' {
excludedRegions('sample/dirs')
}
}
}
}
}
2-如何将凭据传递到管道下scm块下的git?适用于自由式工作,但无法在这里工作
谢谢。
答案 0 :(得分:1)
常规管道的仅供参考
使用引用git plugin step的凭据进行Git结帐:
stage('checkout') {
git credentialsId: '<credentialsID from credentials plugin>',
url: 'git@repository.foo/repoName.git',
branch: 'master'
}
Reg。 scm plugin step
stage('checkout') {
checkout scm: [$class: 'GitSCM',
userRemoteConfigs: [[url: 'https://repository.foo/git/fooRepoName.git' ,
credentialsId: 'credentialsIDToUseFromCredentialsPlugin']],
branches: [[name:'refs/tags/TAGNAME']]],
poll:false
}
stage('checkout') {
checkout scm: [$class: 'GitSCM',
userRemoteConfigs: [[url: 'https://repository.foo/git/fooRepoName.git' ,
credentialsId: 'credentialsIDToUseFromCredentialsPlugin']],
branches: [[name:'BRANCHNAME']]],
poll:false
}
而且我从不寻找民意测验是否有效
答案 1 :(得分:1)
内置DSL仅支持基本选项。但是Dynamic DSL支持几乎所有选项。
pipelineJob('example') {
definition {
cpsScmFlowDefinition {
scm {
gitSCM {
userRemoteConfigs {
userRemoteConfig {
url('git@github.com:sample-org/pipeline.git')
name('master')
refspec(null)
credentialsId('example')
}
}
branches {
branchSpec {
name('*/develop')
}
}
extensions {
pathRestriction {
includedRegions(null)
excludedRegions('sample/dirs')
}
}
doGenerateSubmoduleConfigurations(false)
browser {}
gitTool(null)
}
}
scriptPath('Jenkinsfile')
}
}
}