Tekton-Pipelines für die Mobile Foundation erstellen

improve this page | report issue

Das Bundle für die Mobile Foundation in Cloud Pak for Apps enthält Tekton-Pipelines für die Automation allgemeiner DevOps-Aufgaben im Rahmen der Mobile Foundation.

Die Implementierung der Mobile Foundation auf der OCP (OpenShift Container Platform) erfolgt unabhängig von den Nutzungsrechten für die OCP immer gleich.

Voraussetzungen

Bevor Sie mit der Installation der Mobile-Foundation-Instanz unter Verwendung des Mobile Foundation Operator beginnen, müssen die folgenden Voraussetzungen erfüllt sein.

Tekton-Pipelines

Mit der Mobile Foundation on Cloud Pak for Apps werden die folgenden Tekton-Pipelines bereitgestellt.

  1. Pipeline für die Konfiguration mobiler Apps (mobile-app-registration-pipeline)
  2. Pipeline für die Erstellung mobiler Apps für Android (mobile-app-build-android-pipeline)
  3. Pipeline für die Erstellung mobiler Apps für iOS (mobile-app-build-ios-pipeline)
  4. Pipeline für die Verteilung mobiler Apps (application-center-deploy)
  5. Pipeline für das Testen mobiler Apps für Android (mobile-app-test-android-pipeline)

Schritte für die Ausführung der Pipelines

Hinweis: Sie müssen die Pipelines im Namespace/Projekt default implementieren. In anderen Namespaces kann die Ausführung von Pipelines aufgrund von Berechtigungsproblemen fehlschlagen.

Pipeline für die Konfiguration mobiler Apps

Führen Sie den folgenden Befehl aus.

oc apply -f pipeline/mobile-app-registration -n <Projektname>

Die folgende Ausgabe wird erzeugt.

pipelineresource.tekton.dev/mobile-app-registration-git-resource created
pipeline.tekton.dev/mobile-app-registration-pipeline created
task.tekton.dev/mobile-app-registration-task created

Pipeline für die Erstellung mobiler Apps für Android

Führen Sie den folgenden Befehl aus, um die Pipeline zu implementieren:

oc apply -f pipeline/mobile-app-build-android -n <Projektname>

Die folgende Ausgabe wird erzeugt.

pipelineresource.tekton.dev/mobile-app-build-android-git-sresource created
pipeline.tekton.dev/mobile-app-build-android-pipeline created
task.tekton.dev/mobile-app-build-android-task created

Pipeline für die Erstellung mobiler Apps für iOS

Voraussetzungen

Sie benötigen ein Xcode-Server-Setup auf einem öffentlich zugänglichen Mac-System. Lesen Sie den Abschnitt Xcode-Server-Setup für die Erstellung von iOS-Apps.

Führen Sie den folgenden Befehl aus, wenn die Voraussetzung erfüllt ist.

oc apply -f pipeline/mobile-app-build-ios -n <Projektname>

Die folgende Ausgabe wird erzeugt.

pipeline.tekton.dev/mobile-app-build-ios-pipeline created
task.tekton.dev/mobile-app-build-ios-task created
pipelineresource.tekton.dev/mobile-app-build-ios-git-resource created

Pipeline für die Verteilung mobiler Apps

Führen Sie den folgenden Befehl aus.

oc apply -f pipeline/mobile-app-publish -n <Projektname>

Die folgende Ausgabe wird erzeugt.

pipelineresource.tekton.dev/appcenter-git-resource created
pipeline.tekton.dev/application-center-deploy created
task.tekton.dev/application-center-upload created

Pipeline für das Testen mobiler Apps für Android

Voraussetzungen

Zum Ausführen der Testpipeline für Android-Anwendungen benötigen Sie ein BitBar-Konto mit API-Schlüssel, Geräte-ID, Framework-ID und Projekt-ID.

Führen Sie den folgenden Befehl aus.

