Pergunta

Estou tentando configurar o Hudson para poder implantar automaticamente uma compilação (um arquivo .war) no tomcat. A compilação recém -implantada será usada por alguém para testar o aplicativo.

Tentei usar o plug -in de implantação para implantar automaticamente o arquivo .war e isso funciona. No entanto, o trabalho que constrói o arquivo .war será executado após cada alteração do SCM (sempre que o código for comprometido). Com o plug -in de implantação, o arquivo .war seria implantado no Tomcat toda vez que uma compilação é feita. Como o código é cometido com frequência, isso significa que o aplicativo da Web também será reiniciado com frequência, e isso interromperá o processo de teste.

Agradeço o fato de Hudson administrar meus testes de unidade e fazer uma construção regularmente, por isso não quero mudar os gatilhos para este trabalho.

Estou procurando uma maneira de decidir manualmente implantar de dentro de Hudson. Tentei criar um trabalho separado que implantaria o .war desde o primeiro trabalho, mas isso não funcionou. Alguém tem alguma experiência em definir algo assim?

Foi útil?

Solução

Como obter os artefatos

Olhe para a seção "Como reverter ou reimplementar uma construção anterior" no Página de plug -in de implantação. Ele descreve a ideia básica. Ele usa o Copie o plugin Artifact Para copiar os artefatos do trabalho de construção para o seu trabalho atual (o trabalho de implantação). A partir daí, você faz o mesmo que fez em sua etapa de construção.

Como acionar a implantação

O trabalho de construção não pode ser acionado após o início da implantação para que primeiro uma compilação seja executada e que o trabalho de implantação. Então, existem poucas opções:

  • gatilho manualmente a construção. O usuário que inicia a implantação precisa selecionar uma execução específica do trabalho de construção.
  • implantação programada Isso pode fazer parte das tarefas noturnas. O trabalho é acionado em um determinado intervalo (como todas as noites ou todo fim de semana). Como é automatizado, o trabalho de implantação deve pegar a última compilação bem -sucedida (você não precisa de um trabalho parametrizado). Você não tem a chance de passar em um número de execução.
  • O trabalho de implantação recebe acionado toda vez que uma construção termina bem -sucedida (não se encaixa nos seus requisitos, mas listado para concluir a lista)
  • Algum outro gatilho (esotérico). Isso pode ser muitos pensamentos diferentes, por exemplo, remotamente desencadeados chamando o URL de construção. A chamada pode vir de um dos seus systen de ingressos, sistema de gerenciamento de laboratório de teste ou qualquer outro sistema que você quiser. Você também pode acionar a implantação, por alterações específicas em seu sistema de controle de origem, como alterar o número de liberação (por exemplo, marcada por uma palavra -chave na mensagem de confirmação). Esse gatilho pode ser implementado dentro ou fora do Hudson. Existem outros gatilhos disponíveis também. Isso inclui, mas não se limita à alteração da página HTML, altere em uma parte monitorada do sistema de arquivos, mensagem IM, email. Os três primeiros são implementados por um plug -in Hudson. Dê uma olhada na lista de plug -in, para saber o que está evolutável ou nos dois casos, você precisa garantir que o trabalho de criação de trabalhos todos os artefatos necessários para a implantação.

Outras dicas

Eu tenho vários empregos de Hudson por projetos:

  1. Um trabalho principal que apenas constrói o projeto e executa os testes. Se for bem -sucedido, lança os seguintes trabalhos:
  2. Um trabalho de métricas de código (PMD, FindBugs, Cobertura, Checkstyle, também geração Javadoc) e
  3. Um trabalho de implantação que constrói o projeto usando mvn package -DskipTests e implanta a guerra no tomcat

Acho que separar essas coisas facilitou, apenas o primeiro trabalho escuta as alterações do SCM.

No entanto, outra maneira seria deixar o terceiro trabalho também ouvir o SCM (mas com um intervalo mais longo, talvez uma hora).

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