5.4 KiB
5.4 KiB
🚀 GitHub Actions - Guia de Uso
📋 Visão Geral
O GitHub Actions está configurado para buildar e fazer push automático da imagem Docker para o Docker Hub sempre que você fizer push para o repositório.
🔧 Configuração Necessária
1. Secrets do GitHub
Certifique-se de que estes secrets estão configurados no repositório:
DOCKERHUB_USERNAME: Seu usuário do Docker HubDOCKERHUB_TOKEN: Token de acesso do Docker Hub
Como configurar:
- Vá para:
Settings→Secrets and variables→Actions - Clique em
New repository secret - Adicione os secrets acima
2. Token do Docker Hub
Para criar um token do Docker Hub:
- Acesse: https://hub.docker.com/settings/security
- Clique em
New Access Token - Nome:
github-actions - Permissões:
Read, Write, Delete - Copie o token e adicione como
DOCKERHUB_TOKEN
🚀 Como Usar
1. Build Automático
Sempre que você fizer push para main ou develop:
- ✅ Build automático da imagem
- ✅ Push para Docker Hub
- ✅ Tag
latestatualizada
# Push para main (atualiza latest)
git push origin main
# Push para develop (atualiza develop)
git push origin develop
2. Releases com Tags
Para criar uma release:
# Usar o script de release
./scripts/release.sh patch # 1.0.0 -> 1.0.1
./scripts/release.sh minor # 1.0.0 -> 1.1.0
./scripts/release.sh major # 1.0.0 -> 2.0.0
./scripts/release.sh custom 2.0.0-beta.1
# Ou criar tag manualmente
git tag v1.0.0
git push origin v1.0.0
3. Build Manual
Para buildar manualmente:
- Vá para:
Actions→Build and Push Image to Docker Hub - Clique em
Run workflow - Escolha a branch
- Opcionalmente, defina uma tag customizada
- Clique em
Run workflow
📦 Tags Geradas
Branch main
andersonid/resource-governance:latest(sempre atualizada)andersonid/resource-governance:COMMIT_SHA(específica do commit)
Branch develop
andersonid/resource-governance:develop(sempre atualizada)andersonid/resource-governance:develop-COMMIT_SHA(específica do commit)
Tags (ex: v1.0.0)
andersonid/resource-governance:v1.0.0(específica da tag)andersonid/resource-governance:latest(atualizada)
Pull Requests
andersonid/resource-governance:pr-COMMIT_SHA(apenas para teste)
🔍 Monitoramento
Verificar Status do Build
# Listar últimos builds
gh run list --repo andersonid/openshift-resource-governance --workflow="build-only.yml"
# Ver logs de um build específico
gh run view RUN_ID --repo andersonid/openshift-resource-governance --log
# Ver status em tempo real
gh run watch --repo andersonid/openshift-resource-governance
Verificar Imagens no Docker Hub
- Docker Hub: https://hub.docker.com/r/andersonid/resource-governance/tags
- GitHub Releases: https://github.com/andersonid/openshift-resource-governance/releases
🛠️ Troubleshooting
Build Falhou
-
Verificar logs:
gh run view RUN_ID --repo andersonid/openshift-resource-governance --log-failed -
Problemas comuns:
- Docker Hub login falhou: Verificar
DOCKERHUB_TOKEN - Build falhou: Verificar sintaxe do código Python
- Push falhou: Verificar permissões do token
- Docker Hub login falhou: Verificar
Imagem Não Atualizada
-
Verificar se o build foi concluído:
gh run list --repo andersonid/openshift-resource-governance --workflow="build-only.yml" --status=completed -
Verificar tags no Docker Hub:
docker pull andersonid/resource-governance:latest docker inspect andersonid/resource-governance:latest
Rebuild Manual
Se precisar rebuildar uma versão específica:
# Fazer push vazio para triggerar build
git commit --allow-empty -m "Trigger rebuild"
git push origin main
📊 Workflow Detalhado
1. Trigger
- Push para main/develop: Build automático
- Tag push: Build + Release
- Pull Request: Build para teste
- Manual dispatch: Build com tag customizada
2. Build Process
- Checkout do código
- Syntax check do Python
- Setup Podman (Docker alternative)
- Login no Docker Hub
- Determine tags baseado no trigger
- Build da imagem com cache
- Tag da imagem
- Push para Docker Hub
- Create release (se for tag)
3. Output
- Imagem Docker disponível no Docker Hub
- GitHub Release (se for tag)
- Logs detalhados no GitHub Actions
🎯 Melhores Práticas
1. Versionamento
- Use semantic versioning (ex: 1.0.0, 1.0.1, 1.1.0)
- Use o script
./scripts/release.shpara releases - Teste em
developantes de fazer merge paramain
2. Deploy
- Use
andersonid/resource-governance:latestpara desenvolvimento - Use
andersonid/resource-governance:v1.0.0para produção - Sempre teste a imagem antes de fazer deploy em produção
3. Monitoramento
- Verifique os logs do GitHub Actions regularmente
- Monitore o Docker Hub para verificar se as imagens estão sendo atualizadas
- Use
ghCLI para monitoramento rápido
🔗 Links Úteis
- GitHub Actions: https://github.com/andersonid/openshift-resource-governance/actions
- Docker Hub: https://hub.docker.com/r/andersonid/resource-governance
- GitHub Releases: https://github.com/andersonid/openshift-resource-governance/releases
- Workflow File:
.github/workflows/build-only.yml
Desenvolvido por: Anderson Nobre
Suporte: Abra uma issue no GitHub se tiver problemas