Alterando o número da compilação Jenkins

142

Existe uma maneira de alterar o número da compilação que é enviado por email após a conclusão de um trabalho? O problema é que as compilações de produtos NÃO estão sendo feitas pelo Jenkins, portanto, queremos poder obter o número da compilação (ou seja, de um arquivo de texto) e atualizar o número da compilação no Jenkins para corresponder a ele. Eu tentei definir o número da compilação:

set BUILD_NUMBER=45

Mas o email ainda mostra o número da compilação que Jenkins definiu originalmente.

erman8
fonte

Respostas:

259

Se você tiver acesso ao console de script (Manage Jenkins -> Script Console), poderá fazer o seguinte:

Jenkins.instance.getItemByFullName("YourJobName").updateNextBuildNumber(45)
l8nite
fonte
7
Posso verificar se isso funciona perfeitamente para resolver o problema. Copiei manualmente o histórico de compilação entre dois servidores jenkins e, no novo servidor, nextBuildNumber estava errado. A execução disso permitiu definir um novo nextBuildNumber correto, sem necessidade de recarregar a configuração de jenkins.
Phil Hollenback
5
Se você estiver usando o plugin GitHub, "YourJobName"é "organization/repository/branchname".
Ruud
15
Trabalho. O valor pode ser verificado sem construção usando:Jenkins.instance.getItemByFullName("YourJobName").getNextBuildNumber()
Daniel Alder
7
Posso confirmar que isso também está funcionando para Pipeline MultiBranch. O "JobName" está listado no topo da página ramo: nome do projeto completa: PipelineName/BranchNamepor isso seriaJenkins.instance.getItemByFullName("YourPipelineName/YourBranchName").updateNextBuildNumber(45)
Markus
37

Pode ser feito com o plugin: https://wiki.jenkins-ci.org/display/JENKINS/Next+Build+Number+Plugin

mais informações: http://www.alexlea.me/2010/10/howto-set-hudson-next-build-number.html

se você não gosta do plugin:

Se você deseja alterar o número da compilação pelo arquivo nextBuildNumber, deve "Recarregar configuração do disco" na página "Gerenciar Jenkins".

mighq
fonte
2
Não há necessidade de usar o plugin.
David.perez
1
Obrigado, você salva meu dia.
Yukio Fukuzawa
29

Sob a pasta da área de trabalho, como:

C:\Program Files (x86)\Jenkins\jobs\job_name

há um arquivo chamado nextBuildNumber.

Definir o número da compilação no arquivo e recarregar a configuração do disco (menu Gerenciar Jenkins) forçará a próxima compilação a começar a ter o valor do arquivo como BUILD_NUMBER.

vezenkov
fonte
9
Você recarregou a configuração do disco (menu Gerenciar Jenkins) após alterar o arquivo nextBuildNumber?
vezenkov 17/09/2015
Não! Eu pensei que isso acontecesse automaticamente.
Hfossli 18/09/2015
Isso funcionou perfeitamente para mim. Você precisa reiniciar o servidor antes que ele entre em vigor.
Hawkeye64
Ter que reiniciar o servidor é uma dor se você tiver muitos usuários executando o pipeline. Melhor evitar esse tipo de solução
MorganGeek 25/02
8

Se você tiver o nome da ramificação, incluindo a Barra Invertida (usando o fluxo git, por exemplo), será necessário substituir a Barra Invertida por seu caractere Unicode % 2F no nome da ramificação.

Aqui está um exemplo para o pipeline My-Pipeline-Name e o release da filial / my-release-branch-name

Jenkins.instance.getItemByFullName("My-Pipeline-Name/release%2Fmy-release-branch-name").updateNextBuildNumber(BUILD_NUMBER)

Consegui descobrir isso executando o seguinte comando, que listará os diferentes trabalhos (ramificações) do seu pipeline

Jenkins.instance.getItem("My-Pipeline-Name").getAllJobs()

Espero que ajude.

DaWyz
fonte
1

Você pode alterar o número da compilação atualizando o arquivo $ {JENKINS_HOME} / jobs / job_name / nextBuildNumber no servidor Jenkins.

Você também pode instalar o plug-in Next Build Number plugin para alterar o número da build usando CLI ou UI

Pradip sakhavala
fonte
Observe que alterar o número da compilação no arquivo nextBuildNumber por si só não é suficiente, é necessário executar a "Recarregar configuração do disco" no menu "Gerenciar Jenkins".
falstaff
-4

Usando variáveis ​​ambientais:

$BUILD_NUMBER =4
ksr
fonte
2
Por favor, não grite. Obrigado.
OliBlogger