見出し画像

Salesforce CLI(sfdx)で本番環境にリリースする

Salesforceで開発したプログラムをSandboxから本番環境にリリースするときに、よく利用するのが送信変更セットです。

最近、送信変更セットをアップロードするとあっという間に本番環境でリリースできるようになったので便利なのですが(ちょっと前までかなり待ちました)、送信変更セットにリリースするものを追加するのがめんどくさいんです。

忘れ物があったり、本番環境でのテストが失敗すると、VisualStudio Code、Sandbox、本番環境を行ったり来たりになり、それなりに大変だったりします。

Salesforce CLIの進化が半端ないので、もしや本番環境にもリリースできるようになったのではと思って調べて見ると、やっぱりサポートされていました!

上記URLの通りなのですが、もう少し詳しく解説してみます。

本番環境を認証する

VisualStudio CodeでSalesforceの本番環境を認証します。

画像1

画像2

画像3

送信変更セットを作成し、テストを実行する(=クイックテストができるようにする)

ソースファイルを元に、以下のコマンドで送信変更セットを作成し、テストを実行、クリックリリースができる状態にします。

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では確認できないので、作成された日時で状況を確認します。

画像4

画像5

クイックリリースできる状態になっています。

クイックリリースする

上記のリリース状況か、以下のコマンドでリリースします。

sfdx force:source:deploy --targetusername prod --validateddeployrequestid <コピーしたJob ID>
Job ID | 0Af2u000000Z76fCAC
MDAPI PROGRESS | ████████████████████████████████████████ | 6/6 Components

本番環境の設定のリリース状況で確認します。

画像6

画像7

リリースできました。

VisualStudio Codeとスクラッチ組織で開発すると、プロジェクトの中にリリースに必要なものが揃っています。

VisualStudio Codeからリリースすれば、送信変更セットを作成する必要もありませんので、ミスなくリリースできるようになります。


この記事が気に入ったらサポートをしてみませんか?