Objetivo: criar um processo de gerenciamento de código-fonte eficiente para implantação de Continuous Integration na sua equipe de Desenvolvimento.

Benefícios
: garantir versões corretas em produção; confiabilidade no rastreamento das mudanças; manter a esteira de implementação veloz e saudável; premissa para utilização de práticas DevOps

O time-to-market, mencionado em métodos ágeis, e considerado em empresas que precisam ter dinâmica e fluidez na criação e lançamento de produtos em produção, necessita de um processo de Integração Contínua para viabilizar frequentes ajustes e garantir entregas rápidas pela equipe de desenvolvimento. É neste contexto que um bom gerenciamento de fontes viabiliza o acesso aos fontes dos pacotes (Version, Service Pack e Hotfix) publicados em produção.

Uma boa prática deste modelo é trabalhar com três branchs:

  • Main: última versão funcional em desenvolvimento – o Configuration Manager realiza alterações via Merge e Check-in
  • Dev: branchs liberadas para desenvolvimento – novas implementações, hotfix e service pack
  • Release: representa os códigos-fonte liberados para produção; criadas a partir do Label aprovado pelo processo de validação de negócio

gestao-fontes

E então o fluxo trabalha com a MAIN para gerenciar o produto – deve estar isolada da linha de DEV e RELEASE. Em novas implementações, deve-se criar uma branch de DEV a partir da MAIN. Para correções, deve ser criada uma branch de HOTFIX, a partir da branch RELEASE correspondente.

Todos os commits de desenvolvimento devem ser realizados na DEV ou HOTFIX. A RELEASE será utilizada como referência ao ambiente de produção. As correções devem ser executadas pelo Configuration Manager via merge: HOTFIX -> RELEASE -> MAIN. Os desenvolvedores ficam encarregados de realizar o merge da MAIN para DEV.

O TFVC (.Net) e GitHub (Java,PHP, etc.) são versionadores utilizados neste contexto.