En aquest tema, aprendrem sobre la integració i lliurament continus (CI/CD) en el context de React Native. La CI/CD és una pràctica essencial en el desenvolupament de programari modern que permet automatitzar la integració de codi i el desplegament d'aplicacions, millorant així la qualitat del codi i accelerant el procés de lliurament.

Objectius del tema

  • Comprendre els conceptes bàsics de la integració i lliurament continus.
  • Configurar un pipeline de CI/CD per a una aplicació React Native.
  • Utilitzar eines populars de CI/CD com GitHub Actions i CircleCI.
  • Automatitzar proves i desplegaments per a iOS i Android.

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 el seu codi en un repositori compartit diverses vegades al dia. Cada integració és verificada per una construcció automatitzada (incloent proves) per detectar errors tan aviat com sigui possible.

Lliurament continu (CD)

El lliurament continu és una extensió de la integració contínua que permet que el codi integrat sigui desplegat automàticament en un entorn de producció o pre-producció. Això assegura que el codi sempre estigui en un estat desplegable.

Configuració d'un pipeline de CI/CD

Eines populars de CI/CD

  • GitHub Actions: Una plataforma d'automatització de fluxos de treball que permet crear pipelines de CI/CD directament des de GitHub.
  • CircleCI: Una eina de CI/CD que ofereix integració i desplegament continus amb suport per a múltiples plataformes.

Configuració de GitHub Actions

  1. Crear un fitxer de flux de treball:

    • Crea un directori .github/workflows a la teva arrel del projecte.
    • Afegeix un fitxer YAML, per exemple, ci.yml.
  2. Definir el flux de treball:

    name: CI
    
    on:
      push:
        branches: [ main ]
      pull_request:
        branches: [ main ]
    
    jobs:
      build:
        runs-on: ubuntu-latest
    
        steps:
        - uses: actions/checkout@v2
        - name: Set up Node.js
          uses: actions/setup-node@v2
          with:
            node-version: '14'
        - run: npm install
        - run: npm test
        ```
    
    
  3. Explicació del flux de treball:

    • on: Especifica els esdeveniments que desencadenen el flux de treball (push i pull request a la branca main).
    • jobs: Defineix els treballs que s'executaran.
    • runs-on: Especifica el sistema operatiu en el qual s'executarà el treball (Ubuntu en aquest cas).
    • steps: Defineix els passos del treball, incloent la configuració de Node.js, la instal·lació de dependències i l'execució de proves.

Configuració de CircleCI

  1. Crear un fitxer de configuració:

    • Crea un directori .circleci a la teva arrel del projecte.
    • Afegeix un fitxer config.yml.
  2. Definir el flux de treball:

    version: 2.1
    
    jobs:
      build:
        docker:
          - image: circleci/node:14
        steps:
          - checkout
          - run:
              name: Install dependencies
              command: npm install
          - run:
              name: Run tests
              command: npm test
    
    workflows:
      version: 2
      build_and_test:
        jobs:
          - build
    
  3. Explicació del flux de treball:

    • version: Especifica la versió de configuració de CircleCI.
    • jobs: Defineix els treballs que s'executaran.
    • docker: Especifica la imatge Docker que s'utilitzarà.
    • steps: Defineix els passos del treball, incloent la instal·lació de dependències i l'execució de proves.
    • workflows: Defineix el flux de treball que executarà el treball build.

Automatització de proves i desplegaments

Proves automatitzades

Les proves automatitzades són essencials per assegurar la qualitat del codi. Pots utilitzar biblioteques com Jest per a proves unitàries i React Native Testing Library per a proves de components.

Desplegament automatitzat

Per desplegar automàticament la teva aplicació a l'App Store i Google Play, pots utilitzar serveis com Fastlane, que simplifiquen el procés de desplegament.

Exemple de configuració de Fastlane per a iOS

  1. Instal·lar Fastlane:

    sudo gem install fastlane -NV
    
  2. Inicialitzar Fastlane:

    fastlane init
    
  3. Configurar el fitxer Fastfile:

    platform :ios do
      desc "Deploy to App Store"
      lane :deploy do
        build_app(scheme: "YourAppScheme")
        upload_to_app_store
      end
    end
    

Exemple de configuració de Fastlane per a Android

  1. Configurar el fitxer Fastfile:
    platform :android do
      desc "Deploy to Google Play"
      lane :deploy do
        gradle(task: "assembleRelease")
        upload_to_play_store
      end
    end
    

Resum

En aquest tema, hem après els conceptes bàsics de la integració i lliurament continus i com configurar un pipeline de CI/CD per a una aplicació React Native utilitzant GitHub Actions i CircleCI. També hem vist com automatitzar proves i desplegaments per a iOS i Android utilitzant Fastlane. Aquestes pràctiques ajudaran a millorar la qualitat del codi i accelerar el procés de lliurament de la teva aplicació.

© Copyright 2024. Tots els drets reservats