Como executar GitHub Actions localmente usando a ferramenta act
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 act
CLI funciona com Docker. Antes de começar com act
CLI, primeiro instale o Docker em seu computador ou laptop.
Para instalar a act
CLI, 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:
- O tamanho da imagem do Docker Micro é 200 MB e pequenos projetos o utilizam.
- O tamanho da imagem Docker Medium é 500 MB e o Big Project o utiliza.
- 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 act
usa 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://www.linkedin.com/company/deltaopscloud/
✨ Referência:
Escrito por 🖋️ Diogo Lima
Sócio Fundador da Empresa DeltaOps