Introducción

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 configurar un pipeline de CI/CD para una aplicación Vue.js, utilizando herramientas populares como GitHub Actions y Netlify.

Objetivos

  • Entender los conceptos básicos de CI/CD.
  • Configurar un pipeline de CI/CD para una aplicación Vue.js.
  • Automatizar pruebas y despliegues.

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 cada cambio que pasa todas las etapas del pipeline de producción se despliega automáticamente en producción. Esto asegura que el software puede ser liberado en cualquier momento.

Configuración del Pipeline de CI/CD

Herramientas Necesarias

  • GitHub: Para el control de versiones y almacenamiento del código.
  • GitHub Actions: Para la automatización de flujos de trabajo.
  • Netlify: Para el despliegue de la aplicación.

Paso 1: Configuración del Repositorio en GitHub

  1. Crear un Repositorio: Si aún no tienes un repositorio para tu proyecto Vue.js, crea uno en GitHub.
  2. Subir el Código: Asegúrate de que tu código esté subido al repositorio.

Paso 2: Configuración de GitHub Actions

  1. Crear un Archivo de Workflow: En tu repositorio, crea un archivo en .github/workflows/ci.yml.
name: 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 dependencies
      run: npm install

    - name: Run tests
      run: npm run test

    - name: Build project
      run: npm run build

    - name: Deploy to Netlify
      uses: nwtgck/[email protected]
      with:
        publish-dir: ./dist
        production-deploy: true
      env:
        NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
        NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}

Paso 3: Configuración de Netlify

  1. Crear una Cuenta en Netlify: Si no tienes una cuenta, regístrate en Netlify.
  2. Crear un Nuevo Sitio: Conecta tu repositorio de GitHub a Netlify y configura los ajustes de despliegue.
  3. Obtener Tokens de Autenticación: En la configuración del sitio en Netlify, obtén el NETLIFY_AUTH_TOKEN y el NETLIFY_SITE_ID.
  4. Configurar Secretos en GitHub: En tu repositorio de GitHub, ve a Settings > Secrets y añade los secretos NETLIFY_AUTH_TOKEN y NETLIFY_SITE_ID.

Paso 4: Ejecutar el Pipeline

  1. Hacer un Push al Repositorio: Realiza un push de tu código a la rama main.
  2. Verificar la Ejecución: Ve a la pestaña Actions en tu repositorio de GitHub para ver la ejecución del pipeline.

Ejercicio Práctico

Ejercicio 1: Configurar CI/CD para una Aplicación Vue.js

  1. Crear un Repositorio en GitHub: Si no tienes uno, crea un nuevo repositorio.
  2. Subir una Aplicación Vue.js: Sube una aplicación Vue.js básica al repositorio.
  3. Configurar GitHub Actions: Crea el archivo ci.yml en .github/workflows/ y configura el pipeline como se muestra arriba.
  4. Configurar Netlify: Conecta tu repositorio a Netlify y configura los secretos en GitHub.
  5. Verificar el Despliegue: Realiza un push y verifica que la aplicación se despliega correctamente en Netlify.

Solución

  1. Repositorio en GitHub: Enlace al repositorio de ejemplo
  2. Archivo de Workflow: .github/workflows/ci.yml
name: 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 dependencies
      run: npm install

    - name: Run tests
      run: npm run test

    - name: Build project
      run: npm run build

    - name: Deploy to Netlify
      uses: nwtgck/[email protected]
      with:
        publish-dir: ./dist
        production-deploy: true
      env:
        NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
        NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}

Conclusión

En esta sección, has aprendido a configurar un pipeline de CI/CD para una aplicación Vue.js utilizando GitHub Actions y Netlify. Esta configuración te permitirá automatizar el proceso de pruebas y despliegue, asegurando que tu aplicación esté siempre en un estado desplegable. En el siguiente módulo, aplicaremos estos conocimientos en proyectos reales para consolidar lo aprendido.

Curso de Vue.js

Módulo 1: Introducción a Vue.js

Módulo 2: Conceptos Básicos de Vue.js

Módulo 3: Componentes de Vue.js

Módulo 4: Vue Router

Módulo 5: Gestión de Estado con Vuex

Módulo 6: Directivas de Vue.js

Módulo 7: Plugins de Vue.js

Módulo 8: Pruebas en Vue.js

Módulo 9: Conceptos Avanzados de Vue.js

Módulo 10: Construcción y Despliegue de Aplicaciones Vue.js

Módulo 11: Proyectos Reales con Vue.js

© Copyright 2024. Todos los derechos reservados