Saltar al contenido

Integración de CI/CD

Al integrar Capgo en tu pipeline de CI/CD, puedes automatizar completamente el proceso de construcción y despliegue de actualizaciones de tu aplicación. Al aprovechar el Capgo CLI y semantic-release, puedes asegurar despliegues consistentes y confiables, y habilitar la iteración rápida.

  • Automatización: Ya no hay pasos manuales ni espacio para errores humanos. Puede automatizar todo su proceso de compilación, prueba y despliegue desde el principio hasta el final.

  • Consistencia: Cada despliegue sigue el mismo conjunto de pasos, garantizando un proceso predecible y repetible. Esto es especialmente valioso cuando tiene varios miembros del equipo contribuyendo code.

  • Iteraciones más rápidas: Con despliegues automatizados, puede enviar actualizaciones con mayor frecuencia y con confianza. Ya no tiene que esperar a la aprobación de QA o de lanzamiento.

La Capgo CLI es la clave para integrar Capgo en su flujo de trabajo de CI/CD. Proporciona comandos para enviar nuevas versiones de paquetes, gestionar canales y más.

La orden más importante para la integración de CI/CD es bundle upload:

Ventana de terminal
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY

Si utiliza cifrado, debe proporcionarlo de una de las siguientes maneras:

Usando la ruta del archivo de clave privada:

Ventana de terminal
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-v2 PRIVATE_KEY_PATH

Usando el contenido de la clave privada directamente (recomendado para CI/CD):

Ventana de terminal
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 PRIVATE_KEY_CONTENT

Usando variables de entorno (buena práctica para CI/CD):

Ventana de terminal
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 "$CAPGO_PRIVATE_KEY"

Configurando variables de entorno para la cifrado

Sección titulada “Configurando variables de entorno para la cifrado”

Para entornos de CI/CD, se recomienda almacenar tu clave privada como una variable de entorno en lugar de un archivo. Aquí está cómo configurarlo:

  1. Obtén el contenido de tu clave privada:

    Ventana de terminal
    cat .capgo_key_v2 | pbcopy

    Esto copia el contenido de la clave a tu portapapeles.

  2. Agregarla a tu entorno de CI/CD:

    • GitHub Acciones: Agregar CAPGO_PRIVATE_KEY a los secretos de tu repositorio
    • Secretos de GitLab CI: Agregue como una variable oculta en las configuraciones de su proyecto
    • CircleCI: Agregue como una variable de entorno en las configuraciones de su proyecto
    • Jenkins: Agregue como un texto de credencial secreta
  3. Utilícelo en su pipeline:

    - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"

Nota: La --key-data-v2 bandera permite pasar el contenido de la clave privada directamente como una cadena, lo que la hace perfecta para variables de entorno en pipelines CI/CD donde no se desean crear archivos temporales.

Esta orden sube la compilación web actual al canal especificado. Por lo general, ejecuta esta orden como el último paso en su pipeline CI/CD, después de que la compilación web se haya completado con éxito.

Mientras que los pasos exactos variarán dependiendo de la herramienta de CI/CD que elijas, el proceso general para integrar Capgo se parece a esto:

  1. Genera una clave API: Inicia sesión en la consola de Capgo y crea una nueva clave API de depuración. Esta clave se utilizará para autenticar el CLI en tu entorno de CI/CD. Manténla en secreto y nunca la comitas a tu repositorio!

  2. Configura el bundle upload comando: Agrega un paso a tu configuración de CI/CD que ejecute el bundle upload comando con los argumentos adecuados:

    upload.yml
    - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}
    Reemplaza Production con el canal al que deseas desplegar a ${{ secrets.CAPGO_API_KEY }} con la variable de entorno que contiene tu clave API, y agregar --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}" si se está utilizando la cifrado.

  3. Agregar el upload paso después de tu compilación web: Asegúrate de que el upload step comes after your web build has completed successfully. This ensures you’re always deploying your latest code.\n Here’s an example configuration for GitHub Actions:\n

    Aquí tienes un ejemplo de configuración para __CAPGO_KEEP_1__ Actions:
    name: Deploy to Capgo
    on:
    push:
    branches: [main]
    jobs:
    deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6
    - uses: actions/setup-node@v6
    with:
    node-version: '24'
    - run: npm ci
    - run: npm run build
    - run: npm install -g @capgo/cli
    - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"

The recommended way to handle versioning with Capgo is to set the version in your capacitor.config.ts La forma recomendada de manejar la versión con __CAPGO_KEEP_0__ es establecer la versión en tu archivo package.json:

import pkg from './package.json'
const config: CapacitorConfig = {
// ... other config
plugins: {
CapacitorUpdater: {
version: pkg.version,
}
}
}

Esta aproximación te permite:

  1. Usar semantic-release (o cualquier otra herramienta) para actualizar el package.json versión
  2. Construye tu aplicación con la versión actualizada incluida automáticamente
  3. Sube el paquete con la versión correcta

Tu flujo de trabajo CI/CD sería como sigue:

- run: npm ci
- run: npx semantic-release # Updates package.json version
- run: npm run build # Builds with new version from capacitor.config
- run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}

Aquí tienes un archivo de configuración de ejemplo para semantic-release: .releaserc Copiar a portapapeles

{
"branches": [
"main",
{
"name": "beta",
"prerelease": true
}
],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/changelog",
[
"@semantic-release/git",
{
"assets": ["CHANGELOG.md", "package.json"],
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
}
]
]
}

Copiar a portapapeles

  1. Analiza los mensajes de commit para determinar el número de versión siguiente, siguiendo la especificación de Conventional Commits.
  2. Genera notas de lanzamiento basadas en los commits desde la última versión.
  3. actualiza el archivo con las nuevas notas de lanzamiento. CHANGELOG.md actualiza la versión, que será capturada por tu __CAPGO_KEEP_0__.config.
  4. Comitea los archivos actualizados package.json version, which will be picked up by your capacitor.config.
  5. Asegúrate de ejecutar semantic-release antes de construir tu aplicación para que la versión actualizada de __CAPGO_KEEP_0__.config. CHANGELOG.md, package.jsonse incluya en tu build.

Sección de solución de problemas package.json is included in your build through the capacitor.config.

Sección de solución de problemas

Sección de solución de problemas

If you encounter issues with your Capgo integración de CI/CD, aquí hay algunas cosas que verificar:

  • API clave: Asegúrese de que su API clave sea válida y tenga los permisos necesarios. Si utiliza una variable de entorno, compruebe que está configurada correctamente.

  • CLI versión: Asegúrese de que esté utilizando la última versión del Capgo CLI. Las versiones antiguas pueden tener problemas de compatibilidad o faltar ciertas características.

  • Artículos de compilación: Confirme que su compilación web está generando los archivos de salida esperados. El Capgo CLI necesita una compilación web válida para crear un paquete.

  • Conectividad de red: Verifique que su entorno de CI/CD tenga acceso a Internet a los servidores de Capgo. Problemas con los firewalls o los proxies pueden interferir con el comando. upload Si sigue teniendo problemas, póngase en contacto con el __CAPGO_KEEP_0__ soporte para obtener asistencia. Pueden ayudarlo a depurar cualquier problema con su configuración específica.

If you’re still having trouble, reach out to Capgo support for assistance. They can help troubleshoot any issues with your specific setup.

Si sigue teniendo problemas, póngase en contacto con el __CAPGO_KEEP_0__ soporte para obtener asistencia. Pueden ayudarlo a depurar cualquier problema con su configuración específica.

Sección titulada “Conclusion”

Integrar Capgo en tu pipeline de CI/CD con un manejo de versiones adecuado puede simplificar significativamente tu flujo de trabajo de desarrollo. Al automatizar tus despliegues y versionar mediante el enfoque capacitor.config, puedes enviar actualizaciones más rápido y con más confianza.

El enfoque recomendado de establecer la versión en tu capacitor.config.ts archivo y utilizar semantic-release para actualizar package.json proporciona un proceso de despliegue robusto y confiable que te permite enfocarte en construir características excelentes en lugar de preocuparte por los pasos de liberación manual.

Para obtener más detalles sobre los comandos y opciones de Capgo CLI, consulta la CLI referencia. Y para una exploración más profunda de la configuración de semantic-release, consulta los documentos de semantic-release.

¡Feliz despliegue!

Si estás utilizando Integración CI/CD conectarlo con Capgo Integración CI/CD para el flujo de trabajo del producto en Capgo Integración CI/CD, Capgo Compilaciones Nativas para el flujo de trabajo del producto en Capgo Compilaciones Nativas, Capgo Integraciones para el flujo de trabajo del producto en Capgo Integraciones, GitHub Integración de Acciones para el detalle de implementación en GitHub Integración de Acciones, y Integración CI/CD de GitLab para los detalles de implementación en la Integración de GitLab CI/CD.