我正在尝试完成一个Python项目的管道,该项目需要一个在本地bitbucket服务器上的私有git存储库。要安装存储库,我通常会使用pip install git+ssh://git@dcsva:7999/aut/qa-selenium-framework.git@master
(在Windows 2012 R2上)。
我已经设置了SSH密钥,并且可以使用命令行将其安装在我的计算机和目标计算机上,但是我正在努力在管道中执行此操作,这是我当前的代码:
stage('Build') {
steps {
echo "Running ${env.BUILD_ID} on ${env.JENKINS_URL}"
git credentialsId: 'e9d9d25a31f8', url: 'ssh://git@dcsva:7999/aut/my-project.git'
powershell label: '', script: 'python -m pip install --upgrade pip setuptools wheel'
powershell label: '', script: 'python -m venv venv'
powershell label: '', script: 'venv\\Scripts\\activate'
powershell label: '', script:'python -m pip install --upgrade pip'
powershell label: '', script: 'pip install .'
withCredentials([sshUserPrivateKey(credentialsId: 'e9d9d25a31f8', keyFileVariable: 'MY_VAR', passphraseVariable: '', usernameVariable: '')]) {
powershell label: 'install qa framework', script:'pip install git+ssh://git@dcsva:7999/aut/qa-selenium-framework.git@master'
}
}
}
我收到错误
[Pipeline] withCredentials
Masking supported pattern matches of %MY_VAR%
...
java.io.IOException: CreateProcess error=87, The parameter is incorrect
...
Caused: java.io.IOException: Cannot run program "powershell" (in directory "C:\Jenkins\workspace\SEL"): CreateProcess error=87, The parameter is incorrect
因此,我似乎无法在withCredentials
内运行Powershell。如上所述,如果我直接使用powershell运行命令,则会收到公钥错误。即使自己在Jenkins机器上运行命令也可以正常工作。这项工作也和我一样进行,所以我不确定这里出了什么问题。
更新 我也尝试过使用sshagent,但出现错误:
[ssh-agent]寻找ssh-agent的实现... 找不到ssh-agent:IOException:无法运行程序“ ssh-agent”:CreateProcess错误= 2,系统找不到指定的文件 检查ssh-agent是否已安装并且在PATH中
我已经看到了this问题,并按照系统答案中的说明添加了路径,我也尝试了自己的路径并尝试在管道中设置路径,但是我总是收到错误:(
withEnv(["PATH=${env.PATH};C:\\Program Files\\Git\bin;C:\\Program Files\\Git\\usr\\bin;C:\\Program Files\\Git\\mingw64\\bin;"]) {
sshagent(credentials: ['e9d9d25a31f8'] ) {
sh 'pip install git+ssh://git@dcsvazdisalm:7999/aut/qa-selenium-framework.git'
}
}