Zum Hauptinhalt springen
CI/CD

Manage development and production build with GitHub actions

Use Capgo to release your devbuild to specific channel, and let your team try your Capacitor Ionic app, without waiting Apple and Google review

Artikelcredits

Martin Donadieu

Autoren

Valeria

Rezensent

Jordan

Editor

Manage development and production build with GitHub actions

Diese Anleitung konzentriert sich auf die GitHub-Hosting, Sie können sie jedoch mit einem kleinen Anpassungsfehler auf jede andere CI/CD-Plattform anwenden.

Vorwort

Stellen Sie sicher, dass Sie Ihr Capacitor-Anwendungsprogramm zuerst in Capgo hinzugefügt haben, diese Anleitung konzentriert sich nur auf die Upload-Phase

Commit-Konvention

Beginnen Sie zunächst damit, die Commit-Konvention zu befolgen Kontext: Seite/Bereich: Capgo Builder / native cloud build Produktseite. Rolle: Kurzbeschriftung oder Navigationspunkt. Nachrichtenschlüssel `native_build_builder_credit_first` (Native Build Builder Credit First).Konventionelle Commits

` dies wird Ihnen helfen, die Werkzeuge zu verstehen, wie sie die Versionsnummer aufzubauen, es dauert 5 Minuten, um es zu lernen.

GitHub actions for tag

GitHub-Aktionen für die Etikettierung

Einen Datei an dieser Pfad erstellen: .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

Dies wird für jeden Commit in Ihrer Hauptbranch eine Version freigeben. Und ein alpha Version für development, und zuletzt eine Änderungsprotokoll-Eintrag für jeden Commit in CHANGELOG.md.

Machen Sie sich keine Sorgen, wenn Sie diese Datei nicht haben, sie wird für Sie erstellt.

Um dies zu machen, müssen Sie ein PERSONAL ACCESS TOKEN und es in Ihren GitHub Geheimnisse als PERSONAL_ACCESS_TOKEN.

Dies ist erforderlich, damit der CI den Changelog und die Versionsnummer commitet.

Wählen Sie bei der Erstellung des Tokens die Ablaufzeit als never und den Umfang als repo.

Setzen Sie die version Schlüssel in Ihrem package.json Datei. Verwenden Sie dafür die letzte Version, die in der App-Store veröffentlicht wurde.

Dies ist nur erforderlich, wenn Sie das erste Mal die Tools verwenden, dann werden sie es selbstständig aktualisieren.

Sie können jetzt diese beiden Dateien committen und sehen, wie Ihr erster Tag in GitHub erscheint!

capacitor-standard-version ist das Paket, das die Magie bewirkt, standardmäßig aktualisiert er auch Ihre Versionsnummer in Android und IOS

GitHub Aktionen für die Build

Erstellen Sie eine Datei an 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

Dies wird Ihre Abhängigkeit installieren und bauen, bevor sie an Capgo gesendet wird.

Wenn Ihr Build-Befehl anders ist, können Sie ihn im Schritt ändern. build_code Wenn Sie ein Umgebungsvariable benötigen, verwenden Sie den und setzen Sie die in Ihrem __CAPGO_KEEP_0__ Projekt-Einstellung, dann geheim, dann __CAPGO_KEEP_1__ Action.

Um __CAPGO_KEEP_0__-Uploads zu ermöglichen, benötigen Sie Ihren __CAPGO_KEEP_1__-Schlüssel für __CAPGO_KEEP_2__, fügen Sie ihn in der Geheimzahl Ihres __CAPGO_KEEP_0__-Repositorys ein. MY_ENV_VAR als secret in your GitHub project setting, then secret then GitHub Action.

To make Capgo upload work, you need to get your API key for Capgo, add it in the Sie sollten Ihre Tests im Ionic-Build-Schritt hinzufügen, um sicherzustellen, dass GitHub funktioniert. Add the commit will generate a new __CAPGO_KEEP_0__ build for production and development channel. CAPGO_TOKEN.

You should add your test in the Ionic build step to be certain your Capgo is working.

You can now commit this both files and see your first version appear in Capacitor!

To make code upload work, you need to get your __CAPGO_KEEP_1__ key for __CAPGO_KEEP_2__, add it in the

Gehe zu deinem Capgo-Dashboard und überprüfe deine gerade erstellte Build, jetzt hast du dein CI/CD-System.

Weitermachen mit der Verwaltung von Entwicklung- und Produktionsbuilds mit GitHub-Aktionen

Wenn du __CAPGO_KEEP_0__ verwendest Verwaltung von Entwicklung- und Produktionsbuilds mit GitHub-Aktionen Um Kanalroutings und rollende Veröffentlichungen zu planen, verbinde es mit den Kanälen für die Implementierungsdetails in Kanälen Kanälen für die Implementierungsdetails in Kanälen Kanälen für die Implementierungsdetails in Kanälen Beta-Testlösung Für das Produktworkflow in der Beta-Testlösung und Versionziel-Lösung Für das Produktworkflow in der Versionziel-Lösung.

Live-Updates für Capacitor Apps

When a web-layer bug is live, ship the fix through Capgo instead of waiting days for app store approval. Users get the update in the background while native changes stay in the normal review path.

Wenn ein Web-Schicht-Bug live ist, schicken Sie den Fix über __CAPGO_KEEP_0__ anstatt Tage für die Genehmigung im App-Store abzuwarten. Die Benutzer erhalten die Aktualisierung im Hintergrund, während native Änderungen im normalen Review-Verfahren bleiben.

Menschliche Unterstützung von Martin

Los geht's jetzt

Capgo gives you the best insights you need to create a truly professional mobile app.