Marcio Cunha

Como testar o GitHub Actions localmente antes do push com o Act

Descubra como executar workflows do GitHub Actions diretamente na sua máquina com a ferramenta Act, reduzindo o ciclo de feedback e economizando tempo de build.

Marcio Cunha•4 min
Também disponível em:EnglishEspañol
Resumo
  • O utilitário Act permite rodar os scripts de automação do GitHub Actions diretamente no computador pessoal.
  • Testar localmente elimina o ciclo cansativo de enviar código para a nuvem apenas para verificar erros de sintaxe.
  • A ferramenta utiliza contêineres Docker para simular o ambiente exato de execução oferecido pelos servidores remotos.
  • Segredos e variáveis de ambiente sensíveis podem ser mapeados com segurança usando arquivos locais de configuração.
  • A adoção de testes locais acelera drasticamente a entrega contínua e melhora a qualidade do código antes do envio.

O que é o Act e por que testar pipelines na sua máquina

Quem trabalha com desenvolvimento de software sabe que a rotina de automação muitas vezes envolve um ciclo desgastante. Você escreve um script de automação, faz o envio do código para o repositório remoto e aguarda a execução na nuvem apenas para descobrir que esqueceu um caractere ou errou a versão de uma dependência. Na prática, isso significa perder minutos preciosos a cada tentativa simples de correção. Para resolver essa fricção, engenheiros utilizam o utilitário chamado Act, que funciona como um simulador capaz de rodar os arquivos de configuração do GitHub Actions diretamente no seu computador pessoal.

Em termos simples, o Act lê os arquivos YAML de automação armazenados na pasta da sua aplicação e executa cada instrução utilizando contêineres Docker, que são ambientes isolados e leves que replicam sistemas operacionais completos. Essa abordagem transforma a maneira como iteramos em integrações contínuas, permitindo um ciclo de feedback quase instantâneo. Se você já passou pela frustração de realizar dezenas de envios apenas para ajustar um detalhe em um arquivo de build, conforme discutimos em estratégias para otimizar processos em otimização de cache e builds lentos, ferramentas locais representam um ganho monumental de produtividade.

Como funciona a execução baseada em contêineres

Por trás dos panos, o Act se conecta ao motor Docker instalado na sua máquina para criar instâncias virtuais idênticas às que o GitHub utiliza em seus servidores de infraestrutura. Quando você dispara um comando, a ferramenta analisa o fluxo de trabalho, identifica as imagens necessárias e inicia o ambiente de testes de forma transparente. Isso garante que as ferramentas disponíveis no servidor remoto, como compiladores e interpretadores, também estejam presentes no seu laptop.

A grande vantagem dessa arquitetura é a previsibilidade. Se o comando falha na sua máquina local, ele muito provavelmente falhará no servidor remoto, permitindo que você resolva o problema na raiz antes de expor o código para a equipe. Além disso, essa simulação local ajuda a entender melhor o consumo de recursos e o comportamento de scripts complexos sem depender de conexões instáveis com a internet ou da disponibilidade dos serviços de terceiros.

Instalando e configurando o Act no seu ambiente de trabalho

Para começar a utilizar o simulador, o primeiro requisito indispensável é ter o Docker rodando ativamente em sua estação de trabalho, pois é ele quem fornece a infraestrutura de isolamento. A instalação do utilitário em si pode ser feita facilmente através de gerenciadores de pacotes comuns em sistemas Unix ou Windows. O processo exige apenas alguns minutos de preparação inicial.

Abaixo está um passo a passo simples para instalar a ferramenta utilizando o gerenciador Homebrew no macOS ou Linux e verificar o funcionamento básico na linha de comando:

  1. Abra o seu terminal de preferência e execute o comando de instalação do pacote principal:
    brew install act
  2. Certifique-se de que o serviço do Docker está ativo em segundo plano executando a verificação de versão:
    docker --version
  3. Navegue até a pasta raiz do seu projeto que contém a pasta de automações e execute o comando básico de listagem de eventos:
    act -l

Gerenciando segredos e variáveis locais com segurança

Uma das maiores preocupações ao rodar automações localmente é a segurança das credenciais, chaves de API e tokens de acesso que normalmente ficam armazenados nos servidores remotos. Se o seu script precisa se conectar a um banco de dados de testes ou autenticar em um serviço externo, você não pode simplesmente expor essas informações diretamente no código fonte.

Para solucionar esse dilema, o Act permite criar um arquivo oculto chamado secret na raiz do projeto ou passar os valores diretamente via linha de comando utilizando parâmetros específicos. Na prática, você cria um arquivo de texto simples listando as variáveis no formato de chave e valor, garantindo que o simulador injete essas informações de forma segura apenas durante a execução do processo local, mantendo suas senhas protegidas contra vazamentos acidentais. Para complementar essa implementação em produção, vale conferir também nossas análises técnicas sobre Como inspecionar frames WebSocket no navegador pelo DevTools e Como testar regulador LDO com multímetro na bancada.

Considerações finais sobre produtividade em DevOps

Integrar o Act no seu fluxo diário de desenvolvimento muda radicalmente a forma como você enxerga a automação de entregas. Em vez de tratar a esteira de integração como uma caixa preta distante que só nos dá respostas após o envio, passamos a encará-la como parte natural e imediata do processo de programação. Essa autonomia reduz erros em produção, economiza minutos valiosos de espera e devolve o controle total do ciclo de vida do software para as mãos de quem escreve o código.

A adoção de ferramentas locais de teste reflete uma maturidade técnica importante nas equipes de engenharia moderna. Ao diminuir o tempo de feedback e eliminar dependências desnecessárias da nuvem, ganhamos agilidade e confiança para implementar melhorias contínuas sem medo de quebrar o ambiente principal da empresa.