すべてを結集
学習の目的
- Travis CI で JWT ベアラーフローを実行する方法を説明する。
- travis.yml ファイルの内容を特定する。
- CI を開始する方法を説明する。
秘密の暗号化
接続アプリケーションが作成され、CLI で JWT コマンドを実行する準備が整いました。
開発者に代わって Travis CI に JWT ベアラーフローを実行させるには、server.key にアクセスして OAuth 要求に署名できるようにする必要があります。このステップを安全に行うために、server.key を暗号化して、Travis CI だけが復号化してプロジェクトに追加できるようにします。
- コマンドウィンドウから、ローカルの sfdx-travisci プロジェクトディレクトリに変更します。
- .travis.yml ファイルを開き、次のような行を削除してから保存します。
- openssl aes-256-cbc -K $encrypted_0db5e9c4fee8_key -iv $encrypted_0db5e9c4fee8_iv -in assets/server.key.enc -out assets/server.key -d
- assets フォルダで、サンプルの server.key.enc および server.key ファイルを削除します。
- certificates ディレクトリの server.key を assets フォルダにコピーします。
- GitHub ログイン情報を使用して Travis CI にログインします。
travis login --org
- ローカルの sfdx-travisci ディレクトリのルートから、Travis CI CLI で次のコマンドを使用して、ファイルの暗号化バージョンを作成します。
travis encrypt-file assets/server.key assets/server.key.enc --add
--add フラグは、.travis.yml ファイルに暗号化鍵を追加します。YAML ファイルの内容についてはこの後説明します。
設定の Travis CI への保存
JWT ベアラートークンフローでは、コンシューマの秘密とユーザ名を指定します。この機密情報は、リポジトリに配置するのではなく、Travis CI に安全に保存します。
travis env set CONSUMERKEY <connected app consumer key> travis env set USERNAME <your Dev Hub username>
- [設定] から、[クイック検索] ボックスに「アプリケーションマネージャ」と入力し、[アプリケーションマネージャ] を選択します。
- スクロールダウンして 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 を使用します。
- 一時的なスクラッチ組織を作成する。
- ソースをスクラッチ組織に転送する。
- テストを実行する。
- テストを実行後に一時的なスクラッチ組織を削除する。
これで、継続的インテグレーションのビルドを開始する準備ができました!
継続的インテグレーションの開始
この時点で、ローカルファイルへの変更をコミットしてリポジトリに転送すると、Travis CI でビルドが開始されます。すでに YAML ファイルには一定の変更を行っています。ビルドを開始する準備はできていますか? このプロセスがどのように機能するのか見てみましょう。
- 変更をコミットして転送します。
git add . git commit -m "Updated YAML" git push origin master
- Travis CI に移動してビルドが開始され、テストが実行されるところを確認します。
お疲れさまでした! GitHub と Travis CI を使用して CI を設定しました。ここではこの 2 つのサービスを取り上げましたが、どのビルドシステムにも同じ概念を適用できます。