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

61 lines
2.4 KiB
Markdown

# 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).