Executando CI/CD do GitHub em sua maquina

Michel Lütz
4 min readApr 5, 2020

--

Logo quando foi lançado o GitHubActions trouxe um post sobre como configurar seu projeto swift para rodar, mas caso você tenha um projeto privado e queria configurar um runner em seu Mac é possível e muito simples e rápido de configurar. Vamos lá?

Originalmente postado em meu site:
https://micheltlutz.me/post/github-actions-selfhosted-runners

Para iniciar abaixo a diferença entre GitHub e Self hosted runners:

GitHub-hosted runners:

  • São atualizados automaticamente.
  • São gerenciados e mantidos pelo GitHub.
  • Forneça uma instância limpa para cada execução de trabalho.
  • Use minutos gratuitos no seu plano do GitHub, com taxas por minuto aplicadas após ultrapassar os minutos gratuitos.

Self-hosted runners:

  • Pode usar serviços em nuvem ou máquinas locais pelas quais você já paga.
  • São personalizáveis para seus requisitos de hardware, sistema operacional, software e segurança.
  • Não precisa ter uma instância limpa para cada execução do trabalho.
  • Você pode usar livremente com as Ações do GitHub, mas você é responsável pelo custo de manutenção das máquinas executoras.

Adicionando Runner

  • No GitHub, navegue para a página principal do repositório.
  • Abaixo do nome do repositório, clique em Settings.
  • Na coluna da esquerda, clique em Actions.
  • Na tela que abrir deixe marcado o campo Enable local and third party Actions for this repository
  • Logo abaixo em Self-hosted runners clique no botão verde Add Runner

Uma Janela ira abrir com as informações de Download e configuração (selecione MacOS):

Download

- Criar pasta (criei em um segundo volume que tenho, mas pode ser em seu home de usuário)

Até o momento da criação deste post não é possível configurar o Runner para rodar mais de um projeto, o que fiz foi mudar o nome da pasta `actions-runner` para `actions-runner-meuprojeto`. No caso eu tenho um runner configurado para cada projeto que quero rodar actions.

$ mkdir actions-runner && cd actions-runner$ mkdir actions-runner-mdeditor && cd actions-runner-mdeditor

Download

Faça o download runner package versão abaixo é relacionada a data do post 05/04/2020
Siga o link mais atual na janela que carregar em seu projeto.

$ curl -O -L https://github.com/actions/runner/releases/download/v2.168.0/actions-runner-osx-x64-2.168.0.tar.gz`

Extrair instalador

$ tar xzf actions-runner-osx-x64-2.168.0.tar.gz

Configurando

$ tar xzf actions-runner-osx-x64-2.168.0.tar.gz

Crie o runner e inicie a configuração passo a passo:

$ ./config.sh --url  --token

Ultimo passo, execute o runner

$ ./run.sh

Se tudo deu certo você verá no terminal a seguinte informação:

E na sua tela de Runners estará assim:

Quando seu runner não estiver rodando:

Atalhos

Devido a esse problema de não ser possível rodar um Runner para múltiplos projetos, eu criei alguns aliases em meu .bash_profile

alias meuprojeto-start-runner='bash pasta-do-seu-runner/actions-runner/run.sh'

Basta adicionar esta linha com as informações do caminho do seu runner no final do arquivo salvar e rodar executar o source source ~/.bash_profile

Agora sempre que quiser rodar o runner para esperar alguma action, basta no terminal chamar meuprojeto-start-runner

Usando seu Runner

Não esqueça de alterar seu arquivo yml de workflow para ele rodar em seu runner alterando o runs-on para self-hosted

runs-on: self-hosted

Vou deixar um arquivos yml bem simples para testes:

name: Build and Teston:
push:
branches: [ develop ]
pull_request:
branches: [ master ]
jobs:
build:
#runs-on: macos-latest
runs-on: self-hosted
steps:
- uses: actions/checkout@v2
- name: Build
run: |
xcodebuild clean build \
-project 'nome do projeto.xcodeproj' \
-scheme 'nome do scheme'
- name: Run tests
run: |
xcodebuild \
-project 'nome do projeto.xcodeproj' \
-scheme 'nome do scheme' \
test

--

--

Michel Lütz
Michel Lütz

Written by Michel Lütz

Gerente de Engenharia com MBA em Data Science for Business e BI, Mkt Digital e Data-Driven Strategy pela PUCRS.

Responses (2)