La integración y despliegue continuos (CI/CD) son prácticas esenciales en el desarrollo moderno de software que permiten a los equipos entregar cambios de código de manera más rápida y segura. En este tema, aprenderás cómo aplicar estas prácticas en el contexto de un proyecto Apache Cordova.

Objetivos del Tema

  • Comprender los conceptos básicos de CI/CD.
  • Configurar un pipeline de CI/CD para un proyecto Cordova.
  • Integrar herramientas populares de CI/CD.
  • Desplegar automáticamente aplicaciones Cordova a diferentes plataformas.

Conceptos Básicos de CI/CD

Integración Continua (CI)

La integración continua es una práctica de desarrollo de software en la que los desarrolladores integran su código en un repositorio compartido varias veces al día. Cada integración es verificada por una build automatizada (incluyendo pruebas) para detectar errores lo antes posible.

Despliegue Continuo (CD)

El despliegue continuo es una práctica en la que el código que pasa todas las etapas de la pipeline de CI se despliega automáticamente a un entorno de producción. Esto asegura que el software siempre esté en un estado desplegable.

Configuración de un Pipeline de CI/CD para Cordova

Herramientas Populares de CI/CD

  • Jenkins: Una herramienta de automatización de código abierto.
  • Travis CI: Un servicio de CI basado en la nube.
  • CircleCI: Una plataforma de CI/CD que permite la automatización de la entrega de software.
  • GitHub Actions: Una plataforma de CI/CD integrada en GitHub.

Ejemplo de Configuración con GitHub Actions

Paso 1: Crear un Archivo de Workflow

Crea un archivo llamado cordova.yml en el directorio .github/workflows/ de tu repositorio.

name: Cordova CI/CD Pipeline

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

jobs:
  build:
    runs-on: ubuntu-latest

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

    - name: Set up Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '14'

    - name: Install Cordova
      run: npm install -g cordova

    - name: Install dependencies
      run: npm install

    - name: Build Cordova project
      run: cordova build

    - name: Archive build artifacts
      uses: actions/upload-artifact@v2
      with:
        name: cordova-build
        path: platforms/android/app/build/outputs/apk/debug/app-debug.apk

Paso 2: Configurar Variables de Entorno

Asegúrate de configurar las variables de entorno necesarias para la firma y despliegue de tu aplicación. Esto puede incluir claves de API, credenciales de la tienda de aplicaciones, etc.

Despliegue Automático

Despliegue a Google Play Store

Para desplegar automáticamente a Google Play Store, puedes usar la herramienta fastlane.

  1. Instalar Fastlane:

    sudo gem install fastlane -NV
    
  2. Configurar Fastlane: Crea un archivo Fastfile en el directorio fastlane/ de tu proyecto.

    default_platform(:android)
    
    platform :android do
      desc "Deploy to Google Play"
      lane :deploy do
        gradle(task: "assembleRelease")
        upload_to_play_store(track: "alpha")
      end
    end
    
  3. Integrar Fastlane en GitHub Actions: Actualiza tu archivo cordova.yml para incluir el despliegue.

    - name: Deploy to Google Play
      run: fastlane android deploy
      env:
        GOOGLE_PLAY_KEY: ${{ secrets.GOOGLE_PLAY_KEY }}
        PACKAGE_NAME: "com.example.yourapp"
    

Ejercicio Práctico

Ejercicio 1: Configurar CI/CD con GitHub Actions

  1. Crea un nuevo proyecto Cordova.
  2. Configura un repositorio en GitHub y sube tu proyecto.
  3. Crea un archivo de workflow en .github/workflows/cordova.yml.
  4. Configura el pipeline para que construya tu proyecto Cordova en cada push a la rama main.

Solución del Ejercicio 1

name: Cordova CI/CD Pipeline

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

jobs:
  build:
    runs-on: ubuntu-latest

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

    - name: Set up Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '14'

    - name: Install Cordova
      run: npm install -g cordova

    - name: Install dependencies
      run: npm install

    - name: Build Cordova project
      run: cordova build

    - name: Archive build artifacts
      uses: actions/upload-artifact@v2
      with:
        name: cordova-build
        path: platforms/android/app/build/outputs/apk/debug/app-debug.apk

Resumen

En esta sección, hemos cubierto los conceptos básicos de la integración y despliegue continuos y cómo aplicarlos a un proyecto Apache Cordova. Aprendiste a configurar un pipeline de CI/CD utilizando GitHub Actions y cómo desplegar automáticamente tu aplicación a Google Play Store utilizando Fastlane. Estas prácticas te ayudarán a mantener un flujo de trabajo eficiente y a entregar software de alta calidad de manera continua.

En el próximo módulo, exploraremos estudios de caso y aplicaciones del mundo real para consolidar los conocimientos adquiridos y ver cómo se aplican en proyectos reales.

© Copyright 2024. Todos los derechos reservados