E aí, já conhece o Github Actions?
O GitHub Actions é uma ferramenta massa para automatizar seus workflows de CI/CD direto no GitHub. Com ele, dá para rodar os testes e fazer builds e deploys de forma bem simples. Vamos ver como fazer!
Nessa publicação eu vou mostrar como criar um workflow para um projeto com Ruby on Rails, Docker e Docker Compose, mas o exemplo serve perfeitamente para outros tipos de projeto com algumas pequenas alterações!
Você precisará ter um projeto rails com docker, docker compose e os testes e para isso você pode encontrar um guia aqui!
Com o seu projeto pronto:
Crie uma pasta chamada .github/workflows na raiz. Dentro dessa pasta crie um arquivo yaml. O nome é com você. Eu vou chamar de ci.yaml
Crie o seu fluxo. Aqui, basicamente você define o passo a passo que vai ser executado a cada ação(push, pull request, issues, fork...). Para esse exemplo, eu quero que o criar triggers para quando o houver push ou quando for criado pull request apontando para a branch main. Em seguida explico um pouco mais, mas o arquivo fica assim:
name: Rails CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Build and Test
run: |
docker compose build
docker compose run --rm web bundle install
docker compose run --rm web bundle exec rails db:create
docker compose run --rm web bundle exec rails db:migrate
docker compose run --rm web bundle exec rspec
Vamos aos detalhes:
name: É o nome do workflow
on: É onde se define os eventos que disparam o workflow
jobs: São as atividades que serão executadas em paralelo
build: É o ID do job. Poderia ser qualquer identificador único dentro da cadeia de jobs.
runs-on: Define o tipo de máquina a ser executado o job id que criamos.
steps: Define a sequência de tarefas que vai ser executada no naquele job/job_id.
checkout: O Primeiro step consiste em fazer checkout do repositório
run: executa comandos no shell do SO. Nesse caso, estou executando uma série de comandos do docker.
Se tudo der certo, ao fazer push ou pull request na master, sua action vai ser disparada.
Agora é so fazer commit e push para ver o que acontece.
Como verificar?
E o exemplo de uma action que passou:
Agora é com você! Dá uma explorada na aba actions e nesse check status que marquei!
Top comments (1)
Nice!