#今回の成果物
以前作成したSF組織のメタファイルをスケジュールで自動で取得するファイルをGit管理できるようにしました。今回はリモートへのプッシュは行っておらず、ローカルで個人で管理する用に作成しました。
必要なものは前回のものに追加して以下のもの。
・Gitのインストール
#フォルダ構成
myorg/
┣unpackaged
┃ ┗package.xml
┣build.properties
┣build.xml
┣.git
┣executeBackupAndCommit.bat
┣commit.sh
今回、新た追加したのは
・executeBackupAndCommit.bat
・commit.sh
の2ファイル。
また、build.xmlを書き換える必要はないので、
xmlを書き換えるプログラムは今回必要ありません。
###executeBackupAndCommit.bat
SF組織からメタデータを取得するコマンドを実行し、commit.shを行う起動するbatファイル
Ant backup & cd C:\Program Files\Git & git-bash "C/Users/userName/Desktop/myorg/commit.sh"
※各コマンドを区切らずに、"&"で繋いで1行で書くことが重要です。こちらについては後日、記事を投稿しようと思います。
###commit.sh
指定フォルダで差分をコミットするシェルスクリプト
#!/usr/bin/bash
cd "/c/Users/userName/Desktop/myorg"
git add --all
git commit --allow-empty -m"autobackup"
#バックアップの実行
上記のフォルダを配置したディレクトリで、executeBackupAndCommit.batをダブルクリックするとタスクが実行されます。(Windowsタスクスケジュラーでスケジュール実行可能)
SF組織からメタデータを取得し、差分をコミットします(今回はgit commit --allow-empty オプションを実行しているので、差分がなくても空コミットを行います。)
#まとめ
今回の成果物は、コードの記述量が少なかったですが、Antコマンドの後のGitコマンドがなかなか上手く実行されずにかなり躓きました。今回の躓きポイントは別記事で投稿しようと思います。
また、前回から勉強のためAntを使用しましたが、Salaesforce CLIを使用して、Antコマンドをsfdx force:source:retrieveコマンドに置き換えても同様に動作します。