Zum Hauptinhalt springen
CI/CD

Dev- und Prod-Builds mit GitHub Actions verwalten

Nutze Capgo, um deinen Devbuild in einen spezifischen Channel zu releasen. So kann dein Team deine Capacitor Ionic App testen, ohne auf das Review von Apple oder Google zu warten.

Dev- und Prod-Builds mit GitHub Actions verwalten

Dieses Tutorial konzentriert sich auf das GitHub Hosting, lässt sich aber mit kleinen Anpassungen auf jede andere CI/CD-Plattform übertragen.

Vorwort

Stelle sicher, dass du deine Capacitor App zuerst zu Capgo hinzugefügt hast; dieses Tutorial konzentriert sich nur auf die Upload-Phase.

Commit-Konvention

Zuerst solltest du mit der Commit-Konvention beginnen Conventional Commits` dies hilft dem Tooling zu verstehen, wie die Versionsnummer aktualisiert werden soll; das ist in 5 Min. gelernt.`

Conventional Commits

GitHub Actions für Tags

Erstelle dann deine erste GitHub Action, um Builds und Tags automatisch zu erstellen.

Erstelle eine Datei unter diesem Pfad: .github/workflows/bump_version.yml

mit diesem Inhalt:

name: Bump version

on:
  push:
    branches:
      - main
      - development

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
        if: github.ref == 'refs/heads/main'
        run: npx capacitor-standard-version
      - name: Create bump and changelog
        if: github.ref != 'refs/heads/main'
        run: npx capacitor-standard-version --prerelease alpha
      - 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

Dadurch wird für jeden Commit im main-Branch ein Tag erstellt sowie ein alpha Release für development, und zuletzt ein Changelog-Eintrag für jeden Commit in CHANGELOG.md.

Keine Sorge, falls die Datei noch fehlt – sie wird automatisch erstellt.

Damit das funktioniert, musst du einen PERSONAL ACCESS TOKEN erstellen und ihn zu deinen GitHub Secrets als PERSONAL_ACCESS_TOKEN.

Das ist nötig, damit die CI das Changelog und den Version-Bump committen kann.

Wähle beim Erstellen des Tokens als Ablaufdatum never und als Scope repo.

Setze den version Key in deiner package.json Datei. Nutze dafür die zuletzt im Store veröffentlichte Version.

Dies ist nur beim ersten Mal nötig; danach halten die Tools alles aktuell.

Du kannst nun beide Dateien committen und siehst deinen ersten Tag in GitHub!

capacitor-standard-version ist das Paket, das die Magie erledigt; standardmäßig aktualisiert es auch deine Versionsnummer in Android und iOS

GitHub Actions für den Build

Erstelle eine Datei unter diesem Pfad: .github/workflows/build.yml

mit diesem Inhalt:

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 build
        env:
          MY_ENV_VAR: ${{ secrets.MY_ENV_VAR }}
      - name: Create Release Alpha
        if: "contains(github.ref, '-alpha.')"
        id: create_release_prepro
        run: npx @capgo/cli@latest bundle upload -a ${{ secrets.CAPGO_TOKEN }} -c development
      - name: Create Release Production
        if: "!contains(github.ref, '-alpha.')"
        id: create_release_prod
        run: npx @capgo/cli@latest bundle upload -a ${{ secrets.CAPGO_TOKEN }} -c production

Dadurch wird deine Dependency installiert und gebaut, bevor sie an Capgo gesendet wird.

Falls dein Build-Befehl anders lautet, kannst du ihn hier ändern: build_code Schritt.

Wenn du eine Umgebungsvariable benötigst, nutze die MY_ENV_VAR und setze die secret in deinen GitHub Projekteinstellungen, dann unter Secrets und dann die GitHub Action.

Damit der Capgo Upload funktioniert, musst du deinen API Key für Capgo abrufen und in die Secret deines GitHub Repositories hinzu als CAPGO_TOKEN.

Du kannst nun beide Dateien committen und siehst deine erste Version in Capgo erscheinen!

Ein Commit generiert einen neuen Capacitor Build für den Production- und Development-Channel.

Du solltest deine Tests in den Ionic Build-Schritt integrieren, um sicherzustellen, dass dein code einwandfrei läuft.

Gehe zu deinem Capgo Dashboard und überprüfe deinen soeben erstellten Build – dein CI/CD-System steht nun bereit.

Weiter geht's mit: Manage development and production build with GitHub actions

Wenn du es nutzt Dev- und Prod-Builds mit GitHub Actions verwalten um Channel-Routing und Staged Rollout zu planen, verbinde es mit Kanäle für die Implementierungsdetails in Channels, Kanäle für die Implementierungsdetails in Channels, Kanäle für die Implementierungsdetails in Channels, Beta-Testing-Lösung für den Produkt-Workflow in der Beta-Testing-Lösung, und Version-Targeting-Lösung für den Produkt-Workflow in der Version-Targeting-Lösung.

Live-Updates für Capacitor-Apps

Wenn ein Bug im Web-Layer live ist, liefere den Fix über Capgo aus, statt Tage auf die App-Store-Freigabe zu warten. Nutzer bekommen das Update im Hintergrund, während native Änderungen im normalen Review-Prozess bleiben.

Neues aus unserem Blog

Capgo gibt dir die besten Insights, um eine wirklich professionelle Mobile App zu erstellen.