Saltar al contenido principal
CI/CD

Crear tu propia aplicación de compilación automática y lanzamiento con acciones de Github

Crear tu propia canalización CI/CD con acciones de Github gratuitas y despliega tu aplicación Ionic Capacitor JS cada vez que hagas un push a main.

Créditos del artículo

Martin Donadieu

Escritor

Valeria

Revisor

Jordan

Editor

Aplicación de compilación y lanzamiento automática con acciones Github

Esta guía se centra en la GitHub de alojamiento, pero puedes adaptarlo con pequeñas modificaciones a cualquier otra plataforma CI/CD.

Antecedente

Asegúrate de haber agregado tu Capacitor de aplicación primero a Capgo, esta guía solo se centra en la fase de carga. Si necesitas agregar tu aplicación a Capgo, puedes seguir esta Tutorial

Convenio de commit

Primero debes empezar a seguir el convenio de commit comunmente utilizados ` esto te ayudará a que las herramientas entiendan cómo actualizar el número de versión, solo lleva 5 minutos aprenderlo.

Comunmente utilizados

GitHub acciones para etiquetas

Luego debes crear tu primera acción de GitHub para construir automáticamente y crear una etiqueta.

Crea un archivo en este camino: .github/workflows/bump_version.yml

con este contenido:

name: Bump version

on:
  push:
    branches:
      - main

jobs:
  bump-version:
    if: "!startsWith(github.event.head_commit.message, 'chore(release):')"
    runs-on: ubuntu-latest
    name: "Bump version and create changelog with standard version"
    steps:
      - name: Check out
        uses: actions/checkout@v6
        with:
          fetch-depth: 0
          filter: blob:none
          token: '${{ secrets.PERSONAL_ACCESS_TOKEN }}'
      - name: Git config
        run: |
          git config --local user.name "github-actions[bot]"
          git config --local user.email "github-actions[bot]@users.noreply.github.com"
      - name: Create bump and changelog
        run: npx capacitor-standard-version
      - name: Push to origin
        run: |
          CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
          remote_repo="https://${GITHUB_ACTOR}:${{ secrets.PERSONAL_ACCESS_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git"
          git pull $remote_repo $CURRENT_BRANCH
          git push $remote_repo HEAD:$CURRENT_BRANCH --follow-tags --tags

Esto liberará una etiqueta para cada commit en tu rama principal. Y agregará una entrada de cambios para cada commit en la rama principal en CHANGELOG.md.

No te preocupes si no tienes este archivo, se creará por ti.

Para que esto funcione, crea un TOKEN DE ACCESO PERSONAL y agrega a tu GitHub secretos como PERSONAL_ACCESS_TOKEN.

Esto es necesario para permitir que el CI cometa los cambios de la lista de cambios.

When crees el token, elige la expiración como never y el alcance como repo.

Finalmente, establece la versión en tu package.json archivo, sincrónizalo con tu número de versión nativa que facilitará, luego el siguiente paso.

Esto solo es necesario la primera vez, luego las herramientas lo mantendrán actualizado.

Puedes ahora comprometer ambos archivos y ver tu primer etiqueta aparecer en GitHub!

Ambas plataformas nativa y web tendrán el número de versión actualizado después de cada compromiso.

GitHub acciones para la compilación

Crear un archivo en este camino: .github/workflows/build.yml

con este contenido:

name: Build source code and send to Capgo

on:
  push:
    tags:
      - '*'
      
jobs:
  deploy:
    runs-on: ubuntu-latest
    name: "Build code and release"
    steps:
      - name: Check out
        uses: actions/checkout@v6
      - name: Install dependencies
        id: install_code
        run: npm i
      - name: Build
        id: build_code
        run: npm run build
        env: # Remove both lines  if you don't need it
          FIREBASE_CONFIG: ${{ secrets.FIREBASE_CONFIG }} # Example of env var coming from a secret
      - name: Create Release
        id: create_release
        run: npx @capgo/cli@latest bundle upload -a ${{ secrets.CAPGO_TOKEN }} -c production

Esto instalará y compilará tu dependencia antes de enviarla a Capgo.

Si tu comando para la compilación es diferente, puedes cambiarlo en el build_code paso.

Para que esto funcione, necesitas obtener tu clave de API para Capgo, agregarla en el segredo de tu repositorio de GitHub como CAPGO_TOKEN.

Ahora puedes agregar estos dos archivos y ver tu primer etiqueta en GitHub!

La confirmación generará una nueva compilación para el canal de producción.

Debes agregar tus pruebas en el paso de compilación para asegurarte de que code esté funcionando.

Ve a tu panel de control de Capgo y verifica tu compilación que acaba de aparecer, ahora tienes tu sistema CI/CD.

Si deseas que todos tus usuarios obtengan la actualización siempre que esté disponible, ve a tu canal y establecelo en public.

También puedes agregar la compilación nativa de tu aplicación de Ionic Capacitor JavaScript siguiendo este tutorial 👇

Sigue adelante desde la aplicación de compilación y liberación automática con Github acciones

Si estás utilizando Construcción y lanzamiento automático de la aplicación con acciones Github para planificar la automatización de CI/CD, conectarlo con Capgo automatización de CI/CD para el flujo de trabajo del producto en Capgo automatización de 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, Integración de CI/CD para el detalle de implementación en Integración de CI/CD, y Integración de acciones GitHub para el detalle de implementación en Integración de acciones GitHub.

Actualizaciones en vivo para Capacitor aplicaciones

Cuando un bug en la capa web está en vivo, envíe la corrección a través de Capgo en lugar de esperar días para la aprobación de la tienda de aplicaciones. Los usuarios obtienen la actualización en segundo plano mientras los cambios nativos siguen en el camino de revisión normal.

Apoyo humano de Martin

Iniciar ahora

Últimas noticias de nuestro Blog

Capgo te da las mejores perspectivas que necesitas para crear una aplicación móvil verdaderamente profesional.