来自参数的 freeStyleJob SCM 凭据不起作用
freeStyleJob SCM credential from parameters not working
我正在尝试使用一个简单的 FreeStyleJob SCM ,并从构建参数中设置 credentialId UUID。问题是,凭据似乎没有正确解析参数。
scm {
git {
remote {
github('${MY_REPO_HANDLE}', 'ssh')
credentials('${MY_REPO_CREDENTIALS}')
}
branch('${MY_BRANCH}')
}
}
我的MY_REPO_CREDENTIALS是一个简单的字符串参数
stringParam {
name("MY_REPO_CREDENTIALS")
defaultValue("teste-credential")
}
日志:
Warning: CredentialId "${MY_REPO_CREDENTIALS}" could not be found.
更新
这个 Jenkins 作业是由另一个使用 DSL 外部的 Jenkins 作业创建的。在简历中,当触发作业 1 时,将在詹金斯上创建作业 2。当我尝试使用 "$(不带 \) 时,作业将失败,因为作业 1 上下文中不存在此参数。
工作config.xml:
<scm class="hudson.plugins.git.GitSCM">
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<url>git@github.com:${MY_REPO_HANDLE}.git</url>
<credentialsId>${MY_REPO_CREDENTIALS}</credentialsId>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>${MY_BRANCH}</name>
</hudson.plugins.git.BranchSpec>
</branches>
<configVersion>2</configVersion>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<gitTool>Default</gitTool>
<browser class="hudson.plugins.git.browser.GithubWeb">
<url>https://github.com/${MY_REPO_HANDLE}/</url>
</browser>
</scm>
您可以切换到使用 "
而不是 '
,这样您就可以使用自动填充功能:
scm {
git {
remote {
github("${MY_REPO_HANDLE}", 'ssh')
credentials("${MY_REPO_CREDENTIALS}")
}
branch("${MY_BRANCH}")
}
}
最终的解决方案是在构建之前设置 ssh 代理,使用包装器:
wrappers {
sshAgent("${MY_REPO_CREDENTIALS}")
}
keepDependencies(false)
scm {
git {
remote {
github("${MY_REPO_HANDLE}", 'ssh')
}
branch("${MY_BRANCH}")
}
}
我正在尝试使用一个简单的 FreeStyleJob SCM ,并从构建参数中设置 credentialId UUID。问题是,凭据似乎没有正确解析参数。
scm {
git {
remote {
github('${MY_REPO_HANDLE}', 'ssh')
credentials('${MY_REPO_CREDENTIALS}')
}
branch('${MY_BRANCH}')
}
}
我的MY_REPO_CREDENTIALS是一个简单的字符串参数
stringParam {
name("MY_REPO_CREDENTIALS")
defaultValue("teste-credential")
}
日志:
Warning: CredentialId "${MY_REPO_CREDENTIALS}" could not be found.
更新
这个 Jenkins 作业是由另一个使用 DSL 外部的 Jenkins 作业创建的。在简历中,当触发作业 1 时,将在詹金斯上创建作业 2。当我尝试使用 "$(不带 \) 时,作业将失败,因为作业 1 上下文中不存在此参数。
工作config.xml:
<scm class="hudson.plugins.git.GitSCM">
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<url>git@github.com:${MY_REPO_HANDLE}.git</url>
<credentialsId>${MY_REPO_CREDENTIALS}</credentialsId>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>${MY_BRANCH}</name>
</hudson.plugins.git.BranchSpec>
</branches>
<configVersion>2</configVersion>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<gitTool>Default</gitTool>
<browser class="hudson.plugins.git.browser.GithubWeb">
<url>https://github.com/${MY_REPO_HANDLE}/</url>
</browser>
</scm>
您可以切换到使用 "
而不是 '
,这样您就可以使用自动填充功能:
scm {
git {
remote {
github("${MY_REPO_HANDLE}", 'ssh')
credentials("${MY_REPO_CREDENTIALS}")
}
branch("${MY_BRANCH}")
}
}
最终的解决方案是在构建之前设置 ssh 代理,使用包装器:
wrappers {
sshAgent("${MY_REPO_CREDENTIALS}")
}
keepDependencies(false)
scm {
git {
remote {
github("${MY_REPO_HANDLE}", 'ssh')
}
branch("${MY_BRANCH}")
}
}