Mobile Foundation 用の Tekton パイプラインの作成

improve this page | report issue

Cloud Pak for Apps 内の Mobile Foundation は、Mobile Foundation に関連する共通の DevOps タスクを自動化するための Tekton パイプラインにバンドルされています。

OpenShift Container Platform (OCP) に Mobile Foundation をデプロイする手順は、OCP の使用権を取得した方法にかかわらず同じです。

前提条件

以下は、Mobile Foundation Operator を使用して Mobile Foundation インスタンスをインストールするプロセスを開始する前に満たす必要がある前提条件です。

  • Mobile Foundation がインストールされた Cloud Pak For Apps インスタンス
  • OpenShift CLI (oc)
  • Tekton (Cloud Pak for Apps の一部として使用可能)

Tekton パイプライン

Cloud Pak for Apps 上の Mobile Foundation で以下の Tekton パイプラインが使用可能です。

  1. モバイル・アプリケーション構成パイプライン (mobile-app-registration-pipeline)
  2. Android 用モバイル・アプリケーション・ビルド・パイプライン (mobile-app-build-android-pipeline)
  3. iOS 用モバイル・アプリケーション・ビルド・パイプライン (mobile-app-build-ios-pipeline)
  4. モバイル・アプリケーション配布パイプライン (application-center-deploy)
  5. Android 用モバイル・アプリケーション・テスト・パイプライン (mobile-app-test-android-pipeline)

パイプライン実行のステップ

  • Mobile Foundation の PPA をダウンロードします。
  • IBM-MobileFoundation-Openshift-Pak-<version>.tar.gz ファイルを解凍します。
  • 解凍されたフォルダーの場所に cd します。
  • 以下のコマンドを使用して、Cloud Pak For Apps インスタンスにログインします。
    oc login --token=<access_token> --server=<server_instance>
    

注: パイプラインをデフォルトの名前空間/プロジェクトにデプロイすることを確認します。権限の問題により、パイプラインが他の名前空間で実行できない場合があります。

モバイル・アプリケーション構成パイプライン

次のコマンドを実行します。

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

以下に生成された出力を示します。

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

Android 用モバイル・アプリケーション・ビルド・パイプライン

次のコマンドを実行して、パイプラインをデプロイします

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

以下に生成された出力を示します。

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

iOS 用モバイル・アプリケーション・ビルド・パイプライン

前提条件

一般にアクセス可能な Mac マシンに Xcode サーバーをセットアップする必要があります。 『iOS アプリケーションをビルドするための Xcode サーバーのセットアップ』セクションを確認してください。

前提条件を満たした後、次のコマンドを実行します。

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

以下に生成された出力を示します。

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

モバイル・アプリケーション配布パイプライン

次のコマンドを実行します。

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

以下に生成された出力を示します。

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

Android 用モバイル・アプリケーション・テスト・パイプライン

前提条件

Android アプリケーション・テスト・パイプラインを実行するには、API 鍵、デバイス ID、フレームワーク ID、およびプロジェクト ID と共に BitBar アカウントが必要です。

次のコマンドを実行します。

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

以下に生成された出力を示します。

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

上記のコマンドは、タスク、パイプライン、およびリソースを作成します。 タスク、リソース、パイプラインは Tekton ダッシュボードで確認できます。

Tekton ダッシュボード・タスク

Tekton ダッシュボード・リソース

Tekton ダッシュボード・パイプライン

Tekton ダッシュボードから適切なリソースを使用してパイプラインを実行する

  1. アプリケーションの適切な git リポジトリー URL を使用してリソース・ファイルを編集します。
     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. コマンドを実行して、Tekton パイプライン mobile-app-registration のリソースを更新します。
      oc apply -f pipeline/mobile-app-registration/appregistrationgitresource.yaml -n <projectname>
    

    以下に生成された出力を示します。

      pipelineresource.tekton.dev/mobile-app-registration-git-resource configured
    
  3. コマンドを実行して、Tekton パイプライン mobile-app-build-android のリソースを更新します。
      oc apply -f pipeline/mobile-app-build-andorid/buildandoridgitresource -n <projectname>
    

    以下に生成された出力を示します。

      pipelineresource.tekton.dev/mobile-app-build-android-git-resource configured
    
  4. コマンドを実行して、Tekton パイプライン mobile-app-build-ios のリソースを更新します。
      oc apply -f pipleline/mobile-app-build-ios/buildiosgitresource -n <projectname>
    

    以下に生成された出力を示します。

      pipelineresource.tekton.dev/mobile-app-build-ios-git-resource configured
    
  5. コマンドを実行して、Tekton パイプライン mobile-app-publish のリソースを更新します。
      oc apply -f pipeline/mobile-app-publish/mobileapppublishgitresource.yaml -n <projectname>
    

    以下に生成された出力を示します。

      pipelineresource.tekton.dev/appcenter-git-resource configured
    
  6. コマンドを実行して、Tekton パイプライン mobile-app-test-android のリソースを更新します。
      oc apply -f pipeline/mobile-app-test-android/testandroidappgitresource.yaml -n <projectname>
    

    以下に生成された出力を示します。

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

PipelineRun を使用して、パイプラインを実行する

Tekton ダッシュボードを開き、「Pipelines」セクションをクリックします。

  1. 実行するパイプラインをクリックします。 PipelineRun

  2. 「PipelineRun の作成 (Create PipelineRun)」をクリックします。 PipelineRun

  3. 上記で作成した PipelineResources git-source を選択します。
  4. 必須のパラメーターとサービス・アカウントに対してデフォルトを指定します。
  5. 「PipelineRun の作成 (Create PipelineRun)」をクリックします。 PipelineRun
  6. PipelineRun のログと状況を表示するには、Tekton ダッシュボードに移動して、「PipelineRuns」を選択します。 PipelineRun

Webhook の Tekton トリガーをデプロイする

注: これらのステップは、Webhook を使用する場合にのみ必要です。

Android ビルド・パイプラインの Tekton トリガーの構成

前提条件

Android ビルド用の Tekton トリガーを使用する前に、github-token をトリガー・バインディング yaml ファイルに追加する必要があります。pipeline/android-pipeline-trigger/mfpandroidtriggerbinding.yaml ファイルに移動し、プレースホルダー {githubToken} を有効な github-token で編集します。

次のコマンドを実行します。

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

以下に生成された出力を示します。

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

iOS ビルド・パイプラインの Tekton トリガーの構成

前提条件

iOS 用の Tekton トリガーを使用する前に、いくつかのフィールドをトリガー・バインディング yaml ファイルに追加する必要があります。pipeline/ios-pipeline-trigger/mfpiostriggerbinding.yaml ファイルに移動し、以下のパラメーター {githubToken}{xcodeServerBotId}、および xcodeServerHost を有効な値で編集します。

次のコマンドを実行します。

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

以下に生成された出力を示します。

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

上記のコマンドは、Tekton ダッシュボードからアクセスできる EventListeners、TriggerBindings、および TriggerTemplates を作成します。

トリガー

トリガー

トリガー

また、Webhook の構成に使用できる 2 つのルートも公開されます。OpenShift ダッシュボードから「ネットワーキング」と「ルート」にナビゲートします。1 つは Android ビルド用で、もう 1 つは iOS ビルド用です。

トリガー

Webhook を使用してパイプラインをトリガーする

アプリケーション Git リポジトリーに変更があるときは、いつでも Webhook を使用して PipelineRun を自動的にトリガーしてパイプラインを実行します。

Webhook の作成

  1. Webhook を構成する Git リポジトリーに移動します。
  2. リポジトリーの「設定」タブにナビゲートします。 Webhook
  3. 左ナビゲーション・バーの「Webhook」をクリックし、「Webhook の追加」をクリックします。
  4. Tekton トリガーが構成されるときに、以前に作成されたルートを「ペイロード URL」フィールドに指定します。「コンテンツ・タイプ」application/json に設定する必要があり、Webhook を実行するときのイベントを選択します。 Webhook
  5. 「Webhook の追加」をクリックします。

Git リポジトリーに対するイベントは、そのルートに対して構成された PipelineRun の作成をトリガーします。 PipelineRun のログと状況を表示するには、Tekton ダッシュボードに移動して、「PipelineRuns」を選択します。

iOS アプリケーションをビルドするための Xcode サーバーのセットアップ

  1. Mac マシンで Xcode をセットアップします。
  2. Xcode を開きます。
  3. トップ・メニューから、「Xcode サーバー」を選択します。
  4. Xcode サーバーをオンにして、統合を実行します。
  5. サーバーがオンになった後、「アクセス許可」セクションに移動し、「ボットの作成と表示」オプションを「すべてのユーザー」に変更します。
  6. 「アカウント」セクションに移動し、アカウント・タイプが「Xcode サーバー」の新しいアカウントを追加し、使用可能なサーバーを選択します。
  7. Xcode サーバーをセットアップした後、統合を実行して ipa を生成するようにボットを構成する必要があります。 Xcode でビルドする iOS プロジェクトを開きます。
  8. プロジェクトのビルド・ログに移動し、「グループ別 (By Group)」オプションを選択します。 構成されたサーバーが表示されます。
  9. サーバーを右クリックし、「ボットの作成」をクリックします。
  10. ボットの名前を指定して、「次へ」をクリックします。 ボット名にスペースが含まれないようにしてください。 ボットのソース管理を構成して、「次へ」をクリックします。
  11. 「アクション (Actions)」セクションのビルド構成で、「アーカイブ (Archive)」オプションが選択されていることを確認します。 「エクスポート (Export)」オプションの下で、「カスタム・エクスポート・オプション plist を使用する (Use Custom Export Options Plist)」を選択します。 次の形式の plist ファイルがあることを確認してください。 XCode
  12. 「ボット統合のスケジュール (Schedule bot integrations)」セクションで、手動 で実行する統合を選択し、「次へ」をクリックします。 XCode
  13. プロジェクトの関連するビルド・オプションを選択し、「次へ」をクリックします。
  14. 「証明書とプロファイル (Certificates and Profiles)」セクションで、ipa の生成に必要な関連する証明書とプロファイルがサーバーに追加されていることを確認して、「次へ」をクリックします。
  15. 「引数と環境変数」セクションで、これらの引数を追加し、xcodebuild コマンドに関連する値を指定して、「次へ」をクリックします。 XCode
  16. 「トリガー (Triggers)」セクションで、「追加」をクリックし、「統合前スクリプト (Pre-Integration script)」を選択し、名前を付けて、アプリケーションの CocoaPod 依存関係 (存在する場合) をダウンロードするスクリプト・セクションに次のスクリプトを追加して、「作成」をクリックします。
    #!/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. ボットが正常に作成された後、統合が実行されるのを待ちます。 統合が成功したら、統合に移動して「ログ (Logs)」に移動します。 ログの中に botId があります。 botId は、Tekton パイプラインから統合を実行するために必要です。 XCode
  18. これで、Xcode サーバーのセットアップが正常に完了しました。 ボット ID を使用して iOS ビルド・パイプラインをトリガーします。
Last modified on June 19, 2020