Zum Hauptinhalt springen
PR-Vorschau

Jeden Pull-Request auf einem echten Telefon überprüfen

Ihr CI lädt jede Pull-Request-Webbuild in eine eigene Capgo-Kanal hoch. Die Rezensenten scannen eine QR-code-Vorschau oder wechseln in der App in den Kanal, um es auf ihrem Gerät auszuprobieren, und der Kanal wird gelöscht, wenn der PR geschlossen wird. Änderungen an nativen code-Komponenten benötigen jedoch eine neue Build.

Menschliche Unterstützung von Martin

  • Ein Kanal pro Pull-Request
  • QR-code-Vorschau
  • Löschen, wenn der PR geschlossen wird

Das Problem

Ein Web-Änderung sollte kein neues Binärdatei zum Überprüfen benötigen

Ein PR mit Store-Testbuilds überprüfen

  1. Entwickler öffnen einen PR

    Die Änderung ist zum Überprüfen bereit, aber niemand kann sie noch auf einem Telefon ausprobieren.

  2. Bauen, signieren und hochladen

    Jemand baut eine native Binärdatei für die Zweig, signiert sie, lädt sie auf TestFlight oder eine Play-Test-Track hoch und wartet auf die Verarbeitung.

  3. Einladen und installieren

    Die Rezensenten müssen als Tester hinzugefügt und die genaue Version installiert werden.

  4. Wiederholen für jeden Fix

    Jeder Rezensionskommentar, der code ändert, bedeutet eine weitere Build, eine weitere Hochladung und eine weitere Installation.

Jeder Runden der Überprüfung wartet auf eine native Build, selbst wenn nur JavaScript geändert wurde.

Was das Team kostet

Jedes Build

Wartet auf die Verarbeitung im Store

Jedes Build, das Sie zu TestFlight oder einer Play-Test-Track hochladen, wird vorher verarbeitet, bevor es von Testern installiert werden kann. Das passiert für jeden Build.

Jeder PR

Benötigt eine eigene native Build zum Testen.

Ohne Live-Updates können Reviewer nur nach einem Branch ausprobieren, nachdem jemand gebaut, unterschrieben und einen neuen Binär hochgeladen hat, auch für eine web-only-Änderung

Späte Rückmeldung

Die Review passiert, nachdem der Autor weitergegangen ist

Wenn die Review auf Builds wartet, kommt die Rückmeldung später, der Autor ist an einem anderen Projekt und der Branch driftet von main ab

Wie es funktioniert

Wie Teams Pull-Requests mit Capgo vorhersehen

Four CI steps: set up a scoped key once, upload per push, share the preview, clean up on close. Every command below is from the Capgo docs.

  1. Erstelle eine App-Vorschau-Schlüssel und aktiviere Vorschauen

    Ein Administrator erstellt einen App-Vorschau-Schlüssel API für CI. Dieser kann Vorschaukanäle erstellen und Bundles hochladen, kann jedoch die Standard- oder Produktionskanäle nicht ändern. Vorschauen werden einmal pro App aktiviert.

    # once, run by an admin (not the preview key)
    npx @capgo/cli@latest app set com.example.app --preview
    App-Vorschau-Schlüssel API
  2. Hochladen des PR-Builds in seinen eigenen Kanal

    Bei jedem Push baut CI die Web-App und lädt sie mit einer eindeutigen Bundle-Version hoch. bundle upload --channel erstellt den pr-<number>-Kanal, wenn dieser nicht existiert, und verknüpft den Bundle mit ihm.

    npx @capgo/cli@latest bundle upload com.example.app \
      --apikey "$CAPGO_PREVIEW_KEY" \
      --path ./dist \
      --channel "pr-$PR_NUMBER" \
      --bundle "1.2.3-pr.$PR_NUMBER.$GITHUB_RUN_NUMBER"
    PR-Vorschauen in den Kanälen-Docs
  3. Poste die Vorschau auf dem PR

    get-qr druckt eine QR-code für den Kanal oder die Vorschau-URLs mit --url, damit CI sie in einem PR-Kommentar hinzufügen kann.

    npx @capgo/cli@latest get-qr com.example.app \
      --channel "pr-$PR_NUMBER" \
      --apikey "$CAPGO_PREVIEW_KEY" \
      --url
    get-qr Referenz
  4. Lösche den Kanal, wenn der PR geschlossen wird

    Führe diesen auf dem Pull-Request-Schließen-Ereignis aus. Mit einem App-Vorschau-Schlüssel werden nur der Kanal und der mit diesem Schlüssel erstellte Bundle gelöscht.

    npx @capgo/cli@latest channel delete \
      "pr-$PR_NUMBER" com.example.app \
      --apikey "$CAPGO_PREVIEW_KEY" \
      --delete-bundle \
      --success-if-not-found
    Kanal CLI Referenz

