En aquest tema, aprendrem sobre la integració i el lliurament continu (CI/CD) en el context del desenvolupament d'aplicacions amb Ionic. 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 programari i accelerant el temps de lliurament.

Objectius del Tema

  • Entendre els conceptes bàsics de la CI/CD.
  • Configurar un pipeline de CI/CD per a una aplicació Ionic.
  • Integrar eines de CI/CD com GitHub Actions, Travis CI o CircleCI.
  • Automatitzar proves, construcció i desplegament de l'aplicació.

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 assegura que el codi que passa les proves automatitzades es pot desplegar automàticament en un entorn de producció. Això permet que les aplicacions es lliurin de manera ràpida i segura.

Configurant un Pipeline de CI/CD

Pas 1: Configuració del Repositori

Abans de configurar el pipeline de CI/CD, assegura't que el teu codi estigui en un sistema de control de versions com GitHub, GitLab o Bitbucket.

Pas 2: Eines de CI/CD

Hi ha diverses eines que pots utilitzar per configurar CI/CD per a la teva aplicació Ionic. Algunes de les més populars són:

  • GitHub Actions
  • Travis CI
  • CircleCI

Pas 3: Exemple amb GitHub Actions

1. Crear un Fitxer de Workflow

Crea un fitxer anomenat ci.yml dins del directori .github/workflows/ del teu repositori.

name: CI/CD Pipeline

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 Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '14'

    - name: Install dependencies
      run: npm install

    - name: Build Ionic app
      run: npm run build

    - name: Run tests
      run: npm test

    - name: Deploy to Firebase Hosting
      if: github.ref == 'refs/heads/main'
      run: |
        npm install -g firebase-tools
        firebase deploy --token ${{ secrets.FIREBASE_TOKEN }}

2. Explicació del Workflow

  • Checkout repository: Clona el repositori.
  • Set up Node.js: Configura l'entorn Node.js.
  • Install dependencies: Instal·la les dependències del projecte.
  • Build Ionic app: Construeix l'aplicació Ionic.
  • Run tests: Executa les proves automatitzades.
  • Deploy to Firebase Hosting: Desplega l'aplicació a Firebase Hosting (només si es fa un push a la branca main).

Pas 4: Secrets i Tokens

Per desplegar l'aplicació, necessitaràs configurar secrets com el FIREBASE_TOKEN. A GitHub, pots afegir secrets al teu repositori anant a Settings > Secrets > New repository secret.

Exercici Pràctic

Objectiu

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

Passos

  1. Crea un nou repositori a GitHub i puja el teu projecte Ionic.
  2. Crea el fitxer ci.yml dins del directori .github/workflows/.
  3. Afegeix el contingut del workflow proporcionat anteriorment.
  4. Configura els secrets necessaris per al desplegament.
  5. Fes un commit i push dels canvis al repositori.
  6. Verifica que el pipeline s'executa correctament i que l'aplicació es desplega a Firebase Hosting.

Solució

Segueix els passos detallats anteriorment per configurar el pipeline de CI/CD. Si tens problemes, revisa els logs de GitHub Actions per identificar i solucionar els errors.

Resum

En aquest tema, hem après els conceptes bàsics de la integració i el lliurament continu, i hem configurat un pipeline de CI/CD per a una aplicació Ionic utilitzant GitHub Actions. La CI/CD és una pràctica essencial que ajuda a millorar la qualitat del programari i a accelerar el temps de lliurament, permetent desplegar aplicacions de manera ràpida i segura.

© Copyright 2024. Tots els drets reservats