Gatilho Paramerizado de Jenkins + Artefato de Cópia


9

Estou trabalhando na configuração do Jenkins para lidar com nossas compilações de lançamentos. Uma versão compilada consiste em um instalador do Windows que inclui alguns binários que devem ser criados no Linux.

Aqui está o que eu tenho até agora:

  • A parte do Windows e a parte do Linux são configuradas como projetos Jenkins separados.
  • O projeto do Windows é parametrizado, levando a tag Subversion para criar e liberar.
  • Como parte de sua compilação, o projeto Windows aciona uma compilação da mesma tag Subversion para o projeto Linux (usando o plug-in Parameterized Trigger ) e copia os artefatos do projeto Linux (usando o plug-in Copy Artifact ) para a área de trabalho do projeto Windows. eles podem ser incluídos no instalador do Windows.

Onde estou parado: No momento, o Copy Artifact está configurado para copiar a última compilação bem-sucedida. Parece mais robusto configurar o Copy Artifact para copiar a partir da compilação exata que o Parameterized Trigger disparou, mas estou tendo problemas para descobrir como fazer isso funcionar. Há uma opção para um parâmetro "seletor de compilação" que acho que se destina a ajudar com isso, mas não consigo descobrir como ele deve ser configurado (e experimentar cegamente com diferentes possibilidades é algo doloroso quando a compilação leva uma hora ou dois para encontrar sucesso ou fracasso).

Como devo configurar isso? Como o seletor de compilação funciona?

Respostas:


11

Depois de concluir uma compilação acionada, você terá uma nova variável env definida para o número da compilação acionada chamada TRIGGERED_BUILD_NUMBER_ <job name>. Você pode usar isso para copiar especificamente os artefatos:

  1. A compilação do Windows (chamada " WindowsBuild "), chama a compilação do Linux (chamada " LinuxBuild ") usando o plug-in Parameterized Trigger.

    Você tem essa parte, apenas verifique Bloquear até que os projetos acionados concluam suas construções e falhem naturalmente, se a construção do Linux falhar.

  2. Em seguida, em Copiar artefatos de outra etapa do projeto :

    Nome do projeto: LinuxBuild

    Qual build: Build específico

    Número da compilação: $ TRIGGERED_BUILD_NUMBER_LinuxBuild (Todos os nomes de projetos têm caracteres que não são a-zA-Z ou 0-9 substituídos por _; vários caracteres são condensados ​​em um único _).


a variável de ambiente "$ TRIGGERED_BUILD_NUMBER_ <downstreamjob>" deve ser definida manualmente? Não consigo encontrá-lo em nenhuma das variáveis ​​de ambiente upstream ou downstream.
26 de

11
Encontrado no wiki do plug-in que $ TRIGGERED_BUILD_NUMBER_ <jobstream> é definido automaticamente se "Bloquear até que os projetos acionados concluam suas compilações" esteja marcado.
26 de
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.