Como posso activar outra tarefa a partir de um 'pipeline' jenkins (jenkinsfile) com o 'Plugin' do GitHub Org?

Como posso activar a construção de outro trabalho a partir de dentro do 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 encontrada

Tenho 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.

Author: sorin, 2016-03-30

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.

Então o que querias escrever era provavelmente
if (env.BRANCH_NAME == 'master') {
    build '../other-repo/master'
}
 77
Author: Jesse Glick, 2016-03-31 11:23:15

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]]
}
 61
Author: FrankIJ, 2016-12-27 08:53:56

O comando {[[0]} em preparação está lá para despoletar outros trabalhos no jenkins.

Exemplo no github

O trabalho deve existir no Jenkins e pode ser parametrizado. Quanto ao ramo, acho que podes lê-lo do git.
 16
Author: Flo, 2016-03-30 11:23:12