Можем ли мы использовать один файл jenkins для многоотраслевой круговой линии в jenkins, используя общие библиотеки? - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь написать jenkinsfile, который будет принимать данные из общих библиотек в jenkins для многоотраслевого конвейера, что-то вроде ниже: -

@Library('Template')_

if (env.BRANCH_NAME == 'master') {
    jenkins1(PROJECTNAME: 'test', GITURL: 'http://test/test.git')
    } else {
        jenkins2(PROJECTNAME: 'test1', GITURL: 'http:////test/test.git')
    }

, чтобы конвейер брал разделяемую библиотеку в зависимости от условия if, если ветвь является главной, если данные оператора должны работать или должны быть построены.

1 Ответ

0 голосов
/ 03 октября 2018

Да, это возможно.На самом деле мы используем многоотраслевой проект для тестирования наших изменений в нашей общей библиотеке таким образом.

Вам нужно использовать шаг library, чтобы загрузить библиотеку вместо @Library аннотации, например:

if (condition) {
    library(‘someLib@${env.BRANCH_NAME}’)
} else {
    library(‘someOtherLib’)
}

См. https://jenkins.io/doc/pipeline/steps/workflow-cps-global-lib/#library-load-a-shared-library-on-the-fly для всех деталей.

Кстати: Если вы планируете делать Pull Requests, вам может пригодиться также следующее сообщение: https://stackoverflow.com/a/51915362/4279361

...