Como executar um script usando GitHub Actions

Neste artigo você vai ver:

Um cenário bem comum de quem trabalha com CI/CD é o de lidar com diversas tarefas com suas pipelines, como publicar a imagem no docker-hub, criar testes de integração ou publicar artefatos dentro de um gerenciador de pacotes, dentre outros. Neste artigo, nossa ideia é te apresentar um script para automatizar atividades no seu repositório do Github utilizando o Github Actions.

Vamos usar o Ritchie CLI para executar os scripts no Github Actions. O Ritchie é um dos nossos projetos open source e que permite que você crie, armazene e compartilhe qualquer tipo de script, fazendo sua execução por linhas de comando.

Inclusive temos um artigo só explicando mais sobre o que é e como funcionam CLIs.

Um breve contexto sobre Github Actions e scripts

Nós já falamos desse assunto no nosso artigo de introdução ao Github Actions, mas de forma bem resumida: a ferramenta do Github Actions permite executar fluxos de trabalho de desenvolvimento do software diretamente nos nossos repositórios GitHub.

Esses fluxos de trabalho são customizáveis, o que significa que podemos realizar qualquer tipo de operação com eles, entre elas a execução de scripts.

Para quem não tem tanta familiaridade, um script é uma série de instruções implementadas em uma linguagem de programação para que uma máquina execute determinadas tarefas.

Levando isso para o Github Actions, entendemos, então, que vamos precisar ter um workflow executando um arquivo específico do nosso repositório dentro de um job (unidade de execução dentro do actions).

O que você precisa saber antes de começar 

  1. O Github Actions já nos oferece um runner, ou seja, a máquina onde vamos executar nossa tarefa. Você pode escolher ubuntu, macOS ou windows, conforme o seu contexto.
  1. Precisamos rodar uma ação oficial do Github para ajustar o fluxo de trabalho do Github Actions e acessar os arquivos e diretórios do repositório que vamos configurar, pois o runner não tem acesso a essas informações nativamente.
  2. Por fim, precisamos definir os requisitos de nosso script. Isso é necessário porque como o script é implementado em uma certa linguagem de programação, pode ser que ele necessite de algumas bibliotecas e/ou dependências para funcionar. Se o runner (no caso, a máquina) não tiver nenhum desses recursos – linguagem, biblioteca e dependências – instalados nativamente, é preciso configurá-las via ações já criadas ou comandos shell, de acordo com o contexto.

Executando o script

Vamos criar um workflow que vai executar um script em python run.py (localizado na raiz do projeto) após cada push no nosso repositório. Neste job, você precisará instalar a versão 3.8 de Python e baixar a biblioteca requests usada no nosso script.

Para este tutorial, criamos um repositório de demo com vários exemplos de uso do Github Actions. No repositório com exemplo de execução do script run.py, é retornado, de tempos em tempos, os dados atualizados sobre o COVID-19 no Brasil de acordo com a resposta do serviço e outros similares.

O job que vai conter todas as operações deste exercício que estamos fazendo aqui é composta de quatro etapas:

  1. Primeira etapa para permitir que seu workflow tenha acesso aos arquivos e diretórios do repositório através da ação checkout.
  2. Segunda etapa para instalar a versão do Python específica que desejamos usar. Neste caso, usaremos a ação setup-python, que permite informar como input a versão de python específica: aqui 3.8.
  3. Terceira etapa para instalar as dependências ou bibliotecas. Neste caso, vamos usar um comando shell utilizando pip para fazer a instalação da biblioteca requests.
  4. Uma quarta etapa para executar o script usando Python.

Segue abaixo o workflow completo:

No Actions, o output desse job é apresentado conforme na imagem abaixo:

Ilustração com detalhes da execução do script através do Github Actions, com logs de dados relacionados ao COVID-19 no Brasil.

Executando scripts com o Ritchie CLI 

Uma maneira alternativa de executar scripts no Github Actions é usando fórmulas criadas com o Ritchie CLI

A principal diferença é que você não precisa se preocupar com a instalação das dependências necessárias para a execução da automação, pois o Ritchie CLI abstrai isso para o usuário. No entanto, você ainda terá de fazer o setup da linguagem para o runner conseguir executar o código necessário para executar a automação.

É possível automatizar diversas tarefas utilizando as fórmulas (automações) do Ritchie CLI. Veremos a seguir um desses exemplos de uso:

Action para executar comandos em repos privados

Você pode usar uma action do Ritchie CLI para informar apenas o comando e o repositório, caso ele seja público e, com isso, é possível executar comandos de fórmulas em repositórios privados. Basta adicionar um PAT aos parâmetros da ação (mais informações no repositório da action).

Importante: essa action funciona para todos os sistemas operacionais (Ubuntu, MacOS e windows), com a necessidade de alguns ajustes para windows, conforme explicado na documentação da action.

Output do caso de uso:

Ilustração com detalhes da execução de uma fórmula do Ritchie no Github Actions usando a terceira opção de execução (com o uso de uma action).

Ritchie CLI e Github Action: uma parceria que veio para ficar!

O Ritchie CLI combina também muito bem com o Github Action, pois dessa maneira é possível usar a opção de schedule para agendar a execução de fórmulas específicas. 

Se você quiser conhecer mais sobre essa possibilidade, disponibilizamos esse repositório com alguns exemplos de uso do Ritchie com scheduler.

Quem quiser aprofundar é só criar seu repositório com seus workflows e experimentar, pois o plano free da plataforma permite você testar seus fluxos de trabalhos em repositórios públicos sem limites de tempo. Lembrando que a documentação do Github Actions é muito boa e vale dar uma conferida.

Já está testando o GitHub Actions e o Ritchie CLI nas suas rotinas? Para conhecer mais sobre o nosso projeto open source, fica aqui o convite para você dar uma olhada no nosso fórum ou conferir o projeto do Ritchie pelo GitHub.

Capa do artigo "como executar um script usando GitHub Actions" com um foco em um teclado de notebook e a cor violeta.
foto Guillaume Falourd
Back-end Developer
Zupper tentando transformar o complexo em simples através de conteúdos diversificados, com intuito de impactar o mercado de TI e as pessoas ao seu redor da melhor forma possível.

Artigos relacionados

Este site utiliza cookies para proporcionar uma experiência de navegação melhor. Consulte nossa Política de Privacidade.