É prática padrão ao configurar um servidor de Integração Contínua para criar uma versão Debug and Release de cada projeto? Na maioria das vezes, os desenvolvedores codificam com um conjunto de configurações do projeto no modo Debug ativado e pode haver diferentes configurações do caminho da biblioteca, definições do compilador ou outros itens configurados de maneira diferente entre o Debug / Release, o que os faria agir de maneira diferente.
Eu configurei meu servidor de IC para compilar a Depuração e a Liberação de cada projeto e estou me perguntando se estou pensando demais nele. Minha suposição é que eu farei isso desde que obtenha feedback rápido e, uma vez que isso aconteça, levarei o Release para uma compilação noturna, talvez. Existe uma maneira 'padrão' de abordar isso?
fonte
Respostas:
Construir as duas configurações não prejudicará, mas se você tiver que escolher (especialmente devido a restrições de tempo de construção), crie a configuração da versão.
Em última análise, você deseja criar, testar, empacotar e implantar a configuração que seus clientes usarão e encontrar quaisquer problemas antes dela.
fonte
Liberar apenas.
Suponha que os desenvolvedores façam builds de depuração de qualquer maneira e os piores erros sejam os 'funciona em depuração'. Quanto mais rápido você puder identificá-las e restringir as alterações que possam ter causado a eles, mais felizes serão todos!
fonte
Eu recomendo fortemente criar e testar ambos, se isso puder ser feito em uma noite.
fonte
Você deve construir tudo para o qual haja alguma chance de que não seja tentado por ninguém por algum tempo. O que significa que, se você tiver apenas um destino de construção, não precisará depurar em integração contínua, porque os desenvolvedores perceberão rapidamente. Porém, na maioria das vezes, existem vários componentes e os componentes que não estão sendo trabalhados no momento não serão criados pelos desenvolvedores, mas ainda poderão ser interrompidos por alterações no código comum. Nesses casos, você precisa criar todas as configurações para não encontrar a construção danificada quando precisar tocar nesses componentes.
Agora, muitas vezes, a criação de tudo em todas as configurações leva muito tempo; portanto, você não pode construir tudo após cada confirmação. Nesse caso, faça as configurações de liberação dos componentes mais importantes todas as vezes e adicione uma compilação noturna de tudo.
Atualmente, trabalho no projeto, onde temos a construção contínua, que controla o controle de versão a cada 10 minutos e mesmo que apenas as configurações selecionadas ainda possam demorar mais de uma hora após confirmações maiores. Do que temos a compilação noturna, que cria todos os componentes em todas as configurações e sempre faz uma compilação limpa, que leva cerca de 5 horas. Além disso, temos uma compilação semanal, que cria versões em todas as variantes personalizadas e leva mais do que um dia inteiro.
fonte
Depende do seu projeto. No meu projeto atual, construímos apenas depuração (e executamos testes de unidade) em cada confirmação, enquanto construímos a versão de lançamento como parte da "implantação de implantação".
Na última empresa em que trabalhei, tivemos alguns problemas com a versão de lançamento, trabalhando de maneira um pouco diferente, então criamos depuração e lançamento em todos os commit e executamos testes de unidade em ambos.
fonte