oc apply -f pipeline/mobile-app-test-android -n <Projektname>

Die folgende Ausgabe wird erzeugt.

pipelineresource.tekton.dev/mobile-app-test-android-git-resource created
pipeline.tekton.dev/mobile-app-test-android-pipeline created
task.tekton.dev/mobile-app-test-android-task created

Mit den obigen Befehlen werden die Tasks, Pipelines und Ressourcen erstellt. Sie können die Tasks, Ressourcen und Pipelines im Tekton-Dashboard anzeigen.

Tasks im Tekton-Dashboard

Ressourcen im Tekton-Dashboard

Pipelines im Tekton-Dashboard

Pipeline mit entsprechenden Ressourcen vom Tekton-Dashboard ausführen

  1. Bearbeiten Sie die Ressourcendatei mit der richtigen Git-Repository-URL der Anwendung.
     pipeline/mobile-app-registration/appregistrationgitresource.yaml
     pipeline/mobile-app-build-android/ buildandoridgitresource.yaml
     pipeline/mobile-app-build-ios/ buildiosgitresource.yaml
     pipeline/mobile-app-publish/mobileapppublishgitresource.yaml
     pipeline/mobile-app-test-android/testandroidappgitresource.yaml
    
  2. Führen Sie den Befehl aus, um die Ressourcen der Tekton-Pipeline mobile-app-registration zu aktualisieren.
    oc apply -f pipeline/mobile-app-registration/appregistrationgitresource.yaml -n <Projektname>
    

    Die folgende Ausgabe wird erzeugt.

      pipelineresource.tekton.dev/mobile-app-registration-git-resource configured
    
  3. Führen Sie den Befehl aus, um die Ressourcen der Tekton-Pipeline mobile-app-build-android zu aktualisieren.
    oc apply -f pipeline/mobile-app-build-andorid/buildandoridgitresource -n <Projektname>
    

    Die folgende Ausgabe wird erzeugt.

      pipelineresource.tekton.dev/mobile-app-build-android-git-resource configured
    
  4. Führen Sie den Befehl aus, um die Ressourcen der Tekton-Pipeline mobile-app-build-ios zu aktualisieren.
    oc apply -f pipleline/mobile-app-build-ios/buildiosgitresource -n <Projektname>
    

    Die folgende Ausgabe wird erzeugt.

    pipelineresource.tekton.dev/mobile-app-build-ios-git-resource configured
    
  5. Führen Sie den Befehl aus, um die Ressourcen der Tekton-Pipeline mobile-app-publish zu aktualisieren.
    oc apply -f pipeline/mobile-app-publish/mobileapppublishgitresource.yaml -n <Projektname>
    

    Die folgende Ausgabe wird erzeugt.

    pipelineresource.tekton.dev/appcenter-git-resource configured
    
  6. Führen Sie den Befehl aus, um die Ressourcen der Tekton-Pipeline mobile-app-test-android zu aktualisieren.
    oc apply -f pipeline/mobile-app-test-android/testandroidappgitresource.yaml -n <Projektname>
    

    Die folgende Ausgabe wird erzeugt.

      pipelineresource.tekton.dev/mobile-app-test-android-git-resource configured
    

Pipelines mit einem PipelineRun ausführen

Öffnen Sie das Tekton-Dashboard und klicken Sie auf den Abschnitt Pipelines.

  1. Klicken Sie auf die auszuführende Pipeline. PipelineRun

  2. Klicken Sie auf Create PipelineRun. PipelineRun

  3. Wählen Sie die oben erstellte Git-Ressource PipelineResources aus.
  4. Geben Sie die erforderlichen Parameter und das Servicekonto als Standard an.
  5. Klicken Sie auf Create PipelineRun. PipelineRun
  6. Wenn Sie die Protokolle und Status von PipelineRuns anzeigen möchten, wählen Sie im Tekton-Dashboard PipelineRuns aus. PipelineRun

Tekton-Auslöder für Webhooks implementieren

