Tekton-Pipelines für die Mobile Foundation erstellen
improve this page | report issueDas 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.
- Instanz von Cloud Pak For Apps mit installierter Mobile Foundation
- OpenShift-CLI (
oc
) - Tekton (als Teil von Cloud Pak for Apps verfügbar)
Tekton-Pipelines
Mit der Mobile Foundation on Cloud Pak for Apps werden die folgenden Tekton-Pipelines bereitgestellt.
- Pipeline für die Konfiguration mobiler Apps (mobile-app-registration-pipeline)
- Pipeline für die Erstellung mobiler Apps für Android (mobile-app-build-android-pipeline)
- Pipeline für die Erstellung mobiler Apps für iOS (mobile-app-build-ios-pipeline)
- Pipeline für die Verteilung mobiler Apps (application-center-deploy)
- Pipeline für das Testen mobiler Apps für Android (mobile-app-test-android-pipeline)
Schritte für die Ausführung der Pipelines
- Laden Sie das Passport-Advantage-Archiv für die Mobile Foundation herunter.
- Extrahieren Sie die Datei
IBM-MobileFoundation-Openshift-Pak-<Version>.tar.gz
. - Wechseln Sie mit
cd
zur Position des extrahierten Ordners. - Melden Sie sich mit dem folgenden Befehl bei der Instanz von Cloud Pak for Apps an.
oc login --token=<Zugriffstoken> --server=<Serverinstanz>
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.
Pipeline mit entsprechenden Ressourcen vom Tekton-Dashboard ausführen
- 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
- 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
- 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
- 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
- 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
- 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.
-
Klicken Sie auf die auszuführende Pipeline.
-
Klicken Sie auf Create PipelineRun.
- Wählen Sie die oben erstellte Git-Ressource PipelineResources aus.
- Geben Sie die erforderlichen Parameter und das Servicekonto als Standard an.
- Klicken Sie auf Create PipelineRun.
- Wenn Sie die Protokolle und Status von PipelineRuns anzeigen möchten, wählen Sie im Tekton-Dashboard PipelineRuns aus.
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.
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.
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
- Öffnen Sie das Git-Repository, für das Sie den Webhook konfigurieren möchten.
- Nabirieren Sie zur Registerkarte
Settings
für das Repository. - Klicken Sie links in der Navigationsleiste auf Webhooks. Klicken Sie dann auf
Add webhook
. - Geben Sie im Feld
Payload URL
eine der Routen ein, die zuvor beim Konfigurieren der Tekton-Trigger erstellt wurden. Der Inhaltstyp (Content type
) muss aufapplication/json
gesetzt werden. Wählen Sie das Ereignis aus, bei dem der Webhook ausgeführt werden soll. - 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
- Richten Sie auf einem Mac-System Xcode ein.
- Öffnen Sie Xcode.
- Wählen Sie oben im Menü Xcode Server aus.
- Aktivieren Sie Xcode Server, um die Integration durchführen zu können.
- Wenn der Server aktiviert ist, setzen Sie im Abschnitt Permissions die Option Create and View Bots auf
all users
. - Fügen Sie im Abschnitt Accounts ein neues Konto mit dem Kontotyp
Xcode Server
hinzu. Wählen Sie dann den verfügbaren Server aus. - 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. - Navigieren Sie zum Buildprotokoll für das Projekt und wählen Sie die Option By Group aus. Der konfigurierte Server müsste sichtbar sein.
- Klicken Sie mit der rechten Maustaste auf den Server und wählen Sie Create Bot aus.
- 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.
- 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. - Wählen Sie im Abschnitt Schedule bot integrations die manuelle Integrationsdurchführung (Manually) aus. Klicken Sie dann auf Next.
- Wählen Sie die relevanten Buildoptionen für Ihr Projekt aus und klicken Sie auf Next.
- 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. - 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.
- 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
- 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.
- Das Xcode-Server-Setup wurde erfolgreich abgeschlossen. Verwenden Sie die Bot-ID, um die iOS-Buildpipeline auszulösen.
Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.