Я пытаюсь написать JenkinsFile, который автоматически достигнет git репо через s sh и выполнит некоторые действия, но я хочу, чтобы репо и s sh ключевые переменные использовали с s sh id хранится в Jenkins, но мне кажется, что мне не хватает документации Jenkins о том, как передавать переменные в Jenkins Files, поскольку я не могу передавать значения в ключ учетных данных. Переменные, передаваемые командам sh, разрешаются отлично, хотя ...
Пример конвейера ниже:
pipeline {
parameters {
string(name: 'SSH_priv', defaultValue: 'd4f19e34-7828-4215-8304-a2d1f87a2fba', description: 'SSH Credential with the private key added to Jenkins and the public key to the username stored in Git Server, this id can be found in the credential section of Jenkins post its creation.')
string(name: 'REPO', defaultValue: 'git@--------------------')
}
stages {
stage ('Output Variables'){
// checks I can get these variables
steps{
sh("echo ${params.SSH_priv}")
sh("echo ${params.REPO}")
}
}
stage('Do Something') {
steps {
// this below commented line, does not work.
// sshagent (credentials: ['${params.SSH_priv}']){
// this line does work
sshagent (credentials: ['d4f19e34-7828-4215-8304-a2d1f87a2fba']){
sh("git clone --mirror ${params.REPO} temp")
dir("temp"){
// start doing fancy stuff ...
....
....
}
}
}
}
Целью является конвейер, который мои коллеги-разработчики могут вызвать и будут работать со своими собственными репозиториями и собственными s sh id, которые я не использую. Когда я пытаюсь запустить это с параметром SSH_priv, передавая значение, я получаю следующую ошибку в Jenkins.
The JenkinsFile works perfectly fine with the credential id hard-coded- as shown below:
Результат успеха