Na integração contínua que é a melhor maneira de lidar com dependências de aplicativos externos

StackOverflow https://stackoverflow.com/questions/119724

Pergunta

No uso do nosso servidor de integração contínua TeamCity nós descobrimos algumas questões que não temos certeza quanto à melhor maneira de lidar com. Ou seja, como fazer referência a aplicações externas que a nossa aplicação requer no servidor de CI.

Este foi inicialmente descoberto com uma dependência em Crystal Reports, então fomos e instalado o Crystal Reports no Servidor de corrigir o problema imediato. No entanto à medida que avançamos mais aplicações para o servidor CI nós estamos encontrando mais dependências.

Qual é a melhor estratégia aqui? É para continuar a instalar os aplicativos necessários no servidor?

Graças

Foi útil?

Solução

Sempre que possível fazer a dependências externas parte do seu sistema de compilação. Por exemplo verificar o instalador no seu sistema de controle de versão e tem um passo que verifica-lo e executá-lo em modo silencioso (muitos instaladores apoiar um modo com nenhuma ação do usuário, por vezes, usando a linha de comando / s).

Desta forma, se você precisa configurar outra máquina de compilação para um ramo ou apenas para um novo hardware tudo é repetível.

Outras dicas

Se o seu constrói exigem a aplicação real para completar a construção, então você provavelmente deve continuar a instalar o aplicativo em seu servidor de compilação.

Se você só precisa de referências a DLLs ou conjuntos da aplicação, então o que temos feito na minha empresa é criar 'SDKs' instaláveis ??das referências necessárias para uma applicatoin particular e instalá-los em nossas máquinas de desenvolvimento e construir em bem conhecido diretórios de bibliotecas que a referência nossas soluções.

Na máquina de construção, os nossos passos pré-compilação instalar a versão correta das dependências e, em seguida, limpá-los quando terminar.

Recentemente, mudamos a utilização de máquinas virtuais para nossas máquinas que o nosso processo de construção ativa. Estas VMs obter os SDKs instalados neles como uma pré-compilação, em seguida, são restaurados ao seu estado snap-tiro após a compilação. Tivemos algumas dependências que eram quase impossíveis de desinstalação, por isso fez um ponto de partida limpa de cada vez.

Se você usar Maven para construir, você pode definir suas dependências no arquivo pom.xml. Eles, então, ser baixado automaticamente, se necessário.

Eu não tenho certeza se eu tivesse seguido corretamente ...

Estou assumindo sua aplicação é dependente deste aplicativo externo, enquanto edifício? Nesse caso, ele deve estar na máquina fazendo CI ...

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