Skip to content

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

  1. Check diário (4:00 UTC): workflow verifica se existe nova versão disponível
  2. PR criado automaticamente: com atualização do .tool-versions
  3. Review e merge: membro da equipe revisa e aprova o PR
  4. Tag criada: workflow create-tag-and-release cria tag vX.Y.Z
  5. Imagem buildada: workflow build-and-publish builda e pusha para OCIR
  6. 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)

  1. Editar .tool-versions: github-runner 2.335.0

  2. 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

  3. O workflow create-tag-and-release cria a tag automaticamente

  4. O workflow build-and-publish builda 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)

  1. Editar .tool-versions: actions-runner 2.335.0

  2. 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:

  1. Verificar versão atual no .tool-versions
  2. Verificar versão mais recente via GitHub API
  3. 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:

  1. SECRET_ID está configurado corretamente (OCID do secret no OCI Vault)
  2. O dynamic group da Container Instance tem permissão para ler secrets
  3. O secret no Vault está ativo e não expirado
  4. OCI_CLI_AUTH=resource_principal está configurado

Imagem não builda

Verificar:

  1. Credenciais OCIR configuradas no repositório (via PIPELINE_SECRETS)
  2. A imagem base (myoung34 ou ghcr.io/actions/actions-runner) está acessível
  3. Versão especificada em .tool-versions existe 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.