Como executar GitHub Actions localmente usando a ferramenta act

DeltaOps
4 min readJun 12, 2024

--

Photo by Roman Synkevych on Unsplash

No post anterior, apresentei a ferramenta ACT para vocês. Agora, vamos fazer a instalação e mostrar alguns exemplos práticos, para que vocês possam ver a ferramenta em ação na prática.

Instalação:

A ferramenta actCLI funciona com Docker. Antes de começar com actCLI, primeiro instale o Docker em seu computador ou laptop.

Para instalar a actCLI, você precisa executar o seguinte comando:

# Windows
choco install act-cli

# MacOS
brew install act

# Linux
curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash

No meu caso, estou utilizando o Linux Ubuntu 22.04 e o resultado obtido foi o seguinte:

Depois que a instalação da CLI for bem-sucedida em seu laptop ou computador, a próxima etapa é executá-la em seu projeto.

Existem vários tamanhos de imagem Docker:

  1. O tamanho da imagem do Docker Micro é 200 MB e pequenos projetos o utilizam.
  2. O tamanho da imagem Docker Medium é 500 MB e o Big Project o utiliza.
  3. O tamanho da imagem Docker Large é 17 GB e o Enterprise o utiliza.

Na primeira execução, será retornado o seguinte setup:

git:(main) ✗ act
? Please choose the default image you want to use with act:
- Large size image: ca. 17GB download + 53.1GB storage, you will need 75GB of free disk space, snapshots of GitHub Hosted Runners without snap and pulled docker images
- Medium size image: ~500MB, includes only necessary tools to bootstrap actions and aims to be compatible with most actions
- Micro size image: <200MB, contains only NodeJS required to bootstrap actions, doesn't work with all actions

A actusa a imagem do Docker para executar a ação do GitHub localmente.

Para a CLI funcionar corretamente, é necessário ter um repositório no GitHub com um workflow já criado. Vamos utilizar esse repositório de exemplo.

git clone https://github.com/deoogo/demo-act.git

Dentro da pasta ‘workflows’, temos o arquivo ‘ci.yml’, que basicamente faz o seguinte:

  • Sobe uma imagem Docker “ubuntu-latest”
  • Imprime a mensagem “Hello, world!”
# This is a basic workflow to help you get started with Actions

name: CI

# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the "main" branch
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4

# Runs a single command using the runners shell
- name: Run a one-line script
run: echo Hello, world!

Agora que o ambiente está configurado, com o projeto clonado e o workflow configurado, vamos executar o CLI do act na raiz do projeto. No meu caso, utilizei o comando ‘sudo’ devido aos privilégios do Docker.

# cd demo-act
# act

Acima, o resultado retornou ‘Hello, world!’, como mencionado. Ou seja, a pipeline foi executada localmente com sucesso. Isso é realmente bacana! Agora, vou mostrar mais alguns exemplos.

Exemplo 1:

act -l

A opção de lista workflows disponíveis no.github/workflows.

Exemplo 2:

act --job <name-of-your-job>

Neste exemplo, ele executa um job específico.

Exemplo 3:

act --graph

Isso mostra um resultado mais ilustrativo.

Como desistalar o act

Caso act não seja mais necessário, você pode desinstalá-lo.

sudo rm -rf /usr/local/bin/act
sudo rm -rf ~/.actrc
sudo rm -rf ~/.cache/act

Existem diversos exemplos de como trabalhar com o act. Minha intenção foi ajudá-lo a dar os primeiros passos, e espero ter contribuído de alguma forma.

Nos acompanhe nas redes sociais e até a próxima!

https://deltaops.com.br/

https://www.linkedin.com/company/deltaopscloud/

Referência:

Escrito por 🖋️ Diogo Lima
Sócio Fundador da Empresa DeltaOps

--

--

DeltaOps

Somos uma consultoria especializada em Cloud, DevOps e SRE. Apaixonados por automação, ajudamos empresas em sua jornada para a nuvem com práticas DevOps.