Конвейер Jenkins: совместно используемая библиотека не может разрешить credentialsId - PullRequest
0 голосов
/ 28 января 2019

Я хочу использовать разделяемую библиотеку в моем декларативном конвейере 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...