Development

Automatizando a versão de gerenciamento do Jira

Na Infobip, usamos a versão de gerenciamento Project no JIRA para rastrear alterações nos serviços e o Stash o controle de versão.

February 19 2016

Na Infobip, usamos a versão de gerenciamento Project no JIRA para rastrear alterações nos serviços e o Stash o controle de versão. No início, criamos cada versão manualmente, geralmente, logo após a implantação. Essa era uma tarefa repetitiva, que incluia a inspeção manual das confirmações no controle de versão, a criação de uma versão no JIRA e a associação de problemas com a versão. Essa foi uma oportunidade clara para automação!

Analise o seu fluxo de trabalho

Para automatizar este processo, precisamos analisar as etapas manuais e detectar os padrões mais comuns. Por exemplo, vamos imaginar que temos um projeto feito em Java e que usa o Maven. A confirmação do registro depois de um disparo pode aparecer da seguinte forma:

A primeira e última confirmações são de disparo e contêm o número de versão. As confirmações entre as confirmações de disparo possuem chaves de emissão em suas mensagens (que o próprio Stash marca nas guias de emissão). Um usuário que queira criar uma versão no JIRA, criará uma nova versão com o valor 1.1.0 e vinculará as emissões MTP-1, MTP-2 e MTP-3 para essa versão, resultando em:

Toda a informação necessária para detectar o momento do disparo, o número da versão e as emissões na versão pode ser encontrada nas mensagens de confirmação. Este padrão de lógica pode ser extraído em um algoritmo, que surge na confirmação:

1. Se a mensagem de confirmação não estiver associada ao padrão de confirmação de disparo, não há disparo.
2. Extraia a versão da mensagem de confirmação inicial.
3. Para cada confirmação posterior a primeira, realize o seguinte procedimento: a. Interrompa, se a mensagem de confirmação não estiver associada ao padrão de confirmação de disparo b. Extraia as chaver de emissão
4. Crie uma versão no JIRA com o valor da versão extraída.
5. Vincule as emissões extraídas com a versão criada.

Criador de versão do JIRA

O criador de versão do JIRA é um hook plugin aberto do Stash que usa a API REST do JIRA para automatizar o algoritmo descrito anteriormente, utilizando alguns recursos adicionais para otimizar o processo de automação.

Atualmente, para instalar o plugin, você precisa baixar o plug-in jar no Maven Central e instalá-lo no Stash. Com sorte, um dia disponibilizaremos esse plugin no mercado oficial de plugins , Atlassian, para que o processo de instalação seja mais transparente para o usuário.

Após a instalação, o plugin precisa ser ativado por repositório. Depois da ativação, a janela pop-up de configurações aparecerá dessa forma:

O único parâmetro necessário nas configurações é o principal do JIRA project, que deve ser autoexplicativo.

O parâmetro de prefixo da versão Jira define um prefixo que será aplicado em cada versão gerada no JIRA. Isso pode ser útil se você tiver um JIRA project e vários artefatos/repositórios para esse project.

O padrão de versão de confirmação do disparo é o último parâmetro que pode ser usado para definir o regex usado para capturar o padrão de confirmação da versão. O valor padrão usa o padrão do Plugin Maven de Disparo, pressupondo que o projeto tenha o mesmo nome que o artefato.

Conclusão

Sempre que você perceber que o trabalho que está fazendo é repetitivo e simples, considere a sua automatização para facilitar e agilizar a carga de trabalho.

O criador de versão JIRA é um exemplo de como isso pode ser feito em uma pequena parte do processo de desenvolvimento. Desde a instalação, o criador de versão JIRA ajudou várias equipes a reduzir parte do seu trabalho entediante, durante os processos de disparo e implantação. Isso inclui as equipes que não estão usando Maven ou Java.

Por Lovro Pandzic - Engenheiro de Software/Líder de Equipe