Конвейер Jenkins: совместно используемая библиотека не может разрешить credentialsId
Я хочу использовать разделяемую библиотеку в моем декларативном конвейере Jenkins. Библиотека предоставляет функции для извлечения информации из артефактных артефактов. Для этого я использую следующий код:
class ArtifactInfoResolver implements Serializable {
private org.jenkinsci.plugins.workflow.cps.CpsScript script
...
ArtifactInfoResolver(org.jenkinsci.plugins.workflow.cps.CpsScript script) {
this.script = script
}
void retrieveArtifacts(String url, String credentials, String repoName, String pathRegex) {
script.node {
script.withCredentials([script.usernameColonPassword(credentialsId: credentials, variable: 'USERPASS')]) {
String cmd = "curl " +
"-u ${USERPASS} " +
...
String responseJson = script.sh(returnStdout: true, script: cmd).trim()
...
}
}
}
}
}
}
Соответствующая часть декларативного конвейера:
pipeline {
...
stages {
stage('Gather information') {
steps {
script {
snapshotResolver = new ArtifactInfoResolver(this)
snapshotResolver.retrieveArtifacts(
"${env.RB_ARTIFACTORY_URL}",
'BuildUserCredentials',
"<repoName>",
"<pathRegex>")
...
}
}
}
...
}
}
Проблема в том, что retrieveArtifacts
метод не может не получить данный credentials
из Дженкинс Кейстор. USERPASS
переменная null
,