| Próxima revisão | Revisão anterior |
| pres:gerti:devops:como_criar_uma_pipeline_de_ci_cd:configurando_pipeline [26/03/2026 19:22] – criada lvinicius | pres:gerti:devops:como_criar_uma_pipeline_de_ci_cd:configurando_pipeline [17/04/2026 17:53] (atual) – removida lvinicius |
|---|
| ====== Configurando uma pipeline ====== | |
| |
| [[pres:gerti:devops:como_criar_uma_pipeline_de_ci_cd:start|Como criar uma pipeline de CI/CD]] | |
| |
| Como dito antes, o repositório [[https://gitsource.tce.go.gov.br/GER-TI/tce.kubernetes/tce.templates|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 [[https://gitsource.tce.go.gov.br/GER-TI/tce.kubernetes/tce.templates|TCE.Templates]]. Iremos tomar como base a versão mais recente do repositório atualmente, versão 3.0.0. | |
| |
| ===== Entendendo o TCE.Templates ===== | |
| |
| No [[https://gitsource.tce.go.gov.br/GER-TI/tce.kubernetes/tce.templates|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. | |
| |
| * Para configurar seu repositório nos padrões do Docker, veja: [[como_envelopar_meu_projeto_com_docker|Como Configurar meu projeto com Docker]]. | |
| * Para configurar seu repositório para deploy no Cluster Kubernetes, veja: [[pres:gerti:devops:como_configurar_repositorio_kubernetes:start|Como Configurar meu projeto com 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 | |
| |
| ===== Importando um modelo de pipeline ===== | |
| |
| Para implementar uma pipeline, basta acessar o [[https://gitsource.tce.go.gov.br/GER-TI/tce.kubernetes/tce.templates|TCE.Templates]], escolher sua pipeline no sumário, neste exemplo iremos implementar a [[https://gitsource.tce.go.gov.br/GER-TI/tce.kubernetes/tce.templates/-/blob/3.0.0/examples/pipeline-docker-minimal.yml?ref_type=tags|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]]: [[https://gitsource.tce.go.gov.br/GER-TI/tce.kubernetes/tce.templates/-/blob/main/templates/versioning/docs.md|Versioning Job]] e [[https://gitsource.tce.go.gov.br/GER-TI/tce.kubernetes/tce.templates/-/blob/main/templates/deploy-docker/docs.md|Deploy-Docker]]. | |
| |
| ===== Ajustar a <version> ===== | |
| |
| 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 | |
| |
| ===== Environments ===== | |
| |
| 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%%''. | |
| |
| ===== Versioning ===== | |
| |
| O job [[https://gitsource.tce.go.gov.br/GER-TI/tce.kubernetes/tce.templates/-/blob/main/templates/versioning/docs.md|Versioning]] é o job responsável por realizar o versionamento do repositório. Se você leu sobre [[pres:gerti:devops:como_nomear_commits|Como nomear Commits?]], já sabe o que vem a seguir. O job irá rodar o [[pres:gerti:devops:semantic_release|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 [[pres:gerti:devops:versionamento_semantico|Versionamento Semântico]]. | |
| |
| Esse job é bem padrão e não é necessário alterar nada. | |
| |
| ===== Deploy Docker ===== | |
| |
| O job ''%%deploy-docker%%'' irá realizar o deploy em um servidor rodando docker. Para configurar ele é bem simples: | |
| |
| - Indique qual é o arquivo ''%%docker-compose.yml%%'' para produção e qual é para homologação na input ''%%compose-file:%%'' | |
| - Acesse o [[https://portainer.tce.go.gov.br|Portainer]] e a [[https://gitsource.tce.go.gov.br/groups/GER-TI/-/runners|Lista de Runners]]. | |
| - 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%%'' | |
| |
| ===== Fazendo push ===== | |
| |
| Feito isso, pode fazer ''%%push%%'' e ser feliz a pipeline deve estar pronta. | |
| |