Atualização de Runners¶
Processo Automático (Recomendado)¶
Ambos os runners possuem verificação automática diária que cria PRs quando novas versões são detectadas.
Fluxo Completo¶
- Check diário (4:00 UTC): workflow verifica se existe nova versão disponível
- PR criado automaticamente: com atualização do
.tool-versions - Review e merge: membro da equipe revisa e aprova o PR
- Tag criada: workflow
create-tag-and-releasecria tagvX.Y.Z - Imagem buildada: workflow
build-and-publishbuilda e pusha para OCIR - Runner atualizado: próximas execuções usam a nova imagem
Apenas merge o PR
Na maioria dos casos, basta aprovar e mergear o PR criado automaticamente. Os workflows subsequentes cuidam de todo o resto.
Processo Manual¶
Quando necessário atualizar manualmente (ex: hotfix ou mudança de ferramentas):
oci-github-runner (Infraestrutura)¶
-
Editar
.tool-versions:github-runner 2.335.0 -
Commit e push para
main(ou criar PR):bash git add .tool-versions git commit -m "chore: update runner to 2.335.0" git push -
O workflow
create-tag-and-releasecria a tag automaticamente - O workflow
build-and-publishbuilda e pusha a imagem
Build local (opcional para testes):
bash
make build # Build local
make push # Push para o registry
make build-push # Build + Push
oke-github-actions-runner (Aplicações)¶
-
Editar
.tool-versions:actions-runner 2.335.0 -
Commit e push — mesmo fluxo de tag + build automático
Sem Makefile
O repositório oke-github-actions-runner não possui Makefile. O build é feito exclusivamente via GitHub Actions.
Verificar Versão Atual¶
Via .tool-versions¶
```bash
oci-github-runner¶
cat .tool-versions
github-runner 2.333.0¶
oke-github-actions-runner¶
cat .tool-versions
actions-runner 2.333.0¶
```
Via GitHub API¶
Verificar a versão mais recente disponível:
```bash
Versão oficial do runner do GitHub¶
curl -s https://api.github.com/repos/actions/runner/releases/latest | jq -r '.tag_name'
Versão do myoung34 (community)¶
curl -s https://api.github.com/repos/myoung34/docker-github-actions-runner/tags | jq -r '.[0].name' ```
Troubleshooting¶
Runner não aceita jobs¶
Sintoma: Jobs ficam enfileirados e nunca iniciam, ou falham com erro de versão.
Causa provável: Runner está 3+ versões atrás da mais recente (violando a política N-2 do GitHub).
Solução:
- Verificar versão atual no
.tool-versions - Verificar versão mais recente via GitHub API
- Se defasado, atualizar seguindo o processo manual acima
Runner não consegue obter token (oci-github-runner)¶
Sintoma: Container Instance não inicia ou runner não se registra.
Verificar:
SECRET_IDestá configurado corretamente (OCID do secret no OCI Vault)- O dynamic group da Container Instance tem permissão para ler secrets
- O secret no Vault está ativo e não expirado
OCI_CLI_AUTH=resource_principalestá configurado
Imagem não builda¶
Verificar:
- Credenciais OCIR configuradas no repositório (via
PIPELINE_SECRETS) - A imagem base (myoung34 ou ghcr.io/actions/actions-runner) está acessível
- Versão especificada em
.tool-versionsexiste como tag da imagem base
Cadência de Atualização¶
| Cenário | Ação |
|---|---|
| PR automático criado | Revisar e mergear em até 1 semana |
| Vulnerabilidade crítica anunciada | Atualizar imediatamente |
| Nova versão minor do runner | Aguardar PR automático |
| Adicionar nova ferramenta | Editar Dockerfile e .tool-versions, criar PR manual |
Não ignore PRs de atualização
A política N-2 do GitHub é estrita. Ignorar PRs de atualização por muito tempo pode causar interrupção completa dos pipelines. Mantenha uma cadência regular de merge desses PRs.