我试图逐步测试创建一个詹金斯管道作业的每一步。为此,我正在尝试首先为示例管道使用svn checkout进行测试。我添加了声明性管道并添加了svn checkout步骤。但是我收到如下错误,
svn: E215004: No more credentials or we tried too many times.
我添加了如下的管道作业,
pipeline
{
agent any
stages
{
stage ('Checkout')
{
steps
{
sh 'svn co http://192.168.16.174/repository/pipeline'
}
}
}
}
我的观察
根据我的观察,我没有在这里添加svn存储库凭据。我是詹金斯和CI / CD的新手。当我学习时,发现可以在jenkins中创建凭据,并且可以在此处引用该ID。但是我没有确切的添加方法。还有另一件事是,我计划将其添加到存储在存储库根目录中的Jenkinsfile中。
我的困惑
我是CI / CD的新手。我在这里与Jenkinsfile中的凭证有关的很多困惑。如果我走错了方向,请纠正我。有人可以帮我解决我的困惑吗?
答案 0 :(得分:0)
经过一番探索,我发现,需要使用jenkins的“ withCredentials”选项将创建的凭证绑定到uername和password变量。在阶段步骤中进行绑定之后,需要将用户名和密码变量与我们要使用“ sh”命令访问的SVN存储库URL一起使用。让我补充一下我在这里所做的事情,
pipeline
{
agent any
stages
{
stage ('Checkout')
{
steps
{
withCredentials([[$class: 'UsernamePasswordMultiBinding',
credentialsId: '<credential-ID>',
usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
sh "svn co url --username $USERNAME --password $PASSWORD"
}
}
}
}
}
然后将在控制台中获得如下所示的输出,如下所示,
Started by user admin
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node (hide)
Running on Jenkins in /var/lib/jenkins/workspace/kubernetes
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Checkout)
[Pipeline] withCredentials
Masking only exact matches of $USERNAME or $PASSWORD
[Pipeline] {
[Pipeline] sh
+ svn co 'url' --username **** --password ****
Checked out revision 1.
[Pipeline] }
[Pipeline] // withCredentials
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS