CI/CD: GitHub Actions
O curso percorre a pipeline de GitHub Actions de uma aplicação Rails, a partir do arquivo de CI gerado pelo rails new. Ele explica eventos, jobs, runners e steps e depois acrescenta o job de RSpec que faltava, com um service container de PostgreSQL. As aulas seguintes tratam de velocidade com jobs paralelos, concurrency, cache e timeouts. Também abordam testes flaky, artifacts de falha e os limites de um check verde. Depois vêm segredos, permissões do token, OIDC e pull requests de forks, e no fim um job de deploy com Kamal protegido e o workflow completo.
O que você vai aprender
- ✓Como eventos, jobs, runners e steps formam um workflow
- ✓Rodar RSpec na CI com um service container de PostgreSQL
- ✓Acelerar a pipeline com needs, concurrency, cache e timeouts
- ✓Lidar com testes flaky e guardar screenshots de falha como artifacts
- ✓Cuidar de segredos, permissões do GITHUB_TOKEN e pull requests de forks
- ✓Acrescentar ao workflow um job de deploy com Kamal protegido por ambiente
A CI que você já tem
Esta aplicação tem uma pipeline de CI. Ela foi gerada pelo rails new, roda em todo pull request desde o primeiro commit, e a maioria das pessoas que trabalha num app Rails nunca a abriu.
Ler a aula completa grátis →Currículo
7 aulasA CI que você já tem
Lê o arquivo de CI gerado pelo rails new, explica suas quatro ideias e mostra que ele nunca roda RSpec.
Acrescentando o job que roda os testes
Acrescenta um job de teste com service container de PostgreSQL, health checks, variáveis da libpq, db:test:prepare e Chrome.
Deixando a pipeline rápida
Mostra como needs, concurrency, chaves de cache, timeouts e matrix para fatiar a suíte afetam o tempo da pipeline.
Quanto vale um check verde
Trata das origens de testes flaky, da semente do RSpec, de artifacts de falha e do que a CI não consegue dizer.
Segredos, permissões e o token
Explica onde guardar cada valor, os limites do mascaramento, permissões do token, OIDC, PRs de forks e fixação de actions.
De CI para CD
Monta um job de deploy com needs, if e environment, além de revisores, concurrency enfileirada e a configuração do Kamal.
Juntando tudo: a pipeline completa
Reúne o workflow completo num arquivo e explica o motivo de cada ajuste, das permissões ao deploy enfileirado.