Прочтите URL-адрес SVN из конфигурации задания jenkins из Jenkinsfile - PullRequest
0 голосов
/ 26 мая 2020

У меня есть задание конвейера Jenkins, которое настроено как «сценарий конвейера из SCM», указывающее на Jenkinsfile в SVN. Например, URL-адрес SVN: http://example.com/svn/myproject/trunk/ Мастер jenkins выполняет неглубокую проверку (только файлы root), а затем находит файл Jenkins в root.

Этот URL-адрес повторяется в файле Jenkins на этапе проверки рабочего пространства SVN на отдельном агенте jenkins.

Поэтому всякий раз, когда я клонирую задание jenkins для новой ветки, мне нужно исправить URL-адрес в двух разных местах: один раз в конфигурации задания jenkins, где он указывает на Jenkinsfile, и один раз в Jenkinsfile. Есть ли способ избежать этого, например, прочитав текущую конфигурацию задания из Jenkinsfile?

1 Ответ

0 голосов
/ 26 мая 2020

В конце концов, мне удалось получить URL-адрес SVN из конфигурации задания через глобальный scm, сохранить его в переменной среды SVNURL, а затем использовать на этапе оформления заказа вместо жесткого кодирования URL-адреса SVN.

stage('stage-name')
{
    steps
    {
        // Get the SVN URL from the pipeline job configuration
        script
        {
            env.SVNURL = scm.getLocations()[0].getURL()
        }

        checkout([
            $class: 'SubversionSCM',
            filterChangelog: false,
            ignoreDirPropChanges: false,
            locations:
                [[
                    credentialsId: '<guid>',
                    depthOption: 'infinity',
                    ignoreExternalsOption: false,
                    local: 'my-checkout-folder',
                    remote: env.SVNURL
                ]],
            workspaceUpdater: [$class: 'UpdateWithCleanUpdater']
        ])
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...