すべてを結集

学習の目的

この単元を完了すると、次のことができるようになります。
  • Travis CI で JWT ベアラーフローを実行する方法を説明する。
  • travis.yml ファイルの内容を特定する。
  • CI を開始する方法を説明する。

秘密の暗号化

接続アプリケーションが作成され、CLI で JWT コマンドを実行する準備が整いました。

開発者に代わって Travis CI に JWT ベアラーフローを実行させるには、server.key にアクセスして OAuth 要求に署名できるようにする必要があります。このステップを安全に行うために、server.key を暗号化して、Travis CI だけが復号化してプロジェクトに追加できるようにします。

  1. コマンドウィンドウから、ローカルの sfdx-travisci プロジェクトディレクトリに変更します。
  2. .travis.yml ファイルを開き、次のような行を削除してから保存します。
    - openssl aes-256-cbc -K $encrypted_0db5e9c4fee8_key -iv $encrypted_0db5e9c4fee8_iv
       -in assets/server.key.enc -out assets/server.key -d
  3. assets フォルダで、サンプルの server.key.enc および server.key ファイルを削除します。
  4. certificates ディレクトリの server.key を assets フォルダにコピーします。
  5. GitHub ログイン情報を使用して Travis CI にログインします。
    travis login --org
  6. ローカルの sfdx-travisci ディレクトリのルートから、Travis CI CLI で次のコマンドを使用して、ファイルの暗号化バージョンを作成します。
    travis encrypt-file assets/server.key assets/server.key.enc --add
    --add フラグは、.travis.yml ファイルに暗号化鍵を追加します。YAML ファイルの内容についてはこの後説明します。
メモ

メモ

コマンドの実行が完了したら、assets/server.key を削除します。  ヒント: 実務でこのプロセスを行うときは、assets/server.key ファイルを削除するのではなく、.gitignore ファイルに追加することをお勧めします。こうすれば、この鍵が後々必要になった場合に使用できます。

設定の Travis CI への保存

JWT ベアラートークンフローでは、コンシューマの秘密とユーザ名を指定します。この機密情報は、リポジトリに配置するのではなく、Travis CI に安全に保存します。

Travis CI CLI を使用して、次のコマンドを実行します。
travis env set CONSUMERKEY <connected app consumer key>
travis env set USERNAME <your Dev Hub username>
接続アプリケーションのコンシューマ鍵を書き留めておくのを忘れてしまいましたか?
  1. [設定] から、[クイック検索] ボックスに「アプリケーションマネージャ」と入力し、[アプリケーションマネージャ] を選択します。
  2. スクロールダウンして sfdx travis ci 接続アプリケーションを見つけたら、リスト項目ドロップダウン矢印 (リスト項目ドロップダウン) をクリックして、[表示] を選択します。

ビルドのカスタマイズ

最初に、.travis.yml ファイルを各自のリポジトリに追加して、何をビルドするのかを Travis CI に伝える必要があります。このモジュールの手順を実行するために、サンプルリポジトリに YAML ファイルが用意されていました。このファイルにはすでに暗号化鍵を追加して更新しています。

テキストエディタで各自の YAML ファイルを開きます。YAML ファイルの各セクションに、何をビルドするのかが示されています。

before_install セクションは、Salesforce CLI を Travis CI 仮想マシン (VM) にインストールします。ここではソフトウェアをインストールするコマンドを実行するため、このプロセスに VW へのスーパーユーザアクセス権が必要です。sudo: true を指定するのはそのためです。このプロセスではまた、server.key.enc を復号化するコマンドも実行し、後続のコマンドを使用できるようにします。

before_install セクションは、JWT ベアラートークンフローを開始します。このフローは、Travis CI 環境設定に保存した $CONSUMERKEY および $USERNAME を使用します。

最後に script セクションは、新機能を開発するときに日常的に使用する Salesforce DX コマンドを実行します。このセクションには、次の操作を実行するコマンドが示されます。
  • 一時的なスクラッチ組織を作成する。
  • ソースをスクラッチ組織に転送する。
  • テストを実行する。
  • テストを実行後に一時的なスクラッチ組織を削除する。

これで、継続的インテグレーションのビルドを開始する準備ができました!

継続的インテグレーションの開始

この時点で、ローカルファイルへの変更をコミットしてリポジトリに転送すると、Travis CI でビルドが開始されます。すでに YAML ファイルには一定の変更を行っています。ビルドを開始する準備はできていますか? このプロセスがどのように機能するのか見てみましょう。

  1. 変更をコミットして転送します。
    git add .
    git commit -m "Updated YAML"
    git push origin master
  2. Travis CI に移動してビルドが開始され、テストが実行されるところを確認します。

お疲れさまでした! GitHub と Travis CI を使用して CI を設定しました。ここではこの 2 つのサービスを取り上げましたが、どのビルドシステムにも同じ概念を適用できます。