CI/CD com GitHub Actions para projetos Flutter do Zero ao Deploy

CI/CD com GitHub Actions para projetos Flutter do Zero ao Deploy

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

  1. Crie a pasta de workflows no seu projeto
mkdir -p .github/workflows
  1. 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

Você também pode conferir a documentação oficial do flutter e a documentação do github actions para continuar os seus estudos.

Leave a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Scroll to Top