O Jenkins 2 possui oleodutos e um cidadão de primeira classe. No entanto, nos exemplos, as tarefas parecem ser executadas como uma única sequência:
node {
// Mark the code checkout 'stage'....
stage 'Checkout'
// Get some code from a GitHub repository
git url: '[email protected]:elifesciences/elife-bot.git'
// Mark the code build 'stage'....
stage 'Build'
echo "Unit tests will run here"
stage "Production"
echo "Deploying to production environment"
}
Para implantação no sistema de produção, geralmente é útil exigir aprovação manual; existe uma maneira de inserir um botão manual para pressionar dentro de um pipeline?
Estou procurando possíveis etapas para fazer isso nos documentos , sem sucesso.
input
etapa no pipeline que para e solicita entrada ao usuário (ou para abortar a compilação). No entanto, o palco e o indicador de status continua a piscar, enquanto eu queria um estado estável (por exemplo, você entrar em sexta-feira à tarde e decidir implantar na segunda-feira.)Respostas:
input é a opção que você está procurando. Aqui está o jeito que eu estou usando. É importante ter a etapa fora de um nó, caso contrário, o jenkins manterá um agente aguardando a próxima etapa. Lembre-se de que o segundo nó pode não usar o mesmo espaço de trabalho que o primeiro.
fonte
No final, criei pipelines
test-project
e separadosprod-project
, onde no final dotest-project
código é mesclado em umaapproved
ramificação.Em seguida, o
prod-project
pipeline pode ser configurado para não ser acionado para cada nova confirmação, para que possa ser implantado sob demanda.fonte
Além disso, você também pode adicionar o tempo limite automático, como abaixo
Se você procurar, também poderá vincular a entrada jenkins às credenciais dos usuários que acessam o Jenkins se desejar permitir que indivíduos específicos sejam capazes de responder - isso também é sustentado pelo fato de que seus controles Git também são suficientes.
fonte
Este é apenas um exemplo simples, mas você pode acioná-lo da maneira que precisar.
fonte
Eu fiz da maneira mostrada abaixo, lendo estes documentos https://jenkins.io/doc/book/pipeline/syntax/
fonte