tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:GitHubをつかったApexコードの管理について - Part 4

GitHubをつかったApexコードの管理について - Part 4です。前回はGitHub Desktopの基本的な操作方法を確認して、GitHubとのやりとりを試してみました。

今回はSalesforceのプロジェクトをGitHubにアップしてApexコードの管理を試してみます。

リポジトリの作成

まずはSalesforce開発を管理するGitHubリポジトリを作成します。
f:id:tyoshikawa1106:20210111174643p:plain

リポジトリのクローン

次にリポジトリを配置するフォルダを用意します。今回はprojectフォルダ→salesforceフォルダ→workspaceフォルダと用意してその中にリポジトリをクローンします。(リポジトリ名はsalesforce-productにしました。)

f:id:tyoshikawa1106:20210111174957p:plain:w300

f:id:tyoshikawa1106:20210111175234p:plain:w300


クローンが成功するとsalesforce-productフォルダがworkspaceフォルダ内に格納されていると思います。


ローカルに追加されたリポジトリの中にSalesforceプロジェクトのテンプレートファイル一式を格納します。

f:id:tyoshikawa1106:20210111180325p:plain


テンプレートファイル一式はSalesforce CLIによるSFDXコマンドのCreate Project with manifestコマンドで生成できます。
f:id:tyoshikawa1106:20210111180540p:plain


生成されたプロジェクトからファイル一式をコピーしてリポジトリ内に格納する感じです。
f:id:tyoshikawa1106:20210111180632p:plain


ここまでできたら一旦GitHubにプッシュします。
f:id:tyoshikawa1106:20210111180842p:plain

Salesforceと接続

ここからはいつもどおりSFDXのAuthコマンドを実行してSalesforceと接続します。
f:id:tyoshikawa1106:20210111181527p:plain

f:id:tyoshikawa1106:20210111181604p:plain:w400

f:id:tyoshikawa1106:20210111181618p:plain:w400

認証ができたらpackage.xmlを開いて取得条件を確認し、右クリックからRitrieveコマンドでSalesforceのコードを取得取得します。
f:id:tyoshikawa1106:20210111181825p:plain


このようにclassesフォルダ内などにSalesforce側のソースコードがダウンロードされます。
f:id:tyoshikawa1106:20210111182134p:plain


Salesforce側のコードはGitHubにはまだ存在しないのですべてのコードをプッシュします。
f:id:tyoshikawa1106:20210111182309p:plain


これでGitHub側にSalesforceプロジェクトのファイル一式が格納されました。これをベースにApex開発の管理が可能になります。

Apexコードの追加とGitHubへのプッシュ

試しにApexクラスを新たに作成します。
f:id:tyoshikawa1106:20210111182650p:plain

f:id:tyoshikawa1106:20210111182849p:plain


GitHub Desktop側でApexクラスのファイルが追加されたことを確認できます。これをコミットして、GitHubにプッシュします。
f:id:tyoshikawa1106:20210111183018p:plain


GitHub側に作成したApexクラスが追加されていることを確認できました。このような感じでApexコードのバージョンを管理することができます。

まとめ

これでGitHubをつかったApexコードの管理の流れを確認することができたと思います。通常はブランチを作成してプルリクエストとレビュー、マージなどのあとにGitHubのmasterにマージする流れで開発を管理することになりますが、Salesforceでは本番のソースコードが「正」ということもあり、とりあえずは、本番のソースコードをRitrieveコマンドで取得してGitHubにアップしてソースコードの差分チェックに利用するところから始める形でも良いと思います。

イメージ
  1. GitHubにSalesforceプロジェクト用のリポジトリを作成
  2. RitrieveコマンドでSalesforce側のソースコードを取得
  3. SalesforceのソースコードをGitHubにプッシュ
  4. Salesforce側で開発を行い本番環境にデプロイ
  5. GitHubに最新のソースコードをプッシュ

とりあえずの手順ですが、バージョン管理していない状況からは抜け出せるのでやらないよりはやったほうが良いと思います。


もし、本格的に管理する場合はDev Hubやスクラッチ組織といったGitのバージョン管理と連携するソース駆動形の開発の仕組みがあるのでそちらを利用して開発していくことになると思います。


GitHubをつかったApexコードの管理についてはこんな感じです。より高度な使い方についてはまた今度時間を取って勉強しようと思います。

関連記事