Resolução de Conflitos no GitHub Actions: Modernização de Ruby 2.6 para 3.3 e a Falha da Gem FFI
[!NOTE] Resumo Executivo (DEV-2026-001): Diagnóstico profundo e correção definitiva de falha em pipeline de CI no GitHub Actions decorrente do uso de containers legados com Ruby 2.6 incompatíveis com gems modernas.
🚨 O Desafio Técnico / Contexto
O workflow de CI rodava o container ‘jekyll/builder:3.8’ (com Ruby 2.6.3p62). O Bundler falhou ao instalar a gem ‘ffi-1.17.4’, que exige estritamente Ruby >= 3.0, quebrando o pull request com Exit Code 5.
💡 Principais Lições Aprendidas & Descobertas
- 💡 Imagens Docker antigas de construtores de Jekyll congelam versões descontinuadas do Ruby e quebram quando o Rubygems resolve dependências transitivas contemporâneas.
- 💡 O padrão moderno oficial para Jekyll no GitHub Actions dispensa Docker e usa a action nativa ‘ruby/setup-ruby@v1’ com ‘bundler-cache: true’.
- 💡 A migração para ‘actions/checkout@v4’ e Ruby 3.3 reduziu o tempo médio de compilação da pipeline de 3 minutos para apenas 17 segundos.
🛠️ Especificação Técnica & Código-Chave
# .github/workflows/ci.yml moderno
name: Beautiful Jekyll CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
bundler-cache: true
- run: bundle exec jekyll build --future
env:
JEKYLL_ENV: production
📈 Impacto no Ecossistema & Valor Prático
Pipeline de CI 100% verde, eliminando alertas de depreciação do Node e blindando o repositório contra dependências que exigem Ruby 3+.
- Projetos Relacionados:
artesdosul.github.io,araguaci.github.io - Registro de Origem:
_data/daily.dev-01.yml
Publicado originalmente como parte do Diário de Desenvolvimento 2026 do ecossistema Artes do Sul & Araguaci.