GitHubをつかったApexコードの管理について - Part 4です。前回はGitHub Desktopの基本的な操作方法を確認して、GitHubとのやりとりを試してみました。
今回はSalesforceのプロジェクトをGitHubにアップしてApexコードの管理を試してみます。
リポジトリの作成
まずはSalesforce開発を管理するGitHubリポジトリを作成します。
リポジトリのクローン
次にリポジトリを配置するフォルダを用意します。今回はprojectフォルダ→salesforceフォルダ→workspaceフォルダと用意してその中にリポジトリをクローンします。(リポジトリ名はsalesforce-productにしました。)
クローンが成功するとsalesforce-productフォルダがworkspaceフォルダ内に格納されていると思います。ローカルに追加されたリポジトリの中にSalesforceプロジェクトのテンプレートファイル一式を格納します。
テンプレートファイル一式はSalesforce CLIによるSFDXコマンドのCreate Project with manifestコマンドで生成できます。
生成されたプロジェクトからファイル一式をコピーしてリポジトリ内に格納します。
ここまでできたら一旦GitHubにプッシュします。
Salesforceと接続
ここからはいつもどおりSFDXのAuthコマンドを実行してSalesforceと接続します。
認証ができたらpackage.xmlを開いて取得条件を確認し、右クリックからRitrieveコマンドでSalesforceのコードを取得取得します。
このようにclassesフォルダ内などにSalesforce側のソースコードがダウンロードされます。
Salesforce側のコードはGitHubにはまだ存在しないのですべてのコードをプッシュします。
これでGitHub側にSalesforceプロジェクトのファイル一式が格納されました。これをベースにApex開発の管理が可能になります。
Apexコードの追加とGitHubへのプッシュ
試しにApexクラスを新たに作成します。
GitHub Desktop側でApexクラスのファイルが追加されたことを確認できます。これをコミットして、GitHubにプッシュします。
GitHub側に作成したApexクラスが追加されていることを確認できました。このような感じでApexコードのバージョンを管理することができます。
まとめ
これでGitHubをつかったApexコードの管理の流れを確認することができたと思います。通常はブランチを作成してプルリクエストとレビュー、マージなどのあとにGitHubのmasterにマージする流れで開発を管理することになりますが、Salesforceでは本番のソースコードが「正」ということもあり、とりあえずは、本番のソースコードをRitrieveコマンドで取得してGitHubにアップしてソースコードの差分チェックに利用するところから始める形でも良いと思います。
イメージ
- GitHubにSalesforceプロジェクト用のリポジトリを作成
- RitrieveコマンドでSalesforce側のソースコードを取得
- SalesforceのソースコードをGitHubにプッシュ
- Salesforce側で開発を行い本番環境にデプロイ
- GitHubに最新のソースコードをプッシュ
とりあえずの手順ですが、バージョン管理していない状況からは抜け出せるのでやらないよりはやったほうが良いと思います。
もし、本格的に管理する場合はDev Hubやスクラッチ組織といったGitのバージョン管理と連携するソース駆動形の開発の仕組みがあるのでそちらを利用して開発していくことになると思います。
GitHubをつかったApexコードの管理についてはこんな感じです。より高度な使い方についてはまた今度時間を取って勉強しようと思います。