Estou tentando fazer algumas mudanças positivas na minha empresa e uma delas é implementar a integração contínua. Como desenvolvemos dispositivos móveis (iOS / Android), preciso de um IC que ofereça suporte aos dois tipos de projetos. Como você pode dizer, eu não sei muito sobre CI, mas pesquisei um pouco no Google e acho que Jenkins e Hudson são os dois mais populares.
Eu tenho perguntas em duas partes.
- Sua opinião sobre Jenkins?
- Existe uma maneira de a CI verificar se o projeto está sendo compilado com os
padrões de codificação (como acoplamentos soltos etc.)?
Respostas:
Primeiramente, você pode querer olhar para o TeamCity como outra opção para o seu servidor.
Na minha opinião (embora eu tenha um pouco menos de experiência com Jenkins do que com TeamCity), ambas são ferramentas excelentes e muito capazes - eu ficaria feliz em um ambiente usando qualquer uma delas.
Ok, para chegar à carne do problema ou seja
No nível mais fundamental, tudo o que um servidor de IC faz é executar um script e, em seguida, interpretar e apresentar os resultados da execução desse script - portanto, se você puder criá-lo, seu servidor de CI provavelmente poderá executá-lo e, se conseguir formatar a saída adequadamente, o servidor do IC provavelmente pode interpretar e relatar o resultado.
É claro que os principais servidores de compilação já são capazes de conversar / integrar-se a muitas ferramentas populares - então, na verdade, a questão se torna qual ferramenta você está usando para verificar seus padrões de codificação e isso se integra à sua escolha do servidor de CI.
Sim, o servidor de IC traz muito mais ao jogo em termos de automação do que apenas executar um script sem pensar - mas no final do dia é isso que está fazendo.
Só para esclarecer - eu sei que um servidor de compilação faz mais do que apenas executar scripts, é a automação do processo (e em particular a integração com o (D) VCS) que agrega valor - mas respondendo ao "o que eu preciso? um servidor de construção "pergunta a resposta é" um servidor e um script "tudo o resto flui a partir daí.
fonte
Eu apóio a recomendação do TeamCity - é um ótimo produto. Não consigo falar com o Android, pois não tenho tempo para sentar lá, mas consegui projetos iOS em execução no CI graças a dois artigos ( 1 2 ).
As partes mais complicadas realmente tinham a ver com o mac para executar a compilação automatizada com o chaveiro adequado e tal, para que você pudesse criar um aplicativo assinado que pudesse implantar em um iDevice em vez de apenas uma opção de emulador.
fonte
Configurei o servidor de compilação e os scripts de nossa empresa antes de usar o Jenkins, onde desenvolvemos aplicativos para iOS. Como muitos disseram, o servidor de CI é bem simples e eu gosto do Jenkins porque é de código aberto / gratuito e possui muitos plugins como publicar relatórios de cobertura ou integração ao github.
fonte