Sobes.tech
Middle

Como são usadas as variáveis de versão no processo de desenvolvimento? Como elas são criadas e de onde são puxadas?

sobes.tech IA

Resposta da IA

As variáveis de versão são usadas para identificar um estado ou lançamento específico do produto de software. Elas ajudam a rastrear alterações, gerir lançamentos e garantir a reprodutibilidade das compilações.

Formas principais de uso:

  • Identificação de compilação: Cada compilação recebe um identificador único, que pode incluir o número de versão, hash do commit, marca temporal.
  • Gestão de lançamentos: As variáveis de versão permitem distinguir claramente entre lançamentos estáveis, versões beta e compilações noturnas.
  • Reversão: Em caso de problemas, pode-se voltar rapidamente a uma versão anterior funcional usando seu identificador.
  • Registo e monitorização: Nos logs e métricas, é indicada a versão da aplicação, facilitando o diagnóstico.

Criação e fontes:

  • Sistemas de controlo de versões (Git, SVN):
    • Etiquetas: Criadas manualmente ou automaticamente para marcar pontos importantes (por exemplo, lançamentos).
    • Hash do commit: Identificador único de cada commit.
  • Sistemas CI/CD (Jenkins, GitLab CI, GitHub Actions, CircleCI):
    • Variáveis predefinidas: Os sistemas CI/CD fornecem variáveis que contêm informações sobre a execução atual (número de compilação, ramo, hash do commit).
    • Scripts de compilação: As variáveis de versão podem ser geradas por scripts durante a compilação, com base em dados de SCM e CI/CD.
  • Geradores automáticos de versões: Ferramentas que analisam o histórico de commits (por exemplo, baseado em Conventional Commits) e geram automaticamente números de versão semânticos (Major.Minor.Patch).
  • Ficheiros de configuração: A versão pode estar especificada em ficheiros de configuração do projeto (por exemplo, package.json em Node.js, pom.xml em Maven).

Exemplos:

# Obter hash do último commit no Git
git rev-parse HEAD
// Pipeline Jenkins - obter número de compilação de uma variável predefinida
println "Número de compilação: ${env.BUILD_NUMBER}"
# GitLab CI - obter ramo e hash do commit
# de variáveis predefinidas
variáveis:
  GIT_BRANCH: $CI_COMMIT_BRANCH
  GIT_COMMIT: $CI_COMMIT_SHA

As variáveis de versão são integradas no processo de compilação e implantação através de:

  • Variáveis de ambiente: Os sistemas CI/CD exportam informações como variáveis de ambiente.
  • Argumentos de linha de comando: São passados aos scripts de compilação.
  • Ficheiros de configuração: São lidos pelas ferramentas de compilação.
  • Plugins e extensões: As ferramentas de compilação e os sistemas CI/CD têm plugins para integração com SCM e obtenção automática de informações de versão.