Salesforceの大型プロジェクトやアジャイル開発方式を採用したプロジェクトでは、経常的に開発/運用(本番)組織へデプロイ作業を実施することがあります。プロジェクトの規模によっては、この作業のためだけに専用のチームを用意することもあります。
これらの作業を自動化することで、作業工数の削減や品質の向上(手作業によるミスの低減)を実現することができます。
以前は、Salesforceの継続的インテグレーションの実現方法が、Jenkinsを使ったCIが主流でしたが、最近ではほかにもいくつか推奨されるものが出てきています。
- CircleCI + Salesforce
- Jenkins + Salesforce
- Travis CI + Salesforce
詳細は、以下Salesforce公式サイトを参照ください。
(公式)Salesforce DX 開発者ガイド「継続的インテグレーション」
今回は、これらの中からCircleCIを使った環境構築手順についてご説明していきたいと思います。
作業手順
まずは、簡単に全体の流れを説明します。
簡単な流れ
- Guthubのサインアップ(すでにお使いであれば省略可能)
- CircleCIの環境セットアップ(CircleCI で GitHub リポジトリを設定)
- Salesforce CLIのインストール
- Dev Hub の有効化
- Dev Hub組織に対してJWTベースフローを使用した組織の認証を実行
- 非公開鍵と自己署名デジタル証明書の作成
- OpenSSL を使用して非公開鍵と自己署名デジタル証明書の作成
- 接続アプリケーションを作成して Salesforce DX 用に設定
- Dev Hub 組織用の接続アプリケーションの作成
- サーバキーの暗号化
- CircleCI を DevHub に接続
- CircleCIを使ってビルドを実行
GitHubのサインアップ
本記事をご覧になっている方のほとんどは、おそらくGithubをすでに使っている方ばかりだと思いますが、初めての方もいらっしゃるかもしれませんので、GitHubのセットアップ手順について説明させてい頂きます。
GitHub(ギットハブ)とは、プログラムのソースコードなどのリソースファイルをバージョン管理(保存)したり、公開するためのクラウドサービスとなります。もちろん非公開として自分だけやプロジェクトメンバーだけアクセスさせるような利用も可能です。
現在では、世界中のエンジニアの方が自身が作成したプログラムを公開していて、自分のスキルを証明するための資産として利用している側面もあります。Salesforce関連の非常に有用なソースコードも多数公開されているため、新しい機能を作るときには一度探してみるのもよいかもしれません。
セットアップ手順
手順①以下のサイトへアクセスします。
GitHub公式サイト「サインアップページ」
手順②公式サイトから「Sign up」ボタンをクリックします。
手順③アカウント作成画面にて以下の情報を登録する。
- ユーザ名(Username)
- Email address(メールアドレス)
- Password(パスワード)
- Verify your account(指定の画像を選択する)
- Create Accountボタンをクリックして完了
手順④登録したメールアドレスに以下のメールが届くため、メール内のリンクをクリックして認証を行います。
手順⑤認証が完了するとログイン後の画面が表示されます。
手順⑥新規リポジトリ(リソースを登録するスペースのこと)を作成します。※すでにお持ちの場合は省略
画面右上の+メニューから「New repository」をクリックします。
手順⑦以下の内容を入力して、Create Repositoryボタンをクリックします。
- Repository name:リポジトリ名
- Description(説明)
- 公開設定:Public(公開)/Private(非公開)
- Add a README File:Readmeファイルを作成するかどうか
手順⑧リポジトリが作成されると以下のように表示されます。
この後は、リポジトリにソースコードを登録する作業がありますが、CircleCIの環境セットアップを先に実施します。
※CircleCIはGitHubやGitBucketなどと連携できますが、今回はGithubを利用します。
CircleCIの環境構築(CircleCI で GitHub リポジトリを設定)
まずは、CircleCIのサインアップから行っていきます。
手順①以下、ブラウザでCircleCIの公式HPを開きます。
CircleIC公式HP「ホーム画面」
手順②ホーム画面トップメニューにある「Sign up」ボタンをクリックします。
手順③サインアップ画面では、以下3種類の認証が用意されています。
今回は先ほどセットアップしたGithubの認証を使うので、「Sign up with GitHub」を選択してください。
手順④GitHubのログイン画面が表示されるため、セットアップしたアカウントでログインします。
手順⑤Autorize CircleCIの画面が表示されます。リポジトリのアクセス権限や個人データ(メールアドレス)に対するアクセス権限を求められるため問題なければ「Authorize CircleCI」をクリックします。
手順⑥セットアップ画面では以下の内容を登録して、Setup Projectを実行します。
- Select Organization:GitHub組織を選択
- Select Repository:リポジトリを選択
- Select your config.yml file:config.ymlファイルを選択(存在しない場合は2番目のオプションを選択します。)
手順⑦セットアップが完了すると以下の画面が表示されます。
GitHubを確認するとCircleCIから作成されたBranchが確認できます。
Salesforce CLIのインストール
Salesforceのコマンドラインインタフェース(CLI)については、インストールが必要となりますので、ご利用中のOSに合わせて
公式サイトからダウンロードしてインストールを実行してください。
詳細な手順はこちらの記事を参照ください。
-
参考Salesforce CLI(Command Line Interface)の利用ガイド
本記事では、Salesforceが提供するCLI(Command Line Interface)ツールのセットアップや利用方法について説明いたします。 以下の内容を理解することができます。 参考 Sa ...
続きを見る
Dev Hub の有効化
Dev Hubを有効化するとスクラッチ組織の作成と管理、第二世代パッケージの作成と管理、Einstein 機能が利用可能となります。
スクラッチ組織とは、開発者および自動化 (CI/CD) のために作られた、Salesforce コードおよびメタデータのソース駆動型で破棄可能なリリースです。 スクラッチ組織ではあらゆる設定が可能で、開発者が機能や設定の異なるさまざまな Salesforce エディションをエミュレートできます。
※Salesforce公式HELPサイト「スクラッチ組織の管理」より
注意:Sandbox で Dev Hub を有効にすることはできません。そのほか制約事項や注意点は、Salesforce公式HELPサイト「組織のDev Hub機能の有効化」を参照してください。
ではDev Hubを有効化していきましょう。
手順①Salesforceにシステム管理者でログインして、設定->Dev Hubを実行します。
手順②Dev Hubの設定画面にて、Dev Hubを有効化を実行します。
注意: 一度有効化すると元に戻す(無効化)することができないので注意!
まとめ
今回は、GuthubのセットアップからCircleCIのセットアップ、そしてGitHubとの連携と、DevHubの有効化までの手順をご説明しました。
次回は残りの手順についてご説明していきます。Salesforceの組織とCircleCIの認証に関する設定をしていくことになりますが、内容としてはこれまでよりも難しい内容となりますが、頑張って設定していきましょう。
-
参考CircleCIを使った継続的インテグレーション(Continuous Integration)第2回
第一回では、GuthubのセットアップからCircleCIのセットアップ、そしてGitHubとの連携と、DevHubの有効化までの手順をご説明しました。 第二回の今回は、Salesforceの組織とC ...
続きを見る