La Integració i Desplegament Continu (CI/CD) és una pràctica essencial en el desenvolupament de programari modern que permet automatitzar el procés de construcció, prova i desplegament de les aplicacions. En aquest tema, aprendrem com configurar un pipeline CI/CD per a una aplicació Flutter, utilitzant eines populars com GitHub Actions, Travis CI i CircleCI.

Objectius del Tema

  • Comprendre els conceptes bàsics de CI/CD.
  • Configurar un pipeline CI/CD per a una aplicació Flutter.
  • Automatitzar les proves i la construcció de l'aplicació.
  • Desplegar l'aplicació a les botigues d'aplicacions o altres entorns.

Conceptes Bàsics de CI/CD

Integració Contínua (CI)

La Integració Contínua és una pràctica de desenvolupament de programari on els desenvolupadors integren els seus canvis de codi en un repositori compartit diverses vegades al dia. Cada integració és verificada per una construcció automatitzada i proves per detectar errors tan aviat com sigui possible.

Desplegament Continu (CD)

El Desplegament Continu és una extensió de la Integració Contínua que automatitza el desplegament de l'aplicació a un entorn de producció. Això permet que els canvis de codi siguin desplegats de manera ràpida i segura.

Configuració d'un Pipeline CI/CD per a Flutter

Eines Populars de CI/CD

  • GitHub Actions: Una plataforma d'automatització de fluxos de treball integrada a GitHub.
  • Travis CI: Un servei de CI/CD allotjat que s'integra amb GitHub.
  • CircleCI: Una plataforma de CI/CD que ofereix integració amb diversos sistemes de control de versions.

Exemple amb GitHub Actions

Pas 1: Crear un Repositori a GitHub

  1. Crea un nou repositori a GitHub per a la teva aplicació Flutter.
  2. Puja el codi de la teva aplicació al repositori.

Pas 2: Configurar GitHub Actions

  1. A la pàgina del teu repositori, ves a la pestanya "Actions".
  2. Selecciona "Set up a workflow yourself" per crear un nou fitxer de workflow.

Pas 3: Crear el Fitxer de Workflow

Crea un fitxer anomenat flutter.yml dins la carpeta .github/workflows/ del teu repositori amb el següent contingut:

name: Flutter CI

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v2

    - name: Set up Flutter
      uses: subosito/flutter-action@v1
      with:
        flutter-version: '2.5.3'

    - name: Install dependencies
      run: flutter pub get

    - name: Run tests
      run: flutter test

    - name: Build APK
      run: flutter build apk --release

    - name: Upload APK
      uses: actions/upload-artifact@v2
      with:
        name: app-release.apk
        path: build/app/outputs/flutter-apk/app-release.apk

Explicació del Fitxer de Workflow

  • name: Nom del workflow.
  • on: Esdeveniments que desencadenen el workflow (push i pull_request a la branca main).
  • jobs: Definició dels treballs a realitzar.
    • runs-on: Sistema operatiu on s'executarà el treball (ubuntu-latest).
    • steps: Passos del treball.
      • Checkout repository: Clona el repositori.
      • Set up Flutter: Configura Flutter amb la versió especificada.
      • Install dependencies: Instal·la les dependències de Flutter.
      • Run tests: Executa les proves de Flutter.
      • Build APK: Construeix l'APK de l'aplicació en mode release.
      • Upload APK: Puja l'APK construït com a artefacte.

Desplegament a les Botigues d'Aplicacions

Desplegament a Google Play Store

Per desplegar l'aplicació a Google Play Store, pots utilitzar eines com fastlane per automatitzar el procés. A continuació es mostra un exemple bàsic de configuració de fastlane:

  1. Instal·la fastlane:

    gem install fastlane
    
  2. Inicialitza fastlane al teu projecte:

    fastlane init
    
  3. Configura el fitxer Fastfile per incloure una lane per a la distribució:

    lane :deploy do
      gradle(
        task: "assemble",
        build_type: "Release"
      )
      upload_to_play_store(
        track: 'production',
        release_status: 'completed'
      )
    end
    
  4. Executa la lane de deploy:

    fastlane deploy
    

Exercici Pràctic

Objectiu

Configurar un pipeline CI/CD per a una aplicació Flutter utilitzant GitHub Actions.

Passos

  1. Crea un nou repositori a GitHub i puja el codi de la teva aplicació Flutter.
  2. Configura GitHub Actions seguint els passos descrits anteriorment.
  3. Realitza un commit i push al repositori per veure el pipeline en acció.

Solució

Segueix els passos detallats a la secció "Exemple amb GitHub Actions" per configurar el pipeline CI/CD.

Resum

En aquest tema, hem après els conceptes bàsics de CI/CD i com configurar un pipeline CI/CD per a una aplicació Flutter utilitzant GitHub Actions. També hem vist com desplegar l'aplicació a Google Play Store utilitzant fastlane. La integració i desplegament continu permeten automatitzar el procés de construcció, prova i desplegament, millorant l'eficiència i la qualitat del desenvolupament de programari.

Curs de Desenvolupament Flutter

Mòdul 1: Introducció a Flutter

Mòdul 2: Conceptes Bàsics de Programació en Dart

Mòdul 3: Widgets de Flutter

Mòdul 4: Gestió de l'Estat

Mòdul 5: Navegació i Enrutament

Mòdul 6: Xarxes i APIs

Mòdul 7: Persistència i Emmagatzematge

Mòdul 8: Conceptes Avançats de Flutter

Mòdul 9: Proves i Depuració

Mòdul 10: Desplegament i Manteniment

Mòdul 11: Flutter per a Web i Escriptori

© Copyright 2024. Tots els drets reservats