Files
Vendaweb-api/WORKFLOWS.md
Joelbrit0 fd17be5408
All checks were successful
Build (develop) / Promote (main) / build-and-push-deploy (push) Successful in 1m22s
fix: harden GitOps deploy and rollback
2026-01-29 15:21:09 -03:00

2.4 KiB

Documentação dos Workflows (Gitea Actions)

Este documento descreve os fluxos de trabalho de integração contínua (CI) e entrega contínua (CD) configurados no Gitea Actions para o projeto Vendaweb-api.

Visão Geral

Os workflows estão definidos no diretório .gitea/workflows/. O principal workflow configurado é o deploy da API.

Workflow: Deploy NestJS API

Arquivo: .gitea/workflows/deploy-api.yaml

Gatilhos (Triggers)

Este workflow é acionado automaticamente no evento:

  • push: Na branch main.

Jobs

build-and-push-deploy

Este job é responsável por construir a imagem Docker e enviá-la para o registry privado (Harbor).

  • Ambiente de Execução: ubuntu-latest (Runner)

Passos (Steps):

  1. Checkout

    • Utiliza actions/checkout@v3 para clonar o código fonte do repositório.
  2. Login no Harbor

    • Realiza autenticação no registry Docker privado.
    • Registry: 172.35.0.216
    • Segredos Utilizados:
      • HARBOR_USERNAME: Nome de usuário do Harbor.
      • HARBOR_PASSWORD: Senha do usuário do Harbor.
  3. Build e Push

    • Constrói a imagem Docker da aplicação.
    • Tags geradas:
      • git.simplifiquehc.com.br/simplifique/vendaweb-api:$TAG (onde $TAG é o SHA curto do commit)
      • git.simplifiquehc.com.br/simplifique/vendaweb-api:latest
    • Envia ambas as tags para o registry.
  4. Atualizar Manifest e Push no Git

    • Atualiza k8s/overlays/prod/deployment-image-digest-patch.yaml para apontar para a tag $TAG.

Variáveis e Segredos (Secrets)

Para que o workflow funcione corretamente, as seguintes secrets devem estar configuradas nas configurações do repositório no Gitea:

Secret Descrição
HARBOR_USERNAME Usuário com permissão de push no projeto library do Harbor.
HARBOR_PASSWORD Senha ou token de acesso do usuário do Harbor.

Integração com Kubernetes

Após o push da imagem com a tag latest (e o SHA específico), o ArgoCD (configurado conforme KUBERNETES.md) detectará as mudanças se houver alteração nos manifestos ou se estiver configurado para pollar a imagem latest (dependendo da política de imagePullPolicy e configuração do ArgoCD Image Updater, se houver).