Я использую новый DSL-порт DSL, который мне очень нравится. Мой Jenkinsfile
, вероятно, довольно типичен и компилирует/модулирует код кода в ветке master
GIT, используя maven, выполняет сборку докеров, развертывается на этапе постановки и т. Д. В конце конвейера есть ручной шаг, когда пользователь должен подтвердить, сборка идет на производство, напримерТруба Дженкинса DSL автоматически отменяет вход
stage name: 'Production Deploy', concurrency:1
input 'Do you want to deploy to production?'
node {
sh "./bin/production-deploy.sh"
}
Однако блокировка блоков до тех пор, пока кто-либо не примет/отклонит. Есть ли способ автоматически отклонить input
, если кто-то ударит по строительству (путем слияния кода с веткой master
)?
Отделите трубопровод CI конвейера CD. В конвейере CI вы создаете, тестируете, развертываете с этапа разработки на этап, кто-то проверяет развертывание промежуточной части, а на втором этапе вы запускаете конвейер DC, когда вы развертываете его на стадии разработки. таким образом, у вас есть независимый процесс развития жизненного цикла и независимый процесс доставки. – johnnynemonic
Вы предлагаете 2 трубопровода для каждого проекта? Это лучший способ сделать это? Я подумал (прочитав книгу «Непрерывная доставка» http://martinfowler.com/books/continuousDelivery.html), что вы хотите, чтобы все этапы (компиляция -> постановка -> QA -> и т. Д.)> Производились в одном конвейере сборки – bobmarksie
в вашем случае, да. В случае, если книга предлагает, хорошо, когда у вас весь процесс автоматизирован, и нет пауз или человеческих взаимодействий. И вы реализуете в своей инфраструктуре некоторые материалы, такие как сине-зеленые развертывания, которые позволяют проверить развертывание в узле aVM, в то время как другому узлу VM предоставляется производственный сервис. – johnnynemonic