Essa é uma revisão anterior do documento!


Configurando uma pipeline

Como criar uma pipeline de CI/CD

Como dito antes, o repositório TCE.Templates foi criado para encapsular a implementação dos jobs e das pipelines.

Para implementar uma pipeline padrão em seu projeto, basta acessar o TCE.Templates. Iremos tomar como base a versão mais recente do repositório atualmente, versão 3.0.0.

No TCE.Templates há 4 exemplos de pipelines: - Pipeline Docker Mínima - Pipeline Kubernetes Mínima - Pipeline Docker Completa - Pipeline Kubernetes Completa

As pipelines Docker, realizam deploy através do docker, e as pipelines Kubernetes realizam deploy através do Kubernetes.

As pipelines mínimas possuem configurações que todos os repositórios deveriam ter, atualmente elas se resumem a:

  • Versionamento Automático
  • Deploy Automático

(Com exceção de repositórios onde não há deploy, ex: bibliotecas)

Já as pipelines completas também possuem: - Lints - Testes - Integração com o Sonar

Para implementar uma pipeline, basta acessar o TCE.Templates, escolher sua pipeline no sumário, neste exemplo iremos implementar a pipeline-docker-minimal.

Veja que ele possui 2 stages:

  • versioning
  • deploy

E 4 includes:

* Versionamento Produção * Versionamento Homolog * Deploy Docker Produção * Deploy Docker Homolog

Cada um desses includes são CI/CD Components que implementam um Job na pipeline.

Você pode ver a documentação deles no próprio TCE.Templates: Versioning Job e Deploy-Docker.

Cada um dos components possui uma tag @<version> no final. Você deve substituir a versão de todos os components pela versão mais recente da biblioteca. Em nosso caso, é a versão 3.0.0 que fica: - component: $CI_SERVER_FQDN/GER-TI/tce.kubernetes/tce.templates/deploy-docker@3.0.0.

Nota: Nunca use @main, prefira sempre pinnar sua pipeline a uma versão específica. Dessa forma, se sua pipeline funciona, ela semop

Todos os Components possuem uma palavra chave environment. Quando environment: production, esse job será executado quando houver push na main/master, quando for environment: homolog, será executado na develop/homolog.

O job Versioning é o job responsável por realizar o versionamento do repositório. Se você leu sobre Como nomear Commits?, já sabe o que vem a seguir. O job irá rodar o semantic_release, o qual irá ler o nome do último commit, decidir se uma alteração Major, Minor ou um Patch, e criar uma nova versão. Ele vai criar uma Tag automaticamente no padrão de Versionamento Semântico.

Esse job é bem padrão e não é necessário alterar nada.

O job deploy-docker irá realizar o deploy em um servidor rodando docker. Para configurar ele é bem simples:

  1. Indique qual é o arquivo docker-compose.yml para produção e qual é para homologação na input compose-file:
  2. Encontre qual é a Tag do servidor que você deseja fazer deploy.
    • Por exemplo, em homologação queremos fazer deploy no servidor: Docker Staging Server ou vmdocker-02.tce.go.gov.br. Então é: tag: docker-stag-runner
    • Em produção, queremos fazer no Docker Production Server, ou vmdocker-01.tce.go.gov.br. Então é: tag: dockers-prod-runner

Feito isso, pode fazer push e ser feliz a pipeline deve estar pronta.

  • pres/gerti/devops/como_criar_uma_pipeline_de_ci_cd/configurando_pipeline.1774555628.txt.gz
  • Última modificação: 26/03/2026 20:07
  • por lvinicius