Submit Search
Upload
Continuous Integration Using Salesforce DX
•
Download as PPTX, PDF
•
2 likes
•
958 views
Satoru Ishikawa
Follow
Salesforce DX と GitHub と Travis CI をもちいた継続インテグレーションについて
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 68
Download now
Recommended
Salesforce DX & GitHub Deep Dive
Salesforce DX & GitHub Deep Dive
Salesforce Developers Japan
Lightning コンポーネント開発〜実装例から学ぶ開発のコツ
Lightning コンポーネント開発〜実装例から学ぶ開発のコツ
Salesforce Developers Japan
Python開発者のためのHeroku入門
Python開発者のためのHeroku入門
Salesforce Developers Japan
Lightning アプリケーション開発 - Visualforce ページの移行
Lightning アプリケーション開発 - Visualforce ページの移行
Salesforce Developers Japan
Lightning Experience 時代のプロセス開発
Lightning Experience 時代のプロセス開発
Salesforce Developers Japan
Salesforce開発プロジェクトの進め方とアプリケーションライフサイクルマネジメント
Salesforce開発プロジェクトの進め方とアプリケーションライフサイクルマネジメント
Salesforce Developers Japan
PHP開発者のためのHeroku入門
PHP開発者のためのHeroku入門
Salesforce Developers Japan
Ruby開発者のためのHeroku入門
Ruby開発者のためのHeroku入門
Salesforce Developers Japan
Recommended
Salesforce DX & GitHub Deep Dive
Salesforce DX & GitHub Deep Dive
Salesforce Developers Japan
Lightning コンポーネント開発〜実装例から学ぶ開発のコツ
Lightning コンポーネント開発〜実装例から学ぶ開発のコツ
Salesforce Developers Japan
Python開発者のためのHeroku入門
Python開発者のためのHeroku入門
Salesforce Developers Japan
Lightning アプリケーション開発 - Visualforce ページの移行
Lightning アプリケーション開発 - Visualforce ページの移行
Salesforce Developers Japan
Lightning Experience 時代のプロセス開発
Lightning Experience 時代のプロセス開発
Salesforce Developers Japan
Salesforce開発プロジェクトの進め方とアプリケーションライフサイクルマネジメント
Salesforce開発プロジェクトの進め方とアプリケーションライフサイクルマネジメント
Salesforce Developers Japan
PHP開発者のためのHeroku入門
PHP開発者のためのHeroku入門
Salesforce Developers Japan
Ruby開発者のためのHeroku入門
Ruby開発者のためのHeroku入門
Salesforce Developers Japan
Force.com開発基礎
Force.com開発基礎
Salesforce Developers Japan
Heroku Javaで12-Factor App
Heroku Javaで12-Factor App
Mitch Okamoto
Touch Platform によるモバイルアプリケーション開発
Touch Platform によるモバイルアプリケーション開発
Salesforce Developers Japan
App Cloud モバイルアプリ開発戦略
App Cloud モバイルアプリ開発戦略
Salesforce Developers Japan
やれる Heroku - Java アプリケーション開発編
やれる Heroku - Java アプリケーション開発編
Salesforce Developers Japan
食わず嫌いの為のSalesforce1 Platform入門
食わず嫌いの為のSalesforce1 Platform入門
Mitch Okamoto
Go Faster with Lightning : Salesforce Lightning 概要Webinar
Go Faster with Lightning : Salesforce Lightning 概要Webinar
Salesforce Developers Japan
はじめようLightningコンポーネント
はじめようLightningコンポーネント
Salesforce Developers Japan
Node.js開発者のためのHeroku入門
Node.js開発者のためのHeroku入門
Salesforce Developers Japan
実践!カスタマー エクスペリエンス 向上のためのアプリ開発 後編
実践!カスタマー エクスペリエンス 向上のためのアプリ開発 後編
Salesforce Developers Japan
Lightning Experience 時代のフロー開発
Lightning Experience 時代のフロー開発
Salesforce Developers Japan
Salesforce1 Platform 入門 2014 〜改めて基本から理解するforce.com〜
Salesforce1 Platform 入門 2014 〜改めて基本から理解するforce.com〜
Salesforce Developers Japan
Spring16 リリース開発者向け新機能Webセミナー
Spring16 リリース開発者向け新機能Webセミナー
Salesforce Developers Japan
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編
Salesforce Developers Japan
初めてのWave Analyticsデータセット作成
初めてのWave Analyticsデータセット作成
Salesforce Developers Japan
Visualforceを使ってみよう
Visualforceを使ってみよう
Salesforce Developers Japan
超初心者向けForce.com入門
超初心者向けForce.com入門
Salesforce Developers Japan
Jp visualforce in salesforce1
Jp visualforce in salesforce1
Salesforce Developers Japan
Salesforce1モバイルアプリケーション開発概要
Salesforce1モバイルアプリケーション開発概要
Salesforce Developers Japan
Developer Keynote
Developer Keynote
Salesforce Developers Japan
Developer-Controlled Packages (DCPs) を試してみた
Developer-Controlled Packages (DCPs) を試してみた
Takahiro Kawabata
DevOps with Dynatrace
DevOps with Dynatrace
Harry Hiyoshi
More Related Content
What's hot
Force.com開発基礎
Force.com開発基礎
Salesforce Developers Japan
Heroku Javaで12-Factor App
Heroku Javaで12-Factor App
Mitch Okamoto
Touch Platform によるモバイルアプリケーション開発
Touch Platform によるモバイルアプリケーション開発
Salesforce Developers Japan
App Cloud モバイルアプリ開発戦略
App Cloud モバイルアプリ開発戦略
Salesforce Developers Japan
やれる Heroku - Java アプリケーション開発編
やれる Heroku - Java アプリケーション開発編
Salesforce Developers Japan
食わず嫌いの為のSalesforce1 Platform入門
食わず嫌いの為のSalesforce1 Platform入門
Mitch Okamoto
Go Faster with Lightning : Salesforce Lightning 概要Webinar
Go Faster with Lightning : Salesforce Lightning 概要Webinar
Salesforce Developers Japan
はじめようLightningコンポーネント
はじめようLightningコンポーネント
Salesforce Developers Japan
Node.js開発者のためのHeroku入門
Node.js開発者のためのHeroku入門
Salesforce Developers Japan
実践!カスタマー エクスペリエンス 向上のためのアプリ開発 後編
実践!カスタマー エクスペリエンス 向上のためのアプリ開発 後編
Salesforce Developers Japan
Lightning Experience 時代のフロー開発
Lightning Experience 時代のフロー開発
Salesforce Developers Japan
Salesforce1 Platform 入門 2014 〜改めて基本から理解するforce.com〜
Salesforce1 Platform 入門 2014 〜改めて基本から理解するforce.com〜
Salesforce Developers Japan
Spring16 リリース開発者向け新機能Webセミナー
Spring16 リリース開発者向け新機能Webセミナー
Salesforce Developers Japan
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編
Salesforce Developers Japan
初めてのWave Analyticsデータセット作成
初めてのWave Analyticsデータセット作成
Salesforce Developers Japan
Visualforceを使ってみよう
Visualforceを使ってみよう
Salesforce Developers Japan
超初心者向けForce.com入門
超初心者向けForce.com入門
Salesforce Developers Japan
Jp visualforce in salesforce1
Jp visualforce in salesforce1
Salesforce Developers Japan
Salesforce1モバイルアプリケーション開発概要
Salesforce1モバイルアプリケーション開発概要
Salesforce Developers Japan
Developer Keynote
Developer Keynote
Salesforce Developers Japan
What's hot
(20)
Force.com開発基礎
Force.com開発基礎
Heroku Javaで12-Factor App
Heroku Javaで12-Factor App
Touch Platform によるモバイルアプリケーション開発
Touch Platform によるモバイルアプリケーション開発
App Cloud モバイルアプリ開発戦略
App Cloud モバイルアプリ開発戦略
やれる Heroku - Java アプリケーション開発編
やれる Heroku - Java アプリケーション開発編
食わず嫌いの為のSalesforce1 Platform入門
食わず嫌いの為のSalesforce1 Platform入門
Go Faster with Lightning : Salesforce Lightning 概要Webinar
Go Faster with Lightning : Salesforce Lightning 概要Webinar
はじめようLightningコンポーネント
はじめようLightningコンポーネント
Node.js開発者のためのHeroku入門
Node.js開発者のためのHeroku入門
実践!カスタマー エクスペリエンス 向上のためのアプリ開発 後編
実践!カスタマー エクスペリエンス 向上のためのアプリ開発 後編
Lightning Experience 時代のフロー開発
Lightning Experience 時代のフロー開発
Salesforce1 Platform 入門 2014 〜改めて基本から理解するforce.com〜
Salesforce1 Platform 入門 2014 〜改めて基本から理解するforce.com〜
Spring16 リリース開発者向け新機能Webセミナー
Spring16 リリース開発者向け新機能Webセミナー
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編
初めてのWave Analyticsデータセット作成
初めてのWave Analyticsデータセット作成
Visualforceを使ってみよう
Visualforceを使ってみよう
超初心者向けForce.com入門
超初心者向けForce.com入門
Jp visualforce in salesforce1
Jp visualforce in salesforce1
Salesforce1モバイルアプリケーション開発概要
Salesforce1モバイルアプリケーション開発概要
Developer Keynote
Developer Keynote
Similar to Continuous Integration Using Salesforce DX
Developer-Controlled Packages (DCPs) を試してみた
Developer-Controlled Packages (DCPs) を試してみた
Takahiro Kawabata
DevOps with Dynatrace
DevOps with Dynatrace
Harry Hiyoshi
[Developers Festa Sapporo 2020] Microsoft/GitHubが提供するDeveloper Cloud (Develop...
[Developers Festa Sapporo 2020] Microsoft/GitHubが提供するDeveloper Cloud (Develop...
Naoki (Neo) SATO
Excel on OneDrive is not a file
Excel on OneDrive is not a file
Takao Tetsuro
DevOps on Azure Kubernetes
DevOps on Azure Kubernetes
Issei Hiraoka
クラウドネイティブガバナンスの実現
クラウドネイティブガバナンスの実現
Minoru Naito
クラウドスキルチャレンジの概要と進め方 for ALGYAN
クラウドスキルチャレンジの概要と進め方 for ALGYAN
YasuhiroHanda2
SharePoint Framework による Viva Connections アプリの開発
SharePoint Framework による Viva Connections アプリの開発
Hiroaki Oikawa
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
貴志 上坂
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
Masanori Ishigami
Force.com Canvas アプリケーション
Force.com Canvas アプリケーション
Salesforce Developers Japan
Windows Phone で Active Directory 認証 2011.12.1版
Windows Phone で Active Directory 認証 2011.12.1版
junichi anno
Spring12新機能webinar
Spring12新機能webinar
Salesforce Developers Japan
20201008 GitHub at Microsoft
20201008 GitHub at Microsoft
Issei Hiraoka
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
真吾 吉田
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
アトラシアン株式会社
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
Takashi Watanabe
MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組み
Shinichiro Arai
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
de:code 2017
Pivotal Application Service とProject riff
Pivotal Application Service とProject riff
Takayuki Kabu
Similar to Continuous Integration Using Salesforce DX
(20)
Developer-Controlled Packages (DCPs) を試してみた
Developer-Controlled Packages (DCPs) を試してみた
DevOps with Dynatrace
DevOps with Dynatrace
[Developers Festa Sapporo 2020] Microsoft/GitHubが提供するDeveloper Cloud (Develop...
[Developers Festa Sapporo 2020] Microsoft/GitHubが提供するDeveloper Cloud (Develop...
Excel on OneDrive is not a file
Excel on OneDrive is not a file
DevOps on Azure Kubernetes
DevOps on Azure Kubernetes
クラウドネイティブガバナンスの実現
クラウドネイティブガバナンスの実現
クラウドスキルチャレンジの概要と進め方 for ALGYAN
クラウドスキルチャレンジの概要と進め方 for ALGYAN
SharePoint Framework による Viva Connections アプリの開発
SharePoint Framework による Viva Connections アプリの開発
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
Force.com Canvas アプリケーション
Force.com Canvas アプリケーション
Windows Phone で Active Directory 認証 2011.12.1版
Windows Phone で Active Directory 認証 2011.12.1版
Spring12新機能webinar
Spring12新機能webinar
20201008 GitHub at Microsoft
20201008 GitHub at Microsoft
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組み
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
Pivotal Application Service とProject riff
Pivotal Application Service とProject riff
More from Satoru Ishikawa
自分のアプリをつくろう
自分のアプリをつくろう
Satoru Ishikawa
TECHPLAY CONFERENCE 2017 - IoTオーケストレーションサービス enebular を実現する AWS の技術
TECHPLAY CONFERENCE 2017 - IoTオーケストレーションサービス enebular を実現する AWS の技術
Satoru Ishikawa
enebular INFOMOTION デモ環境のつくりかた
enebular INFOMOTION デモ環境のつくりかた
Satoru Ishikawa
Trailheadでサクサク!新人研修
Trailheadでサクサク!新人研修
Satoru Ishikawa
Heroku ConnectのSIプロジェクトでの利用について
Heroku ConnectのSIプロジェクトでの利用について
Satoru Ishikawa
音楽をプログラミングする -Super Collider
音楽をプログラミングする -Super Collider
Satoru Ishikawa
More from Satoru Ishikawa
(6)
自分のアプリをつくろう
自分のアプリをつくろう
TECHPLAY CONFERENCE 2017 - IoTオーケストレーションサービス enebular を実現する AWS の技術
TECHPLAY CONFERENCE 2017 - IoTオーケストレーションサービス enebular を実現する AWS の技術
enebular INFOMOTION デモ環境のつくりかた
enebular INFOMOTION デモ環境のつくりかた
Trailheadでサクサク!新人研修
Trailheadでサクサク!新人研修
Heroku ConnectのSIプロジェクトでの利用について
Heroku ConnectのSIプロジェクトでの利用について
音楽をプログラミングする -Super Collider
音楽をプログラミングする -Super Collider
Continuous Integration Using Salesforce DX
1.
Continuous Integration Using Salesforce
DX Tokyo Salesforce Developer Group Meetup #15 Satoru Ishikawa 2017-07-12
2.
2 この部分の話をします
3.
これらのモジュールの完了を前提とした内容になっています 3
4.
4
5.
5
6.
6 1. 学習の目標 2. CI
ってなんだろう 3. 事前準備 4. GitHub に登録し、Git をインストールする 5. GitHub からサンプルアプリを取得する 6. Travis CI へ登録する 7. Travis CI Client をインストールする Salesforce DX をもちいた継続的インテグレーション 1. GitHub と Travis CI を利用開始する
7.
7 • 継続的インテグレーションを導入するメリットを把握する • Salesforce
DX をもちいた継続的インテグレーションに必要なツールを把握する Salesforce DX をもちいた継続的インテグレーション 1. GitHub と Travis CI を利用開始する 〜1.1. 学習の目的〜
8.
• 主にプログラマーのアプリケーション作成時の品質改善や納期の短縮のため の習慣のことである。[1] • エクストリーム・プログラミング
(XP) のプラクティスの一つで、狭義には ビルドやテスト、インスペクションなどを継続的に実行していくことを意味 する。[1] • 主な目的は、バグを早期に発見して対処すること、ソフトウェアの品質を高 めること、そしてソフトウェアの更新を検証してリリースするためにかかる 時間を短縮することです。[2] Salesforce DX をもちいた継続的インテグレーション 1. GitHub と Travis CI を利用開始する 〜1.2. CIってなんだろう〜 [1] https://ja.wikipedia.org/wiki/継続的インテグレーション [2]https://aws.amazon.com/jp/devops/continuous-integration/
9.
Salesforce DX をもちいた継続的インテグレーション 1.
GitHub と Travis CI を利用開始する 〜1.2. CIってなんだろう〜 [1] https://ja.wikipedia.org/wiki/継続的インテグレーション [2]https://aws.amazon.com/jp/devops/continuous-integration/
10.
10 • この単元では、継続的インテグレーションに GitHub
と Travis CI を利用します Salesforce DX をもちいた継続的インテグレーション 1. GitHub と Travis CI を利用開始する 〜1.2. CIってなんだろう〜
11.
11 • 本単元における、継続的インテグレーションのイメージ図 Salesforce DX
をもちいた継続的インテグレーション 1. GitHub と Travis CI を利用開始する 〜1.2. CIってなんだろう〜 Dev Hub スクラッチ 組織 スクラッチ 組織 スクラッチ 組織 Salesforceアプリコード バージョン管理ソフト CIサービス SFDX CLI経由で利用 管理 commit push hook auth (接続アプリ) SFDX CLI経由で利用 DevHub組織
12.
12 • 開発ハブに登録する • https://developer.salesforce.com/promotions/orgs/dx-signup •
Salesfoce CLI をインストールする • https://developer.salesforce.com/ja/tools/sfdxcli Salesforce DX をもちいた継続的インテグレーション 1. GitHub と Travis CI を利用開始する 〜1.3. 事前準備〜
13.
13 Salesforce DX をもちいた継続的インテグレーション 1.
GitHub と Travis CI を利用開始する 〜1.3. 事前準備〜 • CLI がインストールできたら sfdx force してみると楽しいです
14.
14 • GitHubに登録してください • https://github.com/ •
自分のマシンにGitをインストールしてください • https://git-scm.com/downloads Salesforce DX をもちいた継続的インテグレーション 1. GitHub と Travis CI を利用開始する 〜1.4. GitHub に登録し、Gitをインストールする〜
15.
15 • GitHub にある
サンプルアプリ(sfdx-travisci) をforkしてください • https://github.com/forcedotcom/sfdx-travisci • git clone で自分のマシンのローカルにリポジトリをクローンしてください • git clone https://github.com/<GH_username>/sfdx-travisci.git Salesforce DX をもちいた継続的インテグレーション 1. GitHub と Travis CI を利用開始する 〜1.5. サンプルアプリの取得〜
16.
16 Salesforce DX をもちいた継続的インテグレーション 1.
GitHub と Travis CI を利用開始する 〜1.6. TravisCI に登録する〜 • この単元ではCIツールとしてTravis CIを利用します • https://travis-ci.org/ • 「sign in with GitHub」 でサインインしましょう • 「sfdx-travisci」をチェック状態にしましょう
17.
17 • Ruby (1.9.3以上)が必要 •
インストールしてください • https://www.ruby-lang.org/ja/downloads/ • gem install コマンドで Travis CI Client をインストールしてください • $ gem install travis -v 1.8.8 --no-rdoc --no-ri Salesforce DX をもちいた継続的インテグレーション 1. GitHub と Travis CI を利用開始する 〜1.7. TravisCI Client をインストールする〜
18.
18 Salesforce DX をもちいた継続的インテグレーション 1.
GitHub と Travis CI を利用開始する 〜Challenge〜 • 継続的インテグレーションを導入するメリットは? • Salesforce DX をもちいた継続的インテグレーションに必要なツールは?
19.
19
20.
1. 学習の目標 2. SalesforceDX
CLI がどうやってCIの実現を容易にしているか 3. OpenSSL の準備をする 4. 自己署名証明書と秘密鍵を作成する 5. 接続アプリケーションを新規作成する 6. 接続アプリケーションのポリシーを編集する 7. 権限セットを作成する 8. JWT認証フロウを検証する 20 Salesforce DX をもちいた継続的インテグレーション 2. 接続アプリケーションを作成する
21.
• 接続アプリケーションの目的を理解する • X.509
証明書&鍵を作成するコマンドを把握する 21 Salesforce DX をもちいた継続的インテグレーション 2. 接続アプリケーションを作成する 〜2.1. 学習の目標〜
22.
• SalesforceDX CLI •
アプリ/スクラッチ組織をコマンドで管理・操作できる • 接続アプリケーション • 第三者アプリケーションへ権限付与&システム連携できる • Oauthポリシー • 権限セット • OAuth JSON Web Token (JWT) bearer flow での認証 • 接続アプリケーションとSalesforceDX CLI をもちいることで CIサービス(SaaS)とSalesforceスクラッチ組織の連携を可能に 22 Salesforce DX をもちいた継続的インテグレーション 2. 接続アプリケーションを作成する 〜2.2. SalesforceDX CLI がどうやってCIの実現を容易にしているか
23.
• マシンにOpenSSLがインストールされているか確認しましょう • which
openssl • インストールされていなかったら、インストールしましょ • brew install openssl (mac) • apt-get install openssl (ubuntu) • windows はこちら http://slproweb.com/products/Win32OpenSSL.html 23 Salesforce DX をもちいた継続的インテグレーション 2. 接続アプリケーションを作成する 〜2.3. OpenSSLの準備をする〜
24.
• 証明書用のディレクトリ作成 • pwd •
/Users/../../sfdx-travisci • cd .. • mkdir certificates //sfdx-travisciには含めない • cd certificates • 秘密鍵の生成 • openssl genrsa -des3 -passout pass:x -out server.pass.key 2048 • openssl rsa -passin pass:x -in server.pass.key -out server.key • rm server.pass.key • 署名要求を生成 • openssl req -new -key server.key -out server.csr • 自己署名証明書を生成 • openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crt 24 Salesforce DX をもちいた継続的インテグレーション 2. 接続アプリケーションを作成する 〜2.4. 自己署名証明書と秘密鍵を作成する〜
25.
• まず開発ハブにログインします • sfdx
force:org:open -u DevHub • sfdx force:auth:web:login -d -a DevHub • sfdx force:org:list • Connected Status が Conneted になってたらログイン状態 25 Salesforce DX をもちいた継続的インテグレーション 2. 接続アプリケーションを作成する 〜2.5. 接続アプリケーションを新規作成する〜
26.
26 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.5. 接続アプリケーションを新規作成する〜 • 開発ハブの画面をひらき「設定」を表示します • 「設定」から「アプリケーションマネージャ」を起動します
27.
27 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.5. 接続アプリケーションを新規作成する〜 • 「新規接続アプリケーション」ボタンをクリックします
28.
28 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.5. 接続アプリケーションを新規作成する〜 • 新規アプリケーション作成画面がひらきます • 必要事項を入力し、「新規接続アプリケーション」を保存します
29.
29 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.5. 接続アプリケーションを新規作成する〜 • 新規アプリケーション作成画面がひらきます • 必要事項を入力し、「新規接続アプリケーション」を保存します
30.
30 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.5. 接続アプリケーションを新規作成する〜 • 新規アプリケーション作成画面がひらきます • 必要事項を入力し、「新規接続アプリケーション」を保存します
31.
31 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.6. 接続アプリケーションのポリシーを編集する〜 • 接続アプリケーションの新規作成が完了しました • つぎは手動でログインができないように、作成した接続アプリケーショ ンのポリシーを変更しましょう
32.
32 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.6. 接続アプリケーションのポリシーを編集する〜 • 接続アプリケーションから「sfdx_travis_ci」を選択します • 「Manage」ボタンをクリックします
33.
33 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.6. 接続アプリケーションのポリシーを編集する〜 • 「接続アプリケーションの詳細」が表示されます • 「ポリシーを編集」ボタンをクリックします
34.
34 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.6. 接続アプリケーションのポリシーを編集する〜 • 「許可されているユーザ」を「管理者が承認したユーザは事前承認済み」 • 「保存」ボタンをクリックして保存します
35.
35 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.7. 権限セットの作成〜 • 最後に、権限セットを作成します。 • 作成した権限セットには、Travis CI 用に事前許可されたユーザを 割り当てます。(ここでは DevHub環境のuser)
36.
36 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.7. 権限セットの作成〜 • 設定から権限セットを表示し、「新規」をクリックする。
37.
37 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.7. 権限セットの作成〜 • 必要事項を入力し、「保存」をクリックする
38.
38 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.7. 権限セットの作成〜 • 作成完了したら、ユーザーを割り当てます
39.
39 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.7. 権限セットの作成〜 • アプリケーションマネージャをひらく
40.
40 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.7. 権限セットの作成〜 • 「sfdx_travis_ci」 の「参照」をクリックします
41.
41 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.7. 権限セットの作成〜 • 「manage」ボタンをクリックします
42.
42 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.7. 権限セットの作成〜 • 画面下までスクロールして「権限セットの管理」ボタンをクリックします
43.
43 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.7. 権限セットの作成〜 • 「sfdx_travis_ci」の「選択」にチェックをつけて「保存」します
44.
44 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.7. 権限セットの作成〜 • 「権限セット」から「sfdx_travis_ci」をクリック
45.
45 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.7. 権限セットの作成〜 • 「権限セット」から「割り当ての管理」をクリック
46.
46 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.7. 権限セットの作成〜 • 「割り当てを追加」をクリック
47.
47 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.7. 権限セットの作成〜 • DevHubユーザーを選択し「割り当て」をクリックします
48.
48 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.7. 権限セットの作成〜 • 「完了」をクリック
49.
49 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.7. 権限セットの作成〜 • 以上で権限セットの割り当てが完了しました。
50.
50 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜2.8. JWT Bearer Tokenフロウを検証する〜 • JWT Bearer Token 認証で Travis CI とSalesforce が連携できる か試験してみましょう • 以下の情報を利用します • 接続アプリケーションのコンシューマ鍵 • server.key の絶対パス • 開発ハブのusername
51.
• まず、ローカル環境変数を設定します • export
CONSUMER_KEY=<接続アプリケーションのコンシューマ鍵> • export JWT_KEY_FILE=<ローカルにある server.key のパス> • export HUB_USERNAME=<Dev Hub のユーザ名> 51 Salesforce DX をもちいた継続的インテグレーション 2. 接続アプリケーションを作成する 〜2.8. JWT Bearer Tokenフロウを検証する〜
52.
• JWT Bearer
Token フロウを実行する • sfdx force:auth:jwt:grant コマンドを利用する • Successfully authorized … と表示されればOK 52 Salesforce DX をもちいた継続的インテグレーション 2. 接続アプリケーションを作成する 〜2.8. JWT 認証フロウを検証する〜
53.
53 Salesforce DX をもちいた継続的インテグレーション 2.
接続アプリケーションを作成する 〜Challenge 〜 • 接続アプリケーションを利用することでなにが可能になりますか? • X.509 証明書の署名要求を生成するコマンドはなんですか?
54.
54
55.
55 Salesforce DX をもちいた継続的インテグレーション 3.
つなげる 1. 学習の目標 2. シークレットを暗号化する 3. Travis CI の設定を保存する 4. ビルド内容をカスタマイズする 5. 継続的インテグレーションを開始する
56.
56 Salesforce DX をもちいた継続的インテグレーション 3.
つなげる 〜3.1. 学習の目標 〜 • Travis CI がどのようにJWT bearer Token フローを実装しているか理解する • travis.yml ファイルの中身を理解する • どのようにCIが実行されるか理解する
57.
57 Salesforce DX をもちいた継続的インテグレーション 3.
つなげる 〜3.2. シークレットを暗号化する 〜 以下の手順を実施します 1. ローカルの sfdx-travisci ディレクトリに移動する 2. sfdx-travisci/.travis.yml の指定の行を削除する 3. sfdx-travisci/assets/server.key.enc を削除する 4. certificates/server.key を sfdx-travisci/assets/server.key としてコピーする 5. GitHub credentials をつかって Travis CI にログインする 6. Travis コマンドをつかって sfdx-travisci/assets/server.key を暗号化する 7. 暗号化が済んだら、 sfdx-travisci/assets/server.key を削除する
58.
58 Salesforce DX をもちいた継続的インテグレーション 3.
つなげる 〜3.2. シークレットを暗号化する 〜 • sfdx-tracisci/.travis.yml の指定の行を削除します(10行目)
59.
59 Salesforce DX をもちいた継続的インテグレーション 3.
つなげる 〜3.2. シークレットを暗号化する 〜 • sfdx-tracisci/assets/server.key.enc を削除します
60.
60 Salesforce DX をもちいた継続的インテグレーション 3.
つなげる 〜3.2. シークレットを暗号化する 〜 • certificates/server.key を sfdx-travisci/assets/server.key としてコピーします
61.
61 Salesforce DX をもちいた継続的インテグレーション 3.
つなげる 〜3.2. シークレットを暗号化する 〜 • GitHub credentials をつかって Travis CI にログインします
62.
62 Salesforce DX をもちいた継続的インテグレーション 3.
つなげる 〜3.2. シークレットを暗号化する 〜 • Travis コマンドをつかって sfdx-travisci/assets/server.key を暗号化します
63.
63 Salesforce DX をもちいた継続的インテグレーション 3.
つなげる 〜3.2. シークレットを暗号化する 〜 • 暗号化が済んだら、sfdx-travisci/assets/server.key を削除する • 商用環境では削除せず、.gitignore にいれておく運用を推奨するとのこと
64.
64 Salesforce DX をもちいた継続的インテグレーション 3.
つなげる 〜3.3. Travis CI の設定を保存する 〜 • Travis CI 環境変数に、ローカル環境変数と同じ情報をセットしましょう • この設定により Travis CI と Dev Hub と連携できるようになります travis env set USERNAME <your Dev Hub username> travis env set CONSUMERKEY <connected app consumer key>
65.
65 Salesforce DX をもちいた継続的インテグレーション 3.
つなげる 〜3.4. ビルド内容をカスタマイズする〜 • サンプルアプリの travis.yml の内容を理解しましょう • before_installセクション • TravisCIのVMにSalesforce CLIをインストールする • sudo: true が必要 • before_scriptセクション • JWT Bearer Token フローを開始する • $CONSUMERKEYと$USERNAMEが travis env でセットされていること • travis env は travis env list で確認できます • scriptセクション • sfdx のコマンドを実行する
66.
66 Salesforce DX をもちいた継続的インテグレーション 3.
つなげる 〜3.5. 継続的インテグレーションを開始する〜 • 変更をコミットしてgithubにpushしたらTravis CI が実行されます。 • ビルドの様子をみてみましょう Red Green
67.
67 Salesforce DX をもちいた継続的インテグレーション 3.
つなげる 〜Challenge 〜 • JWT bearer Token フローを実施するために、Travis CI が参照するファイルは? • travis.yml のscriptセクションの内容は? • Travis CI は何のイベントをきっかけに実行される?
68.
68
Download now