Integración CI/CD
Integrar Capgo en tu pipeline de CI/CD te permite automatizar completamente el proceso de construir e implementar actualizaciones en tu aplicación. Al aprovechar la CLI de Capgo y semantic-Lanzamiento, puedes asegurar implementaciones consistentes y confiables y habilitar iteración rápida.
Beneficios de la Integración CI/CD
Section titled “Beneficios de la Integración CI/CD”-
Automatización: No más pasos manuales ni espacio para errores humanos. Todo tu proceso de construcción, prueba e implementación puede ser automatizado de principio a fin.
-
Consistencia: Cada implementación sigue el mismo conjunto de pasos, asegurando un proceso predecible y repetible. Esto es especialmente valioso cuando tienes múltiples miembros del equipo contribuyendo código.
-
Iteraciones más rápidas: Con implementaciones automatizadas, puedes enviar actualizaciones más frecuentemente y con confianza. No más espera para QA manual o aprobaciones de lanzamiento.
CLI de Capgo
Section titled “CLI de Capgo”La CLI de Capgo es la clave para integrar Capgo en tu flujo de trabajo CI/CD. Proporciona comandos para subir nuevas versiones de Paquetes, gestionar canales y más.
El comando más importante para la integración CI/CD es bundle upload:
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEYSi usas encriptación debes proporcionarla de una de estas formas:
Usando una ruta de archivo de clave privada:
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-v2 PRIVATE_KEY_PATHUsando el contenido de la clave privada directamente (recomendado para CI/CD):
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 PRIVATE_KEY_CONTENTUsando Variables de entorno (mejor práctica para CI/CD):
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 "$CAPGO_PRIVATE_KEY"Configurar Variables de Entorno para Encriptación
Section titled “Configurar Variables de Entorno para Encriptación”Para entornos CI/CD, se recomienda almacenar tu clave privada como una Variable de entorno en lugar de un archivo. Aquí está cómo configurarlo:
-
Obtén el contenido de tu clave privada:
Terminal window cat .capgo_key_v2 | pbcopyEsto copia el contenido de la clave a tu portapapeles.
-
Agrégalo a tu entorno CI/CD:
- GitHub Actions: Agrega
CAPGO_PRIVATE_KEYa los secretos de tu repositorio - GitLab CI: Agrégalo como una Variable enmascarada en la configuración de tu proyecto
- CircleCI: Agrégalo como una Variable de entorno en la configuración de tu proyecto
- Jenkins: Agrégalo como una credencial de texto secreto
- GitHub Actions: Agrega
-
Úsalo en tu pipeline:
- run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"
Nota: La bandera --key-data-v2 te permite pasar el contenido de la clave privada directamente como una cadena, haciéndolo perfecto para Variables de entorno en pipelines CI/CD donde no quieres crear archivos temporales.
Este comando sube la construcción web actual al canal especificado. Típicamente ejecutarás esto como el último paso en tu pipeline CI/CD, después de que tu construcción web se haya completado exitosamente.
Configurar Capgo en tu Pipeline CI/CD
Section titled “Configurar Capgo en tu Pipeline CI/CD”Aunque los pasos exactos variarán dependiendo de tu herramienta CI/CD de elección, el proceso general para integrar Capgo se ve así:
-
Generar una clave API: Inicia sesión en el panel de Capgo y crea una nueva clave API. Esta clave se usará para autenticar la CLI en tu entorno CI/CD. ¡Manténla secreta y nunca la comprometas en tu repositorio!
-
Configurar el comando
bundle upload: Agrega un paso a tu configuración CI/CD que ejecute el comandobundle uploadcon los argumentos apropiados:\n ReemplazaSubir.yml - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}Productioncon el canal al que quieres implementar,${{ secrets.CAPGO_API_KEY }}con la Variable de entorno que contiene tu clave API, y agrega--key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"si usas encriptación. -
Agregar el paso
uploaddespués de tu construcción web: Asegúrate de que el pasouploadvenga después de que tu construcción web se haya completado exitosamente. Esto asegura que siempre estés implementando tu código más reciente.\n Aquí hay una configuración de ejemplo para GitHub Actions:\nSubir.yml name: Deploy to Capgoon:push:branches: [main]jobs:deploy:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v6- uses: actions/setup-node@v6with: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 }}"
Gestión de Versiones con Semantic-Lanzamiento
Section titled “Gestión de Versiones con Semantic-Lanzamiento”La forma recomendada de manejar el versionado con Capgo es establecer la versión en tu archivo capacitor.config.ts importándola desde package.json:
import pkg from './package.json'
const config: CapacitorConfig = { // ... otra configuración plugins: { CapacitorUpdater: { version: pkg.version, } }}Este enfoque te permite:
- Usar semantic-Lanzamiento (o cualquier otra herramienta) para actualizar la versión de
package.json - Construir tu aplicación con la versión actualizada incluida automáticamente
- Subir el Paquete con la versión correcta
Tu flujo de trabajo CI/CD se vería así:
- run: npm ci- run: npx semantic-release # Actualiza la versión de package.json- run: npm run build # Construye con la nueva versión de capacitor.config- run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}Aquí hay un archivo de configuración .releaserc de ejemplo para semantic-Lanzamiento:
{ "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}" } ] ]}Esta configuración hace lo siguiente:
- Analiza los mensajes de commit para determinar el próximo número de versión, siguiendo la especificación de Conventional Commits.
- Genera notas de lanzamiento basadas en los commits desde el último lanzamiento.
- Actualiza el archivo
CHANGELOG.mdcon las nuevas notas de lanzamiento. - Actualiza la versión de
package.json, que será recogida por tu Capacitor.config. - Hace commit de los archivos actualizados
CHANGELOG.md,package.jsony cualquier otro archivo cambiado de vuelta al repositorio.
Asegúrate de ejecutar semantic-Lanzamiento antes de construir tu aplicación para que la versión actualizada de package.json se incluya en tu construcción a través del Capacitor.config.
Solución de Problemas
Section titled “Solución de Problemas”Si encuentras problemas con tu integración CI/CD de Capgo, aquí hay algunas cosas para verificar:
-
Clave API: Asegúrate de que tu clave API sea válida y tenga los permisos necesarios. Si usas una Variable de entorno, verifica dos veces que esté configurada correctamente.
-
Versión de CLI: Asegúrate de que estés usando la última versión de la CLI de Capgo. Las versiones antiguas pueden tener problemas de compatibilidad o carecer de ciertas características.
-
Artefactos de construcción: Confirma que tu construcción web esté generando los archivos de salida esperados. La CLI de Capgo necesita una construcción web válida para crear un Paquete.
-
Conectividad de red: Verifica que tu entorno CI/CD tenga acceso de red a los servidores de Capgo. Los problemas de firewall o proxy a veces pueden interferir con el comando
upload.
Si aún tienes problemas, contacta al soporte de Capgo para asistencia. Pueden ayudar a solucionar cualquier problema con tu configuración específica.
Conclusión
Section titled “Conclusión”Integrar Capgo en tu pipeline de CI/CD con gestión de versiones adecuada puede agilizar enormemente tu flujo de trabajo de desarrollo. Al automatizar tus implementaciones y versionado a través del enfoque de Capacitor.config, puedes enviar actualizaciones más rápido y con más confianza.
El enfoque recomendado de establecer la versión en tu archivo capacitor.config.ts y usar semantic-Lanzamiento para actualizar package.json proporciona un proceso de implementación robusto y confiable que te permite enfocarte en construir grandes características en lugar de preocuparte por pasos de lanzamiento manuales.
Para más detalles sobre los comandos y opciones de la CLI de Capgo, consulta la referencia CLI. Y para una inmersión más profunda en la configuración de semantic-Lanzamiento, ve los documentos de semantic-release.
¡Felices implementaciones!