Saltar al contenido

Integración CI/CD

La integración de Capgo en tu pipeline de CI/CD te permite automatizar completamente el proceso de construcción y despliegue de actualizaciones en tu aplicación. Al aprovechar los 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. Tu proceso de construcción, prueba y despliegue completo puede ser automatizado de principio a fin.

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

  • Iteraciones más rápidas: Con las implementaciones automatizadas, puede enviar actualizaciones con mayor frecuencia y con confianza. Ya no hay que esperar a los aprobaciones de QA o de lanzamiento.

La Capgo CLI es la clave para integrar Capgo en tu flujo de trabajo de CI/CD. Proporciona comandos para enviar nuevas versiones de paquetes, gestionar canales, entre otros.

El comando 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 (recomendado para CI/CD):

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

Configuración de variables de entorno para la cifrado

Sección titulada “Configuración de 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. Añádelo a su entorno de CI/CD:

    • GitHub Acciones: Añádelo CAPGO_PRIVATE_KEY a los secretos de su repositorio
    • GitLab CI: Añádelo como una variable oculta en sus ajustes de proyecto
    • CircleCI: Añádelo como una variable de entorno en sus ajustes de proyecto
    • Jenkins: Añádelo como un credencial de texto secreto
  3. Utilízalo 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 de texto, lo que la hace ideal para variables de entorno en pipelines CI/CD donde no deseas crear archivos temporales.

Este comando sube la construcción web actual al canal especificado. Por lo general, ejecutas este comando como el último paso en tu pipeline CI/CD, después de que la construcción web se haya completado con éxito.

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

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

  2. Configurar el bundle upload comando: Agrega un paso a tu configuración 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 }}
    \n Reemplazar Production con el canal que deseas desplegar a, ${{ secrets.CAPGO_API_KEY }} con la variable de entorno que contiene tu API clave, y agregar --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}" si estás utilizando 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:\n
    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 }}"

La forma recomendada de manejar la versión con Capgo es establecer la versión en su archivo importándola desde capacitor.config.ts Copiar a portapapeles package.json:

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

Usar semantic-release (o cualquier otra herramienta) para actualizar la

  1. versión package.json Construir tu aplicación con la versión actualizada automáticamente incluida
  2. Subir el paquete con la versión correcta
  3. Tu flujo de trabajo de CI/CD sería como este:

Gestión de versiones con Semantic-release

- 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}"
}
]
]
}

Analiza los mensajes de commit para determinar el número de versión siguiente, siguiendo la especificación de Conventional Commits.

  1. Genera notas de lanzamiento basadas en los commits desde la última versión.
  2. Actualiza el archivo con las nuevas notas de lanzamiento.
  3. Actualiza la versión, que será recogida por tu __CAPGO_KEEP_0__.config. CHANGELOG.md Comitea la versión actualizada.
  4. Analyzes commit messages to determine the next version number, following the Conventional Commits spec. package.json version, which will be picked up by your capacitor.config.
  5. Updates the file with the new release notes. CHANGELOG.md, package.jsony cualquier otro archivo modificado de regreso a la repositorio.

Asegúrese de ejecutar semantic-release antes de construir su aplicación para que la versión actualizada de package.json se incluya en su construcción a través de la capacitor.config.

Los nombres de los paquetes deben ser únicos (las versiones eliminadas ocupan aún su nombre). Si el CI sigue subiendo la misma package.json versión, la subida falla. Prefiera aumentar package.json (por ejemplo, con semantic-release). Cuando eso no es práctico, deje que el CLI elija la próxima versión semver libre del canal vinculado al paquete, o de lo contrario la última versión remota de la aplicación:

Ventana de terminal
npx @capgo/cli@latest bundle upload --channel=production --auto-bump
npx @capgo/cli@latest bundle upload --auto-bump major
npx @capgo/cli@latest bundle upload --auto-bump minor # default when the flag has no value
npx @capgo/cli@latest bundle upload --auto-bump patch # alias: fix
npx @capgo/cli@latest bundle upload --auto-bump metadata
npx @capgo/cli@latest bundle upload --channel=production --auto-bump ai

--auto-bump ai usa Capgo Cloudflare Workers AI para comparar los archivos de paquete locales con el delta de manifestos de canal previos Capgo, selecciona major | minor | patch | metadatay imprime una breve razón. Sin versión previa Capgo, se omite el AI y el aumento es patch.

No combine con --auto-bump con --bundle / -b. Consulte la bundle upload referencia para la lista completa de opciones.

If you encounter issues with your Capgo CI/CD integration, here are a few things to check:

  • Si encuentra problemas con la integración de CI/CD de API, aquí hay algunas cosas a verificar:API clave

  • : Asegúrese de que su CLI clave sea válida y tenga los permisos necesarios. Si utiliza una variable de entorno, compruebe que está configurada correctamente. Si no, consulte la documentación de CLI para obtener más información sobre la versión CLI que está utilizando.: Asegúrese de utilizar la versión más reciente de los Capgo CLI. Las versiones antiguas pueden tener problemas de compatibilidad o faltarle ciertas características.

  • Artículos de compilación: Confirme que su compilación web está generando los archivos de salida esperados. El Capgo CLI requiere 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 Capgo. Problemas con los firewalls o los proxies pueden interferir con el upload comando.

: Si sigue teniendo problemas, póngase en contacto con el soporte de Capgo para obtener asistencia. Ellos pueden ayudar a resolver cualquier problema con su configuración específica.

Integrar Capgo en su pipeline de CI/CD con un manejo adecuado de versiones puede simplificar significativamente su flujo de trabajo de desarrollo. Al automatizar sus despliegues y versionar a través del enfoque capacitor.config, puede enviar actualizaciones más rápido y con más confianza.

El enfoque recomendado de establecer la versión en su 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 crear 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 referencia de CLI. Y para una exploración más profunda de la configuración de semantic-release, consulta los documentos de semantic-release.

¡Feliz despliegue!

Sigue adelante desde la integración CI/CD

Título de sección: Sigue adelante desde la integración CI/CD

Si estás utilizando Integración CI/CD contexto: Página/área: Capgo Builder / producto de construcción nativa en la nube. Rol: Etiqueta de IU corta o elemento de navegación. Clave de mensaje `native_build_feature_ci_cd` (Native Build Feature Ci Cd). para planificar la automatización de CI/CD, conecta con la integración de CI/CD de Capgo para el flujo de trabajo del producto en Capgo CI/CD, Capgo Compilaciones Nativas para el flujo de trabajo del producto en Capgo Compilaciones Nativas, Capgo Integraciones for the product workflow in Capgo Integrations, para el flujo de trabajo del producto en GitHub Integraciones, GitHub Integración de Acciones para el detalle de implementación en __CAPGO_KEEP_0__ Integración de Acciones, y Integración CI/CD de GitLab