Передача конфигурации в трубопровод Дженкинса - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь найти способ передать конфигурацию для задания многоуровневого конвейера в файл jenkins при его выполнении.

Моя цель - настроить что-то вроде следующего:

Branch : Server
"master" : "prodServer"
"develop" : "devServer"
"release/*", "hotfix/*" : "stagingServer"
"feature/Thing-I-Want-To-Change-Regularly" : "testingServer"

где я могу написать файл Jenkinsfile следующим образом:

pipeline {
    agent any
    stages {
        stage('Example Build') {
            steps {
                echo 'Hello World'
            }
        }
        stage('Example Deploy') {
            when {
                //branch is in config branches
            }
            steps {
                //deploy to server
            }
        }
    }
}

У меня проблемы с поиском способа добиться этого. Плагин EnvInject кажется решением для не-Pipeline проектов, но в настоящее время у него есть проблемы с безопасностью и только частичная поддержка Pipeline.

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Собираюсь опубликовать мой текущий лучший подход к глобальному значению конфигурации и надеюсь, что придет что-то лучшее.


В Управление Jenkins -> Настройка системы -> Глобальные свойства вы можете определить глобальные переменные среды, к которым можно обращаться из заданий Jenkins. Определение переменной MY_BRANCH , доступ к которой можно получить из конвейера.

when { branch: MY_BRANCH }

Или даже RegEx и используется таким образом

when { expression { BRANCH_NAME ==~ MY_BRANCH } }

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

0 голосов
/ 02 мая 2018

Если вы хотите развернуть на разных серверах, в зависимости от филиала, в Multichranch Pipelines вы можете использовать:

when { branch 'master' } (декальтрация)

или

${env.BRANCH_NAME} (по сценарию)

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

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