この手順のデイリー部分の抜粋
Salesforce Scratch Org
(スクラッチ組織)をもちいた手順の一巡
Salesforce Scratch Org
(スクラッチ組織)をもちいた手順の一巡について、コマンドの記述手間軽減のためにそのまま再生可能な状態のコマンドラインをメモします。
-
Dev Hub
からScratch Org
を作成、プッシュ、オープン、プル、削除までの一巡が対象です -
Scratch Org
ベースの開発では、この一連手順を 1日のうちに何度も繰り返すことでしょう - この一連は
Salesforce DX
と呼ばれるものの一部とも見なすことができます。
前提
- Salesforce CLI(sfdx)ベース開発の知見一式がり、導入済みであること
- Dev Hub 有効な組織を使用可能であること
- sfdx 用の Salesforce プロジェクトの設定が実施済みのフォルダ一式がありソースコード管理に格納済みであること
GitLab から設定済みプロジェクトを git clone
- (わたしの場合は) GitLab から設定済みプロジェクトを
git clone
で取得します。
git clone git@gitlab.com:rsv...uct-pkg.git
- 勢いで実装するなら
/tmp
フォルダで作業してもよいかも (保証外) -
/tmp/202301281415
的なフォルダを都度作成して作業しても良いかも (スリリングになります)
Dev Hub が有効な組織にログイン
Dev Hub が有効な組織にログインします。
sfdx auth:web:login -d -a DevHub
- Dev Hub 有効組織での作業となります。(わたしの場合は PBO 組織も該当しこれが活躍)
Scratch Org を作成
myScratch1
という名称で Scratch Org (スクラッチ組織) を作成します。(こまめに git 作業フォルダおよび Scratch Org 作成するので、実は名称は何か固定のものでもワークする)
sfdx force:org:create -f config/project-scratch-def.json --durationdays 1 -s -a myScratch1
- Scratch Org 作成は少し待たされます
- とはいえ Developer Sandbox に比べたら爆速
- このコマンド例では Scratch Org は1日経過すると勝手に消えちゃいます
Scratch Org にソースをプッシュ
いま作成した Scratch Org に手元のソースをプッシュします。
sfdx force:source:push -u myScratch1
- 正常終了を待ちます。
- 調整済みプロジェクトであればここではエラーは発生しないはずです。
Scratch Org を Web ブラウザで開く
プッシュが成功したことを確認するために Scratch Org を Web ブラウザで開きます。
sfdx force:org:open -u myScratch1
- わたしの場合ここで権限セットをユーザに割り当てなどします。
必要に応じて開発作業
必要に応じて開発作業をおこないます。
変更作業を実施した場合は Org からプル
何かしら変更作業を実施した場合には Org からプルしてソースを取得します。
sfdx force:source:pull -u myScratch1
git作業
ブランチ作成などして開発成果のソースを GitLab に送り込みます。
使用後の Scratch Org の削除
使い終わった Scratch Org は すみやかに削除するようにします。
sfdx force:org:delete -p -u myScratch1
- 削除忘れ Scratch Org の数が増えると、新規 Scratch Org 作成ができなくなる場合があります
- その場合は Dev Hub に直接ログイン操作して もはや使用が終わった Scratch Org を削除操作するようにします。
まとめメモ
- Scratch Org ベース開発の場合、git リポジトリが作業の中心になり、Scratch Org は使い捨てになります。
- Scratch Org は最悪でも毎日捨て、1日のうちに数回は捨てて作成くらいのペースが好ましい開発ペースっぽいです
- 小ぶりなアプリ開発ではすこぶる快適な環境っぽいです
- 従来型開発とブレンドして、うまく生産性を向上したいです
- Scratch Org 開発は パッケージ作成や AppExchange アプリ開発などでも役立つことでしょう