Hinweis: Diese Schritte sind nur erforderlich, wenn Sie Webhooks verwenden möchten.

Tekton-Trigger für die Android-Buildpipeline konfigurieren

Voraussetzungen

Bevor Sie Tekton-Trigger für Android-Builds verwenden, muss ein GitHub-Token (github-token) zur YAML-Datei für Triggerbindungen hinzugefügt werden. Bearbeiten Sie die Datei pipeline/android-pipeline-trigger/mfpandroidtriggerbinding.yaml. Ersetzen Sie den Platzhalter {githubToken} durch ein gültiges GitHub-Token.

Führen Sie den folgenden Befehl aus.

oc apply -f pipeline/android-pipeline-trigger -n <Projektname>

Die folgende Ausgabe wird erzeugt.

eventlistener.tekton.dev/mfp-android-webhook-listener created
route.route.openshift.io/mfp-android-webhook-route created
triggerbinding.tekton.dev/mfp-android-trigger-binding created
rolebinding.rbac.authorization.k8s.io/mfp-android-trigger-binding created
serviceaccount/mfp-android-triggers-sa created
triggertemplate.tekton.dev/mfp-android-trigger-template created
role.rbac.authorization.k8s.io/mfp-trigger-role created

Tekton-Trigger für die iOS-Buildpipeline konfigurieren

Voraussetzungen

Bevor Sie die Tekton-Trigger für iOS verwenden, müssen einige Felder zur YAML-Datei für Triggerbindungen hinzugefügt werden. Bearbeiten Sie die Datei pipeline/ios-pipeline-trigger/mfpiostriggerbinding.yaml. Ersetzen Sie die Parameter {githubToken} , {xcodeServerBotId} und xcodeServerHost durch gültige Werte.

Führen Sie den folgenden Befehl aus.

oc apply -f pipeline/ios-pipeline-trigger -n <Projektname>

Die folgende Ausgabe wird erzeugt.

eventlistener.tekton.dev/mfp-ios-webhook-listener created
route.route.openshift.io/mfp-ios-webhook-route created
triggerbinding.tekton.dev/mfp-ios-trigger-binding created
rolebinding.rbac.authorization.k8s.io/mfp-ios-trigger-binding created
serviceaccount/mfp-ios-triggers-sa created
triggertemplate.tekton.dev/mfp-ios-trigger-template created

Der obige Befehl erstellt die Ereignis-Listener (EventListeners), Triggerbindungen (TriggerBindings) und Triggervorlagen (TriggerTemplates), auf die über das Tekton-Dashboard zugegriffen werden kann.

Trigger

Trigger

Trigger

Außerdem werden zwei Routen zugänglich gemacht, die zum Konfigurieren von Webhooks genutzt werden können. Navigieren Sie im OpenShift-Dashboard zu “Networking and Routes”. Eine der Routen ist für den Android-Build und die andere für den iOS-Build bestimmt.

Trigger

Pipelines mit einem Webhook auslösen

Führen Sie die Pipeline mit einem Webhook aus, um den PipelineRun automatisch auszulösen, sobald es Änderungen am Anwendungs-Git-Repository gibt.

Erstellung von Webhooks

  1. Öffnen Sie das Git-Repository, für das Sie den Webhook konfigurieren möchten.
  2. Nabirieren Sie zur Registerkarte Settings für das Repository. Webhooks
  3. Klicken Sie links in der Navigationsleiste auf Webhooks. Klicken Sie dann auf Add webhook.
  4. Geben Sie im Feld Payload URL eine der Routen ein, die zuvor beim Konfigurieren der Tekton-Trigger erstellt wurden. Der Inhaltstyp (Content type) muss auf application/json gesetzt werden. Wählen Sie das Ereignis aus, bei dem der Webhook ausgeführt werden soll. Webhooks
  5. Klicken Sie auf Add Webhook.

Das Ereignis soll im Git-Repository die Erstellung einer für diese Route konfigurierten Pipelineausführung (PipelineRun) auslösen. Wenn Sie die Protokolle und Status von PipelineRuns anzeigen möchten, wählen Sie im Tekton-Dashboard PipelineRuns aus.

XCode-Server-Setup für die Erstellung von iOS-Apps

  1. Richten Sie auf einem Mac-System Xcode ein.
  2. Öffnen Sie Xcode.
  3. Wählen Sie oben im Menü Xcode Server aus.
  4. Aktivieren Sie Xcode Server, um die Integration durchführen zu können.
  5. Wenn der Server aktiviert ist, setzen Sie im Abschnitt Permissions die Option Create and View Bots auf all users.
  6. Fügen Sie im Abschnitt Accounts ein neues Konto mit dem Kontotyp Xcode Server hinzu. Wählen Sie dann den verfügbaren Server aus.
  7. Wenn Xcode Server eingerichtet ist, muss der Bot konfiguriert werden, damit er die Integrationen durchführen und eine ipa-Datei generieren kann. Öffnen Sie das iOS-Projekt, das in Xcode erstellt werden soll.
  8. Navigieren Sie zum Buildprotokoll für das Projekt und wählen Sie die Option By Group aus. Der konfigurierte Server müsste sichtbar sein.
  9. Klicken Sie mit der rechten Maustaste auf den Server und wählen Sie Create Bot aus.
  10. Geben Sie dem Bot einen Namen und klicken Sie auf Next. Stellen Sie sicher, dass der Botname keine Leerzeichen enthält. Konfigurieren Sie die Quellcodeverwaltung für den Bot und klicken Sie auf Next.
  11. Stellen Sie sicher, dass in der Buildkonfiguration im Abschnitt Actions die Option Archive ausgewählt ist. Wählen Sie für die Option Export die Einstellung Use Custom Export Options Plist aus. Sie müssen eine plist-Datei im folgenden Format haben. Xcode
  12. Wählen Sie im Abschnitt Schedule bot integrations die manuelle Integrationsdurchführung (Manually) aus. Klicken Sie dann auf Next. Xcode
  13. Wählen Sie die relevanten Buildoptionen für Ihr Projekt aus und klicken Sie auf Next.
  14. Vergewissern Sie sich, dass in den Abschnitten Certificates and Profiles relevante Zertifikate und Profile, die für die Generierung der ipa-Datei erforderlich sind, zum Server hinzugefügt wurden. Klicken Sie dann auf Next.
  15. Fügen Sie die Argumente hinzu und geben Sie relevante Werte für den Befehl xcodebuild im Abschnitt Arguments and Environment Variables an. Klicken Sie dann auf Next. Xcode
  16. Klicken Sie im Abschnitt Triggers auf Add und wählen Sie Pre-Integration script aus. Geben Sie dem Script einen Namen und fügen Sie das folgende Script zum Scriptabschnitt hinzu. Dieses Script lädt die (ggf. vorhandenen) CocoaPod-Abhängigkeiten für die App herunter. Klicken Sie dann auf Create.
    #!/bin/sh
    cd $XCS_PRIMARY_REPO_DIR
    PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands"
    . ~/.bash_profile
    bundle install
    npm install
    ionic cordova platform add ios
    ionic cordova prepare ios
    

    Xcode

  17. Wenn der Bot erfolgreich erstellt wurde, warten Sie auf die Durchführung der Integration. Navigieren Sie nach erfolgreicher Integration zu den Protokollen (Logs) für die Integration. In den Protokollen müssten Sie die Bot-ID (botId) sehen können. Die botId wird für die Durchführung der Integration von den Tekton-Pipelines aus benötigt. Xcode
  18. Das Xcode-Server-Setup wurde erfolgreich abgeschlossen. Verwenden Sie die Bot-ID, um die iOS-Buildpipeline auszulösen.
Last modified on June 22, 2020