Como posso activar outra tarefa a partir de um 'pipeline' jenkins (jenkinsfile) com o 'Plugin' do GitHub Org?
Jenkinsfile
?
presumo que este trabalho seja outro repositório sob a mesma organização do github, um que já tem o seu próprio ficheiro Jenkins.
também quero fazer isto apenas se o nome do ramo for mestre, pois não faz sentido activar construções a jusante de quaisquer ramos locais.
actualização:
stage 'test-downstream'
node {
def job = build job: 'some-downtream-job-name'
}
Ainda assim, quando executado, recebo um erro.
Nenhum trabalho parametrizado chamado nome de alguma coisa encontradaTenho a certeza que este trabalho existe no jenkins e está sob a mesma pasta de organização que o actual. É outro trabalho que tem o seu próprio.
por favor, note que esta questão é específica do Plugin de organização do GitHub que cria e mantém empregos para cada repositório e ramo da sua organização do GitHub.
3 answers
Em primeiro lugar, é um desperdício de espaço executor embrulhar o Passo build
em node
. Seu executor upstream estará apenas sentado ocioso por nenhuma razão.
Em segundo lugar, a partir de um projecto multibranch, poderá usar a variável de ambiente BRANCH_NAME
para condicionar a lógica ao ramo actual.
Em terceiro lugar, o parâmetro job
tem um nome de trabalho absoluto ou relativo. Se você der um nome sem qualquer qualificação de caminho, que se referiria a outro trabalho na mesma pasta, que no caso de um projeto multibranch significaria outro ramo do mesmo repositório.
if (env.BRANCH_NAME == 'master') {
build '../other-repo/master'
}
Além do acima mencionado respostas: eu queria começar um trabalho com um simples parâmetro passado para um segundo gasoduto e encontrei a resposta no https://dzone.com/refcardz/continuous-delivery-with-jenkins-workflow.
Então eu usei:
stage ('Starting ART job') {
build job: 'RunArtInTest', parameters: [[$class: 'StringParameterValue', name: 'systemname', value: systemname]]
}
O comando {[[0]} em preparação está lá para despoletar outros trabalhos no jenkins.
O trabalho deve existir no Jenkins e pode ser parametrizado. Quanto ao ramo, acho que podes lê-lo do git.