Introdução
A automação de processos é uma das chaves para aumentar a produtividade no desenvolvimento de software. No universo Flutter, muitos desenvolvedores ainda enfrentam desafios na hora de configurar pipelines de integração contínua e entrega contínua — os famosos CI/CD. Felizmente, com o GitHub Actions, é possível montar uma pipeline robusta e gratuita para automatizar testes, builds e até deploys de aplicativos Flutter de forma profissional.
Neste artigo, vamos mostrar como configurar uma pipeline CI/CD completa usando o GitHub Actions para projetos Flutter, desde a instalação até a execução automática de testes e builds em cada push no repositório.
O que é CI/CD e por que usá-lo com Flutter?
CI/CD é a combinação de dois processos importantes:
- CI (Continuous Integration): automatiza a execução de testes e validação do código a cada push, garantindo que a base esteja sempre estável.
- CD (Continuous Delivery ou Deployment): entrega automática do aplicativo para ambientes de homologação ou produção.
No contexto do Flutter, usar CI/CD traz várias vantagens:
- Detectar falhas rapidamente com testes automatizados
- Evitar erros manuais ao compilar e empacotar aplicativos
- Reduzir tempo entre commits e publicação
- Aumentar a confiabilidade e confiança no código entregue
Pré-requisitos
Antes de configurar o GitHub Actions, você vai precisar:
- Um repositório no GitHub com seu projeto Flutter
- Ter o Flutter configurado corretamente no projeto
- Ter uma conta na Google Play Console ou Apple Developer caso queira publicar builds automaticamente (não obrigatório para este artigo)
Estrutura de uma pipeline CI/CD com GitHub Actions
No GitHub Actions, pipelines são definidas através de workflows, arquivos .yml localizados dentro da pasta .github/workflows no seu projeto. Eles descrevem:
- Triggers: quando o pipeline será executado (push, pull request, cron etc)
- Jobs: o que deve ser feito
- Steps: comandos executados dentro de cada job
Criando seu primeiro workflow CI/CD para Flutter
- Crie a pasta de workflows no seu projeto
mkdir -p .github/workflows
- Crie o arquivo de workflow
Vamos criar um arquivo chamado flutter-ci.yml com o seguinte conteúdo:
name: Flutter CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout o código
uses: actions/checkout@v3
- name: Configurar Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.10.0'
- name: Instalar dependências
run: flutter pub get
- name: Analisar o código
run: flutter analyze
- name: Rodar testes
run: flutter test
Esse workflow será executado sempre que houver um push ou pull request na branch main. Ele faz checkout do código, instala o Flutter, baixa dependências, roda análise estática e executa os testes.
Testando o workflow
Faça um commit no repositório e envie para a branch main. Acesse a aba Actions no GitHub e veja a execução da pipeline. Caso algo falhe, será possível identificar rapidamente o ponto de erro.
Adicionando o build para Android e iOS
Para compilar o APK e o IPA (iOS), você pode adicionar os seguintes passos:
- name: Build APK
run: flutter build apk --release
# Para iOS (requer MacOS e configurações extras)
# - name: Build iOS
# run: flutter build ios --release
⚠️ O GitHub Actions roda em máquinas Linux por padrão. Para builds iOS é necessário usar runners macOS, que são pagos.
Salvando o APK como artefato
Você pode armazenar o APK gerado como artefato no GitHub:
- name: Upload APK
uses: actions/upload-artifact@v3
with:
name: apk-release
path: build/app/outputs/flutter-apk/app-release.apk
Isso facilita o download do APK direto pela interface do GitHub após a execução da pipeline.
Automatizando deploy (opcional)
Quer levar ainda mais longe? É possível adicionar deploys automatizados para serviços como:
- Firebase App Distribution
- Google Play Console (via Fastlane)
- App Store (com Fastlane e MacOS runner)
Esses passos exigem configurações adicionais como tokens, chaves de serviço e permissões específicas.
Boas práticas
- Sempre mantenha seus workflows simples e separados por responsabilidade (testes, build, deploy)
- Utilize secrets no GitHub para armazenar chaves e senhas com segurança
- Rode testes e análise estática em todos os pull requests para evitar problemas antes do merge
- Documente seu workflow no README para facilitar onboarding da equipe
Conclusão
Com o GitHub Actions, é possível criar pipelines poderosas para Flutter sem depender de ferramentas pagas ou configurações complexas. Mesmo um projeto pequeno já se beneficia da automação de testes e builds, permitindo entregas mais seguras e rápidas. Agora que você já viu como configurar do zero até o build com artefato, é hora de aplicar isso no seu projeto e acelerar seu desenvolvimento com confiança.
Conteúdo relacionado
- Guia prático para usar banco de dados Firebase com Flutter
- Como consumir a API do ChatGPT com Node.js (passo a passo em português)
- Boas práticas de Clean Code em JavaScript com exemplos reais
Você também pode conferir a documentação oficial do flutter e a documentação do github actions para continuar os seus estudos.




