Pergunta

Plano de fundo. Meu org usa Maven, Bambu e Artifactory para oferecer suporte a um contínuo processo de integração.Dependemos do Maven INSTANTÂNEO qualificador para ajudar a gerenciar o armazenamento no Artifactory (girar para fora de SNAPSHOT cria) e também para ajudar a manter a equipe de integrações atual (Maven verifica se há atualizações para o INSTANTÂNEO de dependências automaticamente em cada compilação).

Problema. Um dos desafios que estamos tendo, é em torno corretamente promoção constrói a partir de um ambiente para outro, enquanto continuam a usar o SNAPSHOT.Dizer que um testador implanta versão 1.8.2-INSTANTÂNEO de um ambiente de teste funcional, e em rev 1400 no Subversion.Suponhamos também que ele passa de um teste funcional.No momento em que um testador decide puxar 1.8.2-INSTANTÂNEO de Artifactory para o ambiente de teste de desempenho, um desenvolvedor poderia ter cometido uma mudança para o Subversion, então o binário real no Artifactory é diferente rev.Como podemos garantir que o rev não muda debaixo de nós, quando usando o SNAPSHOT cria?

Restrições. Nós, obviamente, não quer implantar versões diferentes, sem saber.Nós também não queremos reconstruir a partir do código fonte como queremos testar a binária exata no teste de desempenho que testamos em testes funcionais.

Abordagens temos considerado. O pensamento é o que queremos para carimbar as versões com um quarto componente, como 1.8.2.1400, onde o quarto componente é uma Subversão rev.(Como uma pergunta, existe um Maven plugin ou algo a mais que faz isso automaticamente?) Mas se o fizermos, então, essencialmente, perdemos o recurso de INSTANTÂNEO desde o Maven e Artifactory acho que essas são versões diferentes.

Estamos usando Scrum, então utilizamos para os ambientes de teste muito cedo (como o dia dois ou assim).Eu não acho que faça sentido para remover o INSTANTÂNEO qualificador que no início da dev ciclo porque perdemos o INSTANTÂNEO benefícios de novo.

Gostaria de saber como outras organizações a resolver este problema.

Foi útil?

Solução

Apenas para circular de volta a este, eu queria compartilhar o que estamos fazendo.

Basicamente, implantamos o instantâneo construa como 1.8.2-instantâneo no ambiente de desenvolvimento.Nenhuma outra equipe precisa usar essas construções, então é bom deixar -snapshot neles.

Mas qualquer compilação que implantamos em um ambiente de teste (por exemplo, teste funcional, teste do sistema) ou mais a produção deve incluir a revisão;por exemplo, 1.8.2.1400.Chamamos esses "quads".A razão para insistir em quads no teste é que podemos anexar problemas (recursos, correções, etc.) para revisões específicas para que os testadores saibam o que testar.Para a produção é realmente só porque queremos implantar exatamente o mesmo artefato que testamos, então isso significa que estamos implantando um quad.

De qualquer forma, espero que a informação seja útil para alguém.

Outras dicas

Se você habilitar "Uniqueversion" para você Builds Snapshot, cada instantâneo implantado terá um ID exclusivo.Você pode usar isso para garantir que você esteja implantando corretamente promovem as construções entre ambientes.

e, como uma nota lateral, você pode usar o plugin BuildNumber-Maven para adicionar buildnumbers subversion aos artefatos.

Em vez de incorporar o número de compilação de VCS revisão no artefato de versão, podemos incorporar a CI número de compilação no META-INF/MANIFEST-MF arquivo .

Ver, por exemplo, Utilizando Hudson, em variáveis de ambiente para identificar a sua cria .Embora o artigo é aplicável para Jenkins/Hudson eu acredito que é trivial para a porta de Bambu.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top