
Salesforce CLI(sfdx)で本番環境にリリースする
Salesforceで開発したプログラムをSandboxから本番環境にリリースするときに、よく利用するのが送信変更セットです。
最近、送信変更セットをアップロードするとあっという間に本番環境でリリースできるようになったので便利なのですが(ちょっと前までかなり待ちました)、送信変更セットにリリースするものを追加するのがめんどくさいんです。
忘れ物があったり、本番環境でのテストが失敗すると、VisualStudio Code、Sandbox、本番環境を行ったり来たりになり、それなりに大変だったりします。
Salesforce CLIの進化が半端ないので、もしや本番環境にもリリースできるようになったのではと思って調べて見ると、やっぱりサポートされていました!
上記URLの通りなのですが、もう少し詳しく解説してみます。
本番環境を認証する
VisualStudio CodeでSalesforceの本番環境を認証します。
送信変更セットを作成し、テストを実行する(=クイックテストができるようにする)
ソースファイルを元に、以下のコマンドで送信変更セットを作成し、テストを実行、クリックリリースができる状態にします。
sfdx force:source:deploy --checkonly --sourcepath force-app --targetusername prod --testlevel RunLocalTests
テストが成功したかを確認し、成功していたらJob IDをコピーしておきます。
Job ID | 0Af2u000000Z76QCAS
SOURCE PROGRESS | ████████████████████████████████████████ | 44/44 Components
=== Test Success [38]
NAME METHOD
─────────────────────────────────────── ───────────────────────────────────────
ChangePasswordControllerTest testChangePasswordController
CommunitiesLandingControllerTest testCommunitiesLandingController
CommunitiesLoginControllerTest testCommunitiesLoginController
CommunitiesSelfRegConfirmControllerTest testCommunitiesSelfRegConfirmController
CommunitiesSelfRegControllerTest testCommunitiesSelfRegController
ForgotPasswordControllerTest testForgotPasswordController
MyProfilePageControllerTest testSave
pdAccount2Freee_test test_account2Freee
pdCamera_test save_test
pdExpenseFromFreeeJob_test doTest
pdExpenseFromFreee_test getExpenseInfo_test
pdForecast2MBJob_test doTest
pdForecast2MB_test test_sendForecast
pdQuota2MBJob_test doTest
pdQuota2MB_test test_sendQuota
pdQuotation_test doPrint_test
SiteLoginControllerTest testSiteLoginController
SiteRegisterControllerTest testRegistration
test_EventCalendar test_deleteEvent
test_EventCalendar test_getDay
test_EventCalendar test_getEvents
test_EventCalendar test_getHoliday
test_EventCalendar test_importHoliday
test_EventCalendar test_isImportHoliday
test_EventCalendar test_saveEvent
test_EventCalendar test_updateEvent
test_SatoriCustomer test_doPost_ExistsContact
test_SatoriCustomer test_doPost_ExistsLead
test_SatoriCustomer test_doPost_NotExistsLead
test_ToDoList test_addToDo
test_ToDoList test_changeClosedStatus
test_ToDoList test_deleteToDo
test_ToDoList test_getExpiredToDo
test_ToDoList test_getPriorityPicklist
test_ToDoList test_getStartToDo
test_ToDoList test_getStatusPicklist
test_ToDoList test_getTodayToDo
test_ToDoList test_updateToDo
=== Apex Code Coverage
NAME % COVERED UNCOVERED LINES
─────────────────────────────────── ───────── ──────────────────────────────────────────────────────────────────────
ChangePasswordController 100%
CommunitiesLandingController 100%
CommunitiesLoginController 100%
CommunitiesSelfRegConfirmController 100%
CommunitiesSelfRegController 76% 16,51,52,53,54,63,64,67,68,69
EventCalendar 88% 68,69,96,97,133,134,152,155,201,202,221,222
ForgotPasswordController 89% 15
MyProfilePageController 88% 21,37,38
pdAccount2Freee 88% 40,48,74,79,102,122,129,130,131,132,133,134,135,136,140
pdAccount2FreeeCalloutMock 100%
pdCamera 100%
pdExpenseFromFreee 90% 95,135,150,230,238,271,324,332,356,358,359,360,361,362,363,364,365,370
pdExpenseFromFreeeCalloutMock 100%
pdExpenseFromFreeeJob 100%
pdForecast2MB 85% 86,126,133,135,136,137,138,139,140,141,142,147
pdForecast2MBCallMock 100%
本番環境の設定でリリースの状況を確認します。
ジョブIDでは確認できないので、作成された日時で状況を確認します。
クイックリリースできる状態になっています。
クイックリリースする
上記のリリース状況か、以下のコマンドでリリースします。
sfdx force:source:deploy --targetusername prod --validateddeployrequestid <コピーしたJob ID>
Job ID | 0Af2u000000Z76fCAC
MDAPI PROGRESS | ████████████████████████████████████████ | 6/6 Components
本番環境の設定のリリース状況で確認します。
リリースできました。
VisualStudio Codeとスクラッチ組織で開発すると、プロジェクトの中にリリースに必要なものが揃っています。
VisualStudio Codeからリリースすれば、送信変更セットを作成する必要もありませんので、ミスなくリリースできるようになります。