Andere Wege, auf denen Rezensionen von einem PR-Kanal wechseln

Beide benötigen einen Kanal, der Selbstzuweisung ermöglicht. Eine App-Vorschau-Schlüssel stellt das nicht her, daher teilen Sie die QR-Vorschau oder setzen Sie eine Geräteüberschreibung in der Konsole.

Menü schütteln

Aktivieren Sie das Menü zum Schütteln in internen Builds. Tester schütteln das Gerät, um das Testmenü von Capgo zu öffnen, und der Kanalwahlassistent lässt sie einen Kanal auswählen.

// capacitor.config.ts (internal builds)
CapacitorUpdater: {
  shakeMenu: true,
}

In-app-Switcher

Fügen Sie einem Entwickler-Einstellungs-Bildschirm einen Kanalfeld hinzu und rufen Sie setChannel() mit dem PR-Kanalnamen auf.

import { CapacitorUpdater } from '@capgo/capacitor-updater'

await CapacitorUpdater.setChannel({
  channel: 'pr-123',
  triggerAutoUpdate: true,
})
setChannel() - Referenz

Wer nutzt PR-Vorschauen

Jeder, der den Pull-Request überprüft, kann ihn auf einem Telefon überprüfen, nicht nur der Autor.

QA-Engineeure

  • Testen Sie die Web-Build des PRs auf Ihrem eigenen Gerät
  • Wechseln Sie zwischen PR-Kanälen, ohne die App neu zu installieren
  • Der Kanalname entspricht der PR-Nummer, daher wissen Sie, welches code Sie laufen

Projektmanager

  • Try a feature on a phone before it merges
  • Scanne die QR-Code code auf dem PR
  • Verfassen Sie Feedback direkt auf dem PR

Entwickler

  • Erhalten Sie während der Öffentlichkeit des PR Gerätefeedback
  • Jeder Push aktualisiert den PR-Kanal
  • Keine native Build für JavaScript-Änderungen

Speichern Sie Testbuilds gegen Capgo PR-Kanäle

  • Ein PR auf ein Smartphone bringen

    TestFlight / Play-Testen
    Native Build, Signieren und Store-Verarbeitung
    Capgo PR-Kanal
    Web-Build und -Bundle hochladen von CI
  • Zwischen PRs wechseln

    TestFlight/Play-Testen
    Ein weiteres Build installieren
    Capgo PR-Kanal
    Ein weiteres QR-Scannen code oder Kanal wechseln
  • Reviewer-Einstellung

    TestFlight/Play-Testen
    Tester-Einladung, dann jedes Build installieren
    Capgo PR-Kanal
    Die App einmal installieren
  • Nativ code und Plugin-Änderungen

    TestFlight / Play-Test
    Ja
    Capgo PR-Kanal
    Nein, native Build benötigt

Apps, die mit Capacitor erstellt wurden

Produkt-Apps benötigen überprüfbare mobile Änderungen

Bei Lern-, Veranstaltungs- und Community-Apps können sich Anwender gleichzeitig auf ein Onboarding, eine Übung, eine Live-Sitzung oder eine Abonnement-Änderung vorbereiten. PR-Vorschauen ermöglichen es Produkt-, QA- und Support-Teams, einen mobilen-fertigen Build zu überprüfen, bevor er in die Produktion übernommen wird.

StudySmarter - Schule &amp; Uni-App-Icon Bildung

StudySmarter - Schule &amp; Uni

Bildungsanwendung, bei der Änderungen an Lektionen, Kursen und Abonnementsmustern von Stakeholdern genehmigt werden müssen.

Google Play-Installationen
6,5 Mio.
Store-Bewertung
4.8
Poll Everywhere-App-Icon BUSINESS

Umfrage überall

Ein Live-Engagement-App, bei der Ereignisflüsse vor dem Merge getestet werden sollten.

Google Play-Installationen
1,1M
Store-Bewertung
3.2
lichess • Kostenlose Online-Schach-App-Icon SPIELBrett

lichess • Kostenlose Online-Schach

Community-App, bei der Turnier- und Analyse-Screens von Geräte-Vorschauen profitieren.

Google Play Installationen
11,3M
Store-Bewertung
4.3

Kundenbeweis

Was Teams mit Capgo sagen

5.0/5 bewertet von Entwicklerteams 9,400+ Teams Lesen Sie Bewertungen

Nate van Jole

CTO, Privat

‚Die Einrichtung dauerte weniger als einen Tag. Channel-basierte Rollouts ermöglichen es mir, auf meinem eigenen Gerät zu testen, bevor etwas an die Produktionsbenutzer geht.&rsquo;

Portrait von Michael Haberler

Michael Haberler

Netzwerkkopf-Entwickler

Großartige Arbeit am Updater-Plugin. Es funktioniert für mich fehlerfrei und Live-Updates sind ein Super-Boost für schnelle Testzyklen.

kein Ton @ Webincode

Entwickler, Webincode

&ldquo;Es ist ein Leben rettender Vorteil, dass man bestimmten Geräten IDs hinzufügen und die Änderungen nur an bestimmten Gruppen durchführen kann.&rdquo;

FAQ

Frägen, die Teams über PR-Vorschauen stellen

Geradherige Antworten für diejenigen, die CI einrichten und diejenigen, die überprüfen.

Benötigen Reviewer für jeden PR eine neue Build?

Nein, wenn der PR nur die Web-Schicht ändert. Die Reviewer installieren die App einmal, und jeder PRs JavaScript, HTML, CSS und Assets gehen in ihren eigenen Kanal. Wenn der PR ein Plugin hinzufügt oder die native code ändert, benötigt er eine native Build. In CI muss eine Build durchgeführt werden, um das zu erkennen.

Wat benötigt eine native Build

Kann der CI-Schlüssel unsere Produktionskanal berühren?

Nicht mit einer App-Vorschau-Schlüssel API. Es kann Vorschaukanäle erstellen, Uploads von Bundeln durchführen und nur den Kanal und den Bund löschen, den es erstellt hat. Es kann jedoch nicht den Standard- oder Hauptkanal ändern. In GitHub Aktionen, führen Sie die Aufgabe auf pull_request, nicht auf pull_request_target, und beschränken Sie sie auf PRs aus demselben Repository.

App-Vorschau-Schlüssel API

Wie öffnen die Rezensenten die Vorschau?

Ein Administrator aktiviert die Vorschau einmal mit app set --preview. Anschließend druckt get-qr einen QR-code für den PR-Kanal aus und --url gibt die Web-Vorschau-URL und die tiefe Verlinkung aus. Posten Sie sie in einem PR-Kommentar.

get-qr-Referenz

Was passiert mit alten PR-Kanälen und -Bündeln?

Fügen Sie eine Aufgabe auf dem Ereignis 'pull request closed' hinzu, die die Aufgabe 'channel delete' mit --delete-bundle und --success-if-not-found ausführt. Mit einem App-Vorschau-Schlüssel entfernt das die Kanäle und die mit ihnen verbundenen Bundel. Bundel aus früheren Pushs können mit der Bündelreinigung entfernt werden, wobei ein Schlüssel mit Löschrechten erforderlich ist.

Kanal CLI-Referenz

Funktioniert dies mit GitLab, Bitbucket oder Azure DevOps?

Ja. Die Schritte sind Capgo CLI Befehle, also laufen sie in jedem CI. Die Dokumentation enthält Integrationsanleitungen für GitHub Aktionen, GitLab CI, Bitbucket Pipelines und Azure DevOps.

CI/CD-Integrationen

Betrachten Sie Ihre nächste Pull-Anfrage auf einem Smartphone

Fügen Sie die Upload-, QR- und Reinigungsschritte Ihrem CI hinzu und probieren Sie sie anhand Ihres eigenen Apps während der kostenlosen Testphase.

Menschliche Unterstützung von Martin

14-tägige kostenlose Testphase, keine Kreditkarte. Native Änderungen benötigen einen neuen Build.