Use o VSTS para builds de CI do GitLab

Mais um post na interminável série “perguntas legais no Slack da Lambda3”:

@here é possível integrar o gitlab com o VSTS?
e usar os mesmos esquemas de build triggers e tals?

Sim, dá. Veja como.

Apesar de o GitLab não oferecer nenhum suporte nativo ao VSTS - e vice-versa - dá para configurar um build de CI assim mesmo.

O “truque” aqui reside no fato de que o VSTS permite fazer build de integração contínua de qualquer repositório Git remoto, mesmo sem uma integração nativa.

”, você pode perguntar, “então para quê precisamos de uma integração nativa?”.

Simples: Conveniência.

Provedores de código no VSTS

Atualmente, o VSTS oferece suporte nativo a três provedores de código: O próprio VSTS, GitHub e Bitbucket.

Tela de seleção dos provedores de controle de versão disponíveis para um build

Usar um dos provedores nativos (VSTS, GitHub, Bitbucket) é mais conveniente porque:

  1. O processo de conexão é simplificado;
  2. Eles suportam triggers de CI, notificando o VSTS sempre que um commit ocorre para podermos ter um build de integração contínua disparado automaticamente.

Além dos três, há outros dois provedores genéricos - um para Git, outro para Subversion. Por serem genéricos, eles têm suas limitações:

  1. Não temos um processo de conexão simplificado (sem OAuth ou algo parecido); e
  2. Não temos notificações de commit e, portanto, nada de triggers de CI.

Ué, sem trigger de CI? Então como faz?

Simples de novo: Polling.

Configurando um build de CI para o GitLab

Para começar a configuração de um build de CI para o GitLab, crie uma nova definição de build e adicione uma conexão ao GitLab:

Para configurar um build do GitLab, na aba Get Sources (1) selecione a opção Remote Repo (2) e então clique em Add connection (3)

Ao clicar em Add connection, preencha os dados da sua conexão:

Para criar uma conexão com o GitLab, escolha um nome amigável para a conexão (1), informe o URL de Clone do seu repositório (2), e então coloque suas credenciais de Git (3 e 4)

Com isso, já é possível ter builds manuais e agendados. Falta apenas a configuração necessária para que esse build possa ser também de integração contínua.

Na seção Triggers, faça a configuração para ativar a integração contínua. O que vai acontecer é que, a cada X segundos, o VSTS irá conectar-se ao repositório remoto (neste nosso exemplo, o do GitLab) e verificar se houve alguma mudança desde o último build. Se sim, ele dispara um build automaticamente.

Para configurar um build de CI para um repositório remoto genérico, habilite o trigger (1) informe o intervalo em segundos para que o VSTS verifique se houveram mudanças (2) e, opcionalmente, indique quais as branches que devem ser monitoradas (3)

O intervalo-padrão é de três minutos (180s). Ajuste esse valor de acordo com sua necessidade. Cuidado apenas para não colocar um intervalo muito pequeno para não onerar sua infraestrutura.

Mas para quê tudo isso? O GitLab já tem build automatizado próprio!

E por que não? ?

Brincadeiras à parte, vejo algumas possibilidade para alguém querer usar o build do VSTS ao invés do nativo do GitLab:

  1. Tirar proveito do editor visual do VSTS (ao invés de usar arquivos YAML);
  2. Usar as tasks disponíveis para simplificar processos complexos de build e/ou release;
  3. Usar o Release Management do VSTS.

Conclusão

E você, já precisou fazer builds de CI para repositórios Git fora do VSTS? Já tinha pensado em usar o build do VSTS com código externo?

Deixe seu comentário!

Um abraço,
Igor



22/08/2017 | Por Igor Abade V. Leite | Em Técnico | Tempo de leitura: 3 mins.

Postagens relacionadas