CI/CDパイプラインの構成について

まず、APIの準備を整えてください。そのエンドポイントを少なくとも定義し、OMCによって生成されるscaffoldをダウンロードする必要があります。Scaffoldは最小限のアプリケーションを表しており、CI/CDプロセスが正しく機能していることを確認してから、カスタムAPIでコードの記述とテストを行うことができます。

APIの準備ができ、Developer Cloud ServiceプロジェクトでGitリポジトリに変更を正常にプッシュできると、そのプロジェクトにCI/CDを設定する時間があります。

Oracle Mobile HubでのAPIの設定

アプリケーションが接続するRESTエンドポイントを定義して、API scaffoldを作成します。Scaffoldを完了した後、その定義をダウンロードしてAPIコードの開始点として使用できます。

エンドポイントのHTTPメソッドを定義する場合、サンプル・レスポンスを追加できます。実際のレスポンスを提供するコードを後で作成するため、実際の会話にはサンプル・レスポンスが不要です。ただし、カスタム・コードの準備ができる前に、APIをテストするためのサンプル・レスポンスを入力することもできます。

  1. Oracle Mobile Hubにログインして、ナビゲーション・パネルを開きます。
  2. ナビゲーション・パネルの「アプリケーション」セクションで、「Api」をクリックします。
  3. 「新規API」をクリックし、開いたメニューで「API」をクリックします。
    「新規API」ウィンドウが開きます。
  4. API表示名」フィールドおよび「API名」フィールドに、APIの適切な名前を入力します。
  5. 簡単な説明」フィールドに、適切な説明を入力します。
  6. APIのRAMLドキュメントがある場合、ここにアップロードします。
  7. 作成」をクリックすると、新しいAPIのページが開きます。
  8. HTTPリソースを追加します。RAMLドキュメントをアップロードした場合、このステップをスキップできます。
    1. エンドポイント」、「新規リソース」の順にクリックして、最初のエンドポイントを作成し、HTTPメソッドを定義します。
    2. すべてのエンドポイントが定義されるまで、APIのエンドポイントおよびHTTPメソッドの定義を続けます。
  9. 保存」をクリックします。

バックエンドの設定

APIで使用するバックエンドを作成します。バックエンドは、アプリからのリクエストをAPIにルーティングし、認証サービスを提供します。

  1. Oracle Mobile Hubのナビゲーション・パネルで、「Backends」をクリックします。「Backends」ページが開きます。
  2. 新規バックエンド」をクリックすると、表示されるウィンドウで「名前」フィールドに適切な名前を入力し、「作成」をクリックします。
    バックエンド構成ページが開きます。独自のナビゲーション・パネルがあり、これは「設定」ページで開かれます。
  3. 構成ページのナビゲーション・パネルで、「API」をクリックし、表示されたページで「API選択」をクリックします。これにより、APIカタログが開きます。
  4. カタログで、作成したAPIのカードを検索し、「+」ボタンをクリックします。これにより、そのAPIがこのバックエンドに関連付けられます。

レコード・バックエンドおよびインスタンスの詳細情報

開発ツールの構成時に必要となる情報を記録します。

この情報は、toolsConfig.jsonというファイルで使用され、認証に必要です。これにより、スクリプトはOracle Mobile Hubに接続して、コード・アーティファクトを配信できます。

  1. Oracle Mobile Hubのナビゲーション・パネルで、「Backends」をクリックします。「Backends」ページが開きます。
  2. バックエンドを選択して「開く」をクリックします。
  3. ナビゲーション・パネルで、「設定」をクリックします。
  4. 次の情報を記録し、テキスト・ファイルや、後で簡単に取得できる他の場所にコピーします。
    • クライアントID
    • クライアント・シークレット
    • バックエンドID
    • バックエンド名
    • バックエンド・バージョン
    • 匿名キー
  5. ナビゲーション・パネルで、「開発」をクリックしてメイン・ページを開き、「インスタンスの詳細」をクリックして「インスタンスの詳細」パネルを開きます。
  6. 次の情報を記録し、前の手順で記録したバックエンド情報とともに保持します。
    • チーム・メンバー・アプリケーション・クライアントID
    • チーム・メンバー・アプリケーション・クライアント・シークレット

Oracle Developer Cloud Serviceでのプロジェクトの設定

Gitリポジトリを含むプロジェクトを作成します。その後、リポジトリにコミットをプッシュするたびにビルドが実行されるようにプロジェクトを構成します。

プロジェクトの作成

Gitリポジトリを含むプロジェクトを作成します。

  1. Oracle Developer Cloud Serviceコンソールにログインして、「新規プロジェクト」をクリックします。
  2. プロジェクトの詳細」ページで、プロジェクトの名前を入力し、「次へ」をクリックします。
  3. テンプレート・ページで、「初期リポジトリ」を選択し、「次へ」をクリックします。
  4. プロジェクト・プロパティ」ページで、デフォルト値を受け入れ、「終了」をクリックしてプロビジョニング・プロセスを開始します。

プロジェクトのプロビジョニング後、画面は次のイメージのようになります。


プロジェクトの「サマリー」ページ

Gitリポジトリのクローンを作成して構成

リポジトリをローカル開発システムにクローニングします。

  1. Oracle Developer Cloud Serviceにログインして、プロジェクト・ページに移動します。
  2. GitのリポジトリのフィールドからHTTPアドレスをコピーします。
  3. 端末ウィンドウ(LinuxまたはMac)またはGit Bash端末(Windowsの場合)を開き、ハード・ドライブに適した場所に新しいディレクトリを作成します。プロジェクトに適したディレクトリ名を使用します。
     mkdir <your-directory-name>
  4. ディレクトリに移動してリポジトリをクローニングし、サンプルのリポジトリ・アドレスを独自のものに置き換えます。
    cd <your-directory-name>
    git clone <your-repo-url>

    パスワードの入力を求められたら、Oracle Developer Cloud Serviceへのログインに使用するパスワードを使用します。

  5. クローニング・プロセスで作成されたディレクトリに移動します。
    cd <your-directory-name>
  6. このプロジェクトの名前および電子メール・アドレスを設定し、資格証明を保存するようGitを構成します。
    git config user.name "<your-name>"
    git config user.email "<your-email-address>"
    git config credential.helper store

新規ビルド・ジョブの作成

コードをプロジェクトのGitリポジトリにプッシュするたびに実行するジョブを作成します。

  1. Oracle Developer Cloud Serviceにログインして、プロジェクト・ページに移動します。
  2. ナビゲーション・パネルで、「ビルド」をクリックし、表示されているページで「新規ジョブ」をクリックします。
  3. 名前を入力し、ソフトウェア・テンプレートを選択して、「ジョブの作成」をクリックします。
  4. ソース・コントロールの追加」をクリックして「Git」を選択します。
  5. リポジトリ」ドロップダウンで、使用するGitリポジトリを選択します。
  6. オプション:コードをリポジトリにマップした唯一の開発者である場合、「SCMコミット時にビルドを自動的に実行」を選択します。

    複数のユーザーがプロジェクトを操作してリポジトリにコードをプッシュしている場合は、このオプションを選択しないでください。かわりに、ビルド・ジョブの作成が終了した後で行うSCMポーリング・トリガーを設定できます。

  7. 保存」をクリックします。

SCMポーリング・トリガーの構成

定義したスケジュールでGitリポジトリへの変更をチェックするポーリングを設定できます。変更が検出されると、ビルドが開始されます。

コードをリポジトリにプッシュする開発者のみが適切な場合は、迅速なビルドが適していると考えられます。ただし、複数のユーザーがコードをプッシュする場合、ビルドを開始する前にリポジトリへの変更を定期的にチェックするポーリング・トリガーを設定できます。

SCMポーリング・トリガーを設定するには、crontab形式を使用してポーリング・スケジュールを設定します。Crontabフォーマットに精通していない場合は、グラフィカル・インタフェースを使用してスケジュールを作成できます。

デフォルトのスケジュールは30分ごとで、0/30 * * * *で表されます。1時間ごとに30分後に実行されるようにスケジュールを設定するには、30 * * * *を使用します。

  1. Oracle Developer Cloud Serviceコンソールにログインして、プロジェクトを開きます。
  2. ナビゲーション・パネルで、「ビルド」をクリックし、パラメータを設定するビルドを選択します。
    ビルドの設定」ページが開きます。
  3. 「構成」をクリックします。
    ジョブ構成」ページが開きます。
  4. 歯車アイコン設定アイコンは、歯車のペアのようになります。をクリックし、「トリガー」をクリックして「トリガー の作成の構成」パネルをオープンします。
  5. トリガーの追加」ドロップダウンをクリックして、「SCMポーリング・トリガー」を選択します。
  6. スケジュールを設定し、「保存」をクリックします。

ビルド・パラメータの設定

Oracle Mobile Hubアカウントのユーザー名およびパスワードを保持するための文字列パラメータおよびパスワード・パラメータを設定します。

開発者ツールを構成するときは後で必要になるため、これらのパラメータの名前は追跡しておきます。

  1. Oracle Developer Cloud Serviceコンソールにログインして、プロジェクトを開きます。
  2. ナビゲーション・パネルで、「ビルド」をクリックし、パラメータを設定するビルドを選択します。
    ビルドの設定」ページが開きます。
  3. 構成」をクリックします。
    ジョブ構成」ページが開きます。
  4. ビルド・パラメータ」タブをクリックします。
  5. ビルド・パラメータの追加」ドロップダウンをクリックし、「文字列パラメータ」を選択します。
  6. ユーザー名パラメータの名前を入力します。例: devUser.
  7. 「デフォルト値」フィールドに、Oracle Mobile Hubのユーザー名を入力します。例samir.developer@example.com.
  8. ビルド・パラメータの追加」ドロップダウンをクリックし、「パスワード・パラメータ」を選択します。
  9. devPasswordなどのパスワード・パラメータの名前を入力します。
  10. デフォルト値」フィールドに、Oracle Mobile Hubのユーザー名のパスワードを入力します。
  11. 保存」をクリックします。

Unixシェル・ビルダーの構成

シェル・ビルダーは、ビルドがトリガーされるたびにビルド・システム上で実行されるBashスクリプトです。これにより、依存性がインストールされ、Oracle Mobile Hubにコードが提供されます。

スクリプトは、Oracle Developer Cloud Serviceでプロジェクトを作成したときに設定したGitリポジトリのソースに対して実行されます。スクリプトがいずれかの時点で失敗した場合、エラーが発生してスクリプトが終了し、コードはデプロイされません。

  1. Oracle Developer Cloud Serviceコンソールにログインして、プロジェクトを開きます。
  2. ナビゲーション・パネルで、「ビルド」をクリックし、パラメータを設定するビルドを選択します。
    ビルドの設定」ページが開きます。
  3. 構成」をクリックします。
    ジョブ構成」ページが開きます。
  4. ビルダー」タブをクリックします。
  5. ビルダーの追加」ドロップダウンをクリックし、「Unixシェル・ビルダー」を選択します。
  6. スクリプト」フィールドに、次のスクリプトを入力します。
    export NODE_PATH=node-configurations/8.9/node_modules
    npm install
    cd omce-tools
    npm install
    cd node-configurations/8.9
    npm install
    cd ../..
    node omce-deploy ../toolsConfig.json -u $devUser -p $devPassword
  7. 保存」をクリックします。

JavaScript Scaffoldのダウンロード

APIスケルトンを作成すると、APIコードに対してscaffoldが作成され、zipファイルでダウンロードできます。

Scaffoldには、APIの実装の初期構造およびファイルが含まれており、カスタマイズの開始点として使用します。ファイルを抽出して作業ディレクトリに配置する必要があります。

  1. Oracle Mobile Hubで、scaffoldを必要とするAPIを開きます。
  2. APIナビゲーション・パネルで、「実装」をクリックします。
  3. 「JavaScript Scaffold」をクリックして、scaffoldファイルをコンピュータにダウンロードします。
  4. APIのpackage.jsontoolsConfig.jsonおよび.jsファイルを作業ディレクトリに抽出します。Gitリポジトリのクローン作成時に作成されたディレクトリと同じディレクトリで、.gitディレクトリが含まれています。

開発ツールのインストールおよび構成

Oracleには、コマンドラインからカスタムAPI実装をOracle Mobile Hubにアップロードするためのツールが用意されています。Oracle Developer Cloud Service上のビルド・スクリプトで使用できるように、ツールをGitリポジトリに追加します。

このツールは、開発システムでカスタムAPI実装のテストとデバッグに使用できるOracle Mobile Hub APIも含まれるダウンロードの一部です。CI/CDパイプラインを使用する場合、APIは必要ありません。OracleMobileAPIと呼ばれるAPIの使用方法については、omce-toolsディレクトリ内のreadmeを参照してください。

このツールでは、Node.js: 6.10.0と8.9.xの2つのバージョンがサポートされています。この手順では、バージョン8.9.4以上を使用していることが想定されています。

ツールをインストールおよび構成する手順は、次のとおりです。

  1. https://www.oracle.com/technetwork/topics/cloud/downloads/amce-downloads-4478270.htmlに移動し、カスタム・コード・テスト・ツール ・バージョン18.3.1以上をダウンロードします。このページのファイル名は引き続きレガシー製品名に従いますが、含まれているコードは最新リリースで最新のものになります。ダウンロード内のツールの名前と同様です。
  2. ダウンロードしたファイルを開き、omce-tools/omce-toolsディレクトリの内容を作業用ディレクトリ(.gitディレクトリが含まれているディレクトリ)に抽出します。たとえば、作業ディレクトリがtest-projectの場合、omce-tools/omce-toolsの内容をtest-project/omce-toolsに抽出します。
  3. ノード構成をインストールします。omce-tools/node-configurations/8.9ディレクトリに変更して、npm installを実行します。
  4. システムに新しいツールをインストールする: omce-toolsディレクトリに変更してnpm install -gを実行します。
  5. NODE_PATHという環境変数を作成し、これをnode-configurations/8.9/node_modulesに設定します。
  6. ツールが正しくインストールされていることを確認します。omce-toolsディレクトリで、node omce-test --versionを実行します。結果は18.3.1.である必要があります
  7. toolsConfig.jsonを更新します。Scaffoldをダウンロードしたとき、toolsConfig.json構成ファイルが含まれています。バックエンドから記録した情報を使用して、toolsConfig.jsonのプレースホルダ・テキストを置き換えます。