SlideShare a Scribd company logo
1 of 68
Continuous Integration
Using Salesforce DX
Tokyo Salesforce
Developer Group
Meetup #15
Satoru Ishikawa
2017-07-12
2
この部分の話をします
これらのモジュールの完了を前提とした内容になっています
3
4
5
6
1. 学習の目標
2. CI ってなんだろう
3. 事前準備
4. GitHub に登録し、Git をインストールする
5. GitHub からサンプルアプリを取得する
6. Travis CI へ登録する
7. Travis CI Client をインストールする
Salesforce DX をもちいた継続的インテグレーション
1. GitHub と Travis CI を利用開始する
7
• 継続的インテグレーションを導入するメリットを把握する
• Salesforce DX をもちいた継続的インテグレーションに必要なツールを把握する
Salesforce DX をもちいた継続的インテグレーション
1. GitHub と Travis CI を利用開始する
〜1.1. 学習の目的〜
• 主にプログラマーのアプリケーション作成時の品質改善や納期の短縮のため
の習慣のことである。[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/
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
• この単元では、継続的インテグレーションに GitHub と Travis CI を利用します
Salesforce DX をもちいた継続的インテグレーション
1. GitHub と Travis CI を利用開始する
〜1.2. CIってなんだろう〜
11
• 本単元における、継続的インテグレーションのイメージ図
Salesforce DX をもちいた継続的インテグレーション
1. GitHub と Travis CI を利用開始する
〜1.2. CIってなんだろう〜
Dev Hub
スクラッチ
組織
スクラッチ
組織
スクラッチ
組織
Salesforceアプリコード バージョン管理ソフト CIサービス
SFDX CLI経由で利用
管理
commit push hook
auth
(接続アプリ)
SFDX CLI経由で利用
DevHub組織
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
Salesforce DX をもちいた継続的インテグレーション
1. GitHub と Travis CI を利用開始する
〜1.3. 事前準備〜
• CLI がインストールできたら sfdx force してみると楽しいです
14
• GitHubに登録してください
• https://github.com/
• 自分のマシンにGitをインストールしてください
• https://git-scm.com/downloads
Salesforce DX をもちいた継続的インテグレーション
1. GitHub と Travis CI を利用開始する
〜1.4. GitHub に登録し、Gitをインストールする〜
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
Salesforce DX をもちいた継続的インテグレーション
1. GitHub と Travis CI を利用開始する
〜1.6. TravisCI に登録する〜
• この単元ではCIツールとしてTravis CIを利用します
• https://travis-ci.org/
• 「sign in with GitHub」 でサインインしましょう
• 「sfdx-travisci」をチェック状態にしましょう
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
Salesforce DX をもちいた継続的インテグレーション
1. GitHub と Travis CI を利用開始する
〜Challenge〜
• 継続的インテグレーションを導入するメリットは?
• Salesforce DX をもちいた継続的インテグレーションに必要なツールは?
19
1. 学習の目標
2. SalesforceDX CLI がどうやってCIの実現を容易にしているか
3. OpenSSL の準備をする
4. 自己署名証明書と秘密鍵を作成する
5. 接続アプリケーションを新規作成する
6. 接続アプリケーションのポリシーを編集する
7. 権限セットを作成する
8. JWT認証フロウを検証する
20
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
• 接続アプリケーションの目的を理解する
• X.509 証明書&鍵を作成するコマンドを把握する
21
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.1. 学習の目標〜
• SalesforceDX CLI
• アプリ/スクラッチ組織をコマンドで管理・操作できる
• 接続アプリケーション
• 第三者アプリケーションへ権限付与&システム連携できる
• Oauthポリシー
• 権限セット
• OAuth JSON Web Token (JWT) bearer flow での認証
• 接続アプリケーションとSalesforceDX CLI をもちいることで
CIサービス(SaaS)とSalesforceスクラッチ組織の連携を可能に
22
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.2. SalesforceDX CLI がどうやってCIの実現を容易にしているか
• マシンに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の準備をする〜
• 証明書用のディレクトリ作成
• 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. 自己署名証明書と秘密鍵を作成する〜
• まず開発ハブにログインします
• 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
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.5. 接続アプリケーションを新規作成する〜
• 開発ハブの画面をひらき「設定」を表示します
• 「設定」から「アプリケーションマネージャ」を起動します
27
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.5. 接続アプリケーションを新規作成する〜
• 「新規接続アプリケーション」ボタンをクリックします
28
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.5. 接続アプリケーションを新規作成する〜
• 新規アプリケーション作成画面がひらきます
• 必要事項を入力し、「新規接続アプリケーション」を保存します
29
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.5. 接続アプリケーションを新規作成する〜
• 新規アプリケーション作成画面がひらきます
• 必要事項を入力し、「新規接続アプリケーション」を保存します
30
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.5. 接続アプリケーションを新規作成する〜
• 新規アプリケーション作成画面がひらきます
• 必要事項を入力し、「新規接続アプリケーション」を保存します
31
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.6. 接続アプリケーションのポリシーを編集する〜
• 接続アプリケーションの新規作成が完了しました
• つぎは手動でログインができないように、作成した接続アプリケーショ
ンのポリシーを変更しましょう
32
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.6. 接続アプリケーションのポリシーを編集する〜
• 接続アプリケーションから「sfdx_travis_ci」を選択します
• 「Manage」ボタンをクリックします
33
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.6. 接続アプリケーションのポリシーを編集する〜
• 「接続アプリケーションの詳細」が表示されます
• 「ポリシーを編集」ボタンをクリックします
34
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.6. 接続アプリケーションのポリシーを編集する〜
• 「許可されているユーザ」を「管理者が承認したユーザは事前承認済み」
• 「保存」ボタンをクリックして保存します
35
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.7. 権限セットの作成〜
• 最後に、権限セットを作成します。
• 作成した権限セットには、Travis CI 用に事前許可されたユーザを
割り当てます。(ここでは DevHub環境のuser)
36
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.7. 権限セットの作成〜
• 設定から権限セットを表示し、「新規」をクリックする。
37
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.7. 権限セットの作成〜
• 必要事項を入力し、「保存」をクリックする
38
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.7. 権限セットの作成〜
• 作成完了したら、ユーザーを割り当てます
39
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.7. 権限セットの作成〜
• アプリケーションマネージャをひらく
40
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.7. 権限セットの作成〜
• 「sfdx_travis_ci」 の「参照」をクリックします
41
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.7. 権限セットの作成〜
• 「manage」ボタンをクリックします
42
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.7. 権限セットの作成〜
• 画面下までスクロールして「権限セットの管理」ボタンをクリックします
43
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.7. 権限セットの作成〜
• 「sfdx_travis_ci」の「選択」にチェックをつけて「保存」します
44
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.7. 権限セットの作成〜
• 「権限セット」から「sfdx_travis_ci」をクリック
45
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.7. 権限セットの作成〜
• 「権限セット」から「割り当ての管理」をクリック
46
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.7. 権限セットの作成〜
• 「割り当てを追加」をクリック
47
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.7. 権限セットの作成〜
• DevHubユーザーを選択し「割り当て」をクリックします
48
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.7. 権限セットの作成〜
• 「完了」をクリック
49
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.7. 権限セットの作成〜
• 以上で権限セットの割り当てが完了しました。
50
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.8. JWT Bearer Tokenフロウを検証する〜
• JWT Bearer Token 認証で Travis CI とSalesforce が連携できる
か試験してみましょう
• 以下の情報を利用します
• 接続アプリケーションのコンシューマ鍵
• server.key の絶対パス
• 開発ハブのusername
• まず、ローカル環境変数を設定します
• export CONSUMER_KEY=<接続アプリケーションのコンシューマ鍵>
• export JWT_KEY_FILE=<ローカルにある server.key のパス>
• export HUB_USERNAME=<Dev Hub のユーザ名>
51
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.8. JWT Bearer Tokenフロウを検証する〜
• JWT Bearer Token フロウを実行する
• sfdx force:auth:jwt:grant コマンドを利用する
• Successfully authorized … と表示されればOK
52
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜2.8. JWT 認証フロウを検証する〜
53
Salesforce DX をもちいた継続的インテグレーション
2. 接続アプリケーションを作成する
〜Challenge 〜
• 接続アプリケーションを利用することでなにが可能になりますか?
• X.509 証明書の署名要求を生成するコマンドはなんですか?
54
55
Salesforce DX をもちいた継続的インテグレーション
3. つなげる
1. 学習の目標
2. シークレットを暗号化する
3. Travis CI の設定を保存する
4. ビルド内容をカスタマイズする
5. 継続的インテグレーションを開始する
56
Salesforce DX をもちいた継続的インテグレーション
3. つなげる
〜3.1. 学習の目標 〜
• Travis CI がどのようにJWT bearer Token フローを実装しているか理解する
• travis.yml ファイルの中身を理解する
• どのようにCIが実行されるか理解する
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
Salesforce DX をもちいた継続的インテグレーション
3. つなげる
〜3.2. シークレットを暗号化する 〜
• sfdx-tracisci/.travis.yml の指定の行を削除します(10行目)
59
Salesforce DX をもちいた継続的インテグレーション
3. つなげる
〜3.2. シークレットを暗号化する 〜
• sfdx-tracisci/assets/server.key.enc を削除します
60
Salesforce DX をもちいた継続的インテグレーション
3. つなげる
〜3.2. シークレットを暗号化する 〜
• certificates/server.key を sfdx-travisci/assets/server.key としてコピーします
61
Salesforce DX をもちいた継続的インテグレーション
3. つなげる
〜3.2. シークレットを暗号化する 〜
• GitHub credentials をつかって Travis CI にログインします
62
Salesforce DX をもちいた継続的インテグレーション
3. つなげる
〜3.2. シークレットを暗号化する 〜
• Travis コマンドをつかって sfdx-travisci/assets/server.key を暗号化します
63
Salesforce DX をもちいた継続的インテグレーション
3. つなげる
〜3.2. シークレットを暗号化する 〜
• 暗号化が済んだら、sfdx-travisci/assets/server.key を削除する
• 商用環境では削除せず、.gitignore にいれておく運用を推奨するとのこと
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
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
Salesforce DX をもちいた継続的インテグレーション
3. つなげる
〜3.5. 継続的インテグレーションを開始する〜
• 変更をコミットしてgithubにpushしたらTravis CI が実行されます。
• ビルドの様子をみてみましょう
Red Green
67
Salesforce DX をもちいた継続的インテグレーション
3. つなげる
〜Challenge 〜
• JWT bearer Token フローを実施するために、Travis CI が参照するファイルは?
• travis.yml のscriptセクションの内容は?
• Travis CI は何のイベントをきっかけに実行される?
68

More Related Content

What's hot

Heroku Javaで12-Factor App
Heroku Javaで12-Factor App Heroku Javaで12-Factor App
Heroku Javaで12-Factor App Mitch Okamoto
 
Touch Platform によるモバイルアプリケーション開発
Touch Platform によるモバイルアプリケーション開発Touch Platform によるモバイルアプリケーション開発
Touch Platform によるモバイルアプリケーション開発Salesforce Developers Japan
 
やれる Heroku - Java アプリケーション開発編
やれる Heroku - Java アプリケーション開発編やれる Heroku - Java アプリケーション開発編
やれる Heroku - Java アプリケーション開発編Salesforce Developers Japan
 
食わず嫌いの為のSalesforce1 Platform入門
食わず嫌いの為のSalesforce1 Platform入門食わず嫌いの為のSalesforce1 Platform入門
食わず嫌いの為のSalesforce1 Platform入門Mitch Okamoto
 
Go Faster with Lightning : Salesforce Lightning 概要Webinar
Go Faster with Lightning : Salesforce Lightning 概要WebinarGo Faster with Lightning : Salesforce Lightning 概要Webinar
Go Faster with Lightning : Salesforce Lightning 概要WebinarSalesforce Developers Japan
 
はじめようLightningコンポーネント
はじめようLightningコンポーネントはじめようLightningコンポーネント
はじめようLightningコンポーネントSalesforce Developers Japan
 
実践!カスタマー エクスペリエンス 向上のためのアプリ開発 後編
実践!カスタマー エクスペリエンス 向上のためのアプリ開発 後編実践!カスタマー エクスペリエンス 向上のためのアプリ開発 後編
実践!カスタマー エクスペリエンス 向上のためのアプリ開発 後編Salesforce Developers Japan
 
Salesforce1 Platform 入門 2014 〜改めて基本から理解するforce.com〜
Salesforce1 Platform 入門 2014 〜改めて基本から理解するforce.com〜Salesforce1 Platform 入門 2014 〜改めて基本から理解するforce.com〜
Salesforce1 Platform 入門 2014 〜改めて基本から理解するforce.com〜Salesforce Developers Japan
 
Spring16 リリース開発者向け新機能Webセミナー
Spring16 リリース開発者向け新機能WebセミナーSpring16 リリース開発者向け新機能Webセミナー
Spring16 リリース開発者向け新機能WebセミナーSalesforce Developers Japan
 
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編Salesforce Developers Japan
 
初めてのWave Analyticsデータセット作成
初めてのWave Analyticsデータセット作成初めてのWave Analyticsデータセット作成
初めてのWave Analyticsデータセット作成Salesforce Developers Japan
 
Salesforce1モバイルアプリケーション開発概要
Salesforce1モバイルアプリケーション開発概要Salesforce1モバイルアプリケーション開発概要
Salesforce1モバイルアプリケーション開発概要Salesforce Developers Japan
 

What's hot (20)

Force.com開発基礎
Force.com開発基礎Force.com開発基礎
Force.com開発基礎
 
Heroku Javaで12-Factor App
Heroku Javaで12-Factor App Heroku Javaで12-Factor App
Heroku Javaで12-Factor App
 
Touch Platform によるモバイルアプリケーション開発
Touch Platform によるモバイルアプリケーション開発Touch Platform によるモバイルアプリケーション開発
Touch Platform によるモバイルアプリケーション開発
 
App Cloud モバイルアプリ開発戦略
App Cloud モバイルアプリ開発戦略App Cloud モバイルアプリ開発戦略
App Cloud モバイルアプリ開発戦略
 
やれる Heroku - Java アプリケーション開発編
やれる Heroku - Java アプリケーション開発編やれる Heroku - Java アプリケーション開発編
やれる Heroku - Java アプリケーション開発編
 
食わず嫌いの為のSalesforce1 Platform入門
食わず嫌いの為のSalesforce1 Platform入門食わず嫌いの為のSalesforce1 Platform入門
食わず嫌いの為のSalesforce1 Platform入門
 
Go Faster with Lightning : Salesforce Lightning 概要Webinar
Go Faster with Lightning : Salesforce Lightning 概要WebinarGo Faster with Lightning : Salesforce Lightning 概要Webinar
Go Faster with Lightning : Salesforce Lightning 概要Webinar
 
はじめようLightningコンポーネント
はじめようLightningコンポーネントはじめようLightningコンポーネント
はじめようLightningコンポーネント
 
Node.js開発者のためのHeroku入門
Node.js開発者のためのHeroku入門Node.js開発者のためのHeroku入門
Node.js開発者のためのHeroku入門
 
実践!カスタマー エクスペリエンス 向上のためのアプリ開発 後編
実践!カスタマー エクスペリエンス 向上のためのアプリ開発 後編実践!カスタマー エクスペリエンス 向上のためのアプリ開発 後編
実践!カスタマー エクスペリエンス 向上のためのアプリ開発 後編
 
Lightning Experience 時代のフロー開発
Lightning Experience 時代のフロー開発Lightning Experience 時代のフロー開発
Lightning Experience 時代のフロー開発
 
Salesforce1 Platform 入門 2014 〜改めて基本から理解するforce.com〜
Salesforce1 Platform 入門 2014 〜改めて基本から理解するforce.com〜Salesforce1 Platform 入門 2014 〜改めて基本から理解するforce.com〜
Salesforce1 Platform 入門 2014 〜改めて基本から理解するforce.com〜
 
Spring16 リリース開発者向け新機能Webセミナー
Spring16 リリース開発者向け新機能WebセミナーSpring16 リリース開発者向け新機能Webセミナー
Spring16 リリース開発者向け新機能Webセミナー
 
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編
 
初めてのWave Analyticsデータセット作成
初めてのWave Analyticsデータセット作成初めてのWave Analyticsデータセット作成
初めてのWave Analyticsデータセット作成
 
Visualforceを使ってみよう
Visualforceを使ってみようVisualforceを使ってみよう
Visualforceを使ってみよう
 
超初心者向けForce.com入門
超初心者向けForce.com入門超初心者向けForce.com入門
超初心者向けForce.com入門
 
Jp visualforce in salesforce1
Jp visualforce in salesforce1Jp visualforce in salesforce1
Jp visualforce in salesforce1
 
Salesforce1モバイルアプリケーション開発概要
Salesforce1モバイルアプリケーション開発概要Salesforce1モバイルアプリケーション開発概要
Salesforce1モバイルアプリケーション開発概要
 
Developer Keynote
Developer KeynoteDeveloper Keynote
Developer Keynote
 

Similar to Continuous Integration Using Salesforce DX

Developer-Controlled Packages (DCPs) を試してみた
Developer-Controlled Packages (DCPs) を試してみたDeveloper-Controlled Packages (DCPs) を試してみた
Developer-Controlled Packages (DCPs) を試してみたTakahiro Kawabata
 
DevOps with Dynatrace
DevOps with DynatraceDevOps with Dynatrace
DevOps with DynatraceHarry Hiyoshi
 
[Developers Festa Sapporo 2020] Microsoft/GitHubが提供するDeveloper Cloud (Develop...
[Developers Festa Sapporo 2020] Microsoft/GitHubが提供するDeveloper Cloud (Develop...[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 fileExcel on OneDrive is not a file
Excel on OneDrive is not a fileTakao Tetsuro
 
DevOps on Azure Kubernetes
DevOps on Azure KubernetesDevOps on Azure Kubernetes
DevOps on Azure KubernetesIssei Hiraoka
 
クラウドネイティブガバナンスの実現
クラウドネイティブガバナンスの実現クラウドネイティブガバナンスの実現
クラウドネイティブガバナンスの実現Minoru Naito
 
クラウドスキルチャレンジの概要と進め方 for ALGYAN
クラウドスキルチャレンジの概要と進め方 for ALGYANクラウドスキルチャレンジの概要と進め方 for ALGYAN
クラウドスキルチャレンジの概要と進め方 for ALGYANYasuhiroHanda2
 
SharePoint Framework による Viva Connections アプリの開発
SharePoint Framework による Viva Connections アプリの開発SharePoint Framework による Viva Connections アプリの開発
SharePoint Framework による Viva Connections アプリの開発Hiroaki Oikawa
 
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版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)Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)Masanori Ishigami
 
Windows Phone で Active Directory 認証 2011.12.1版
Windows Phone で Active Directory 認証 2011.12.1版Windows Phone で Active Directory 認証 2011.12.1版
Windows Phone で Active Directory 認証 2011.12.1版junichi anno
 
20201008 GitHub at Microsoft
20201008 GitHub at Microsoft20201008 GitHub at Microsoft
20201008 GitHub at MicrosoftIssei Hiraoka
 
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所真吾 吉田
 
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」アトラシアン株式会社
 
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発Takashi Watanabe
 
MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組みMicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組みShinichiro Arai
 
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨde:code 2017
 
Pivotal Application Service とProject riff
Pivotal Application Service とProject riffPivotal Application Service とProject riff
Pivotal Application Service とProject riffTakayuki Kabu
 

Similar to Continuous Integration Using Salesforce DX (20)

Developer-Controlled Packages (DCPs) を試してみた
Developer-Controlled Packages (DCPs) を試してみたDeveloper-Controlled Packages (DCPs) を試してみた
Developer-Controlled Packages (DCPs) を試してみた
 
DevOps with Dynatrace
DevOps with DynatraceDevOps with Dynatrace
DevOps with Dynatrace
 
[Developers Festa Sapporo 2020] Microsoft/GitHubが提供するDeveloper Cloud (Develop...
[Developers Festa Sapporo 2020] Microsoft/GitHubが提供するDeveloper Cloud (Develop...[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 fileExcel on OneDrive is not a file
Excel on OneDrive is not a file
 
DevOps on Azure Kubernetes
DevOps on Azure KubernetesDevOps on Azure Kubernetes
DevOps on Azure Kubernetes
 
クラウドネイティブガバナンスの実現
クラウドネイティブガバナンスの実現クラウドネイティブガバナンスの実現
クラウドネイティブガバナンスの実現
 
クラウドスキルチャレンジの概要と進め方 for ALGYAN
クラウドスキルチャレンジの概要と進め方 for ALGYANクラウドスキルチャレンジの概要と進め方 for ALGYAN
クラウドスキルチャレンジの概要と進め方 for ALGYAN
 
SharePoint Framework による Viva Connections アプリの開発
SharePoint Framework による Viva Connections アプリの開発SharePoint Framework による Viva Connections アプリの開発
SharePoint Framework による Viva Connections アプリの開発
 
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版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)Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
 
Force.com Canvas アプリケーション
Force.com Canvas アプリケーションForce.com Canvas アプリケーション
Force.com Canvas アプリケーション
 
Windows Phone で Active Directory 認証 2011.12.1版
Windows Phone で Active Directory 認証 2011.12.1版Windows Phone で Active Directory 認証 2011.12.1版
Windows Phone で Active Directory 認証 2011.12.1版
 
Spring12新機能webinar
Spring12新機能webinarSpring12新機能webinar
Spring12新機能webinar
 
20201008 GitHub at Microsoft
20201008 GitHub at Microsoft20201008 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」2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
 
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
 
MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組みMicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組み
 
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
 
Pivotal Application Service とProject riff
Pivotal Application Service とProject riffPivotal 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 の技術TECHPLAY CONFERENCE 2017 - IoTオーケストレーションサービス enebular を実現する AWS の技術
TECHPLAY CONFERENCE 2017 - IoTオーケストレーションサービス enebular を実現する AWS の技術Satoru Ishikawa
 
enebular INFOMOTION デモ環境のつくりかた
enebular INFOMOTION デモ環境のつくりかたenebular INFOMOTION デモ環境のつくりかた
enebular INFOMOTION デモ環境のつくりかたSatoru Ishikawa
 
Trailheadでサクサク!新人研修
Trailheadでサクサク!新人研修Trailheadでサクサク!新人研修
Trailheadでサクサク!新人研修Satoru Ishikawa
 
Heroku ConnectのSIプロジェクトでの利用について
Heroku ConnectのSIプロジェクトでの利用についてHeroku ConnectのSIプロジェクトでの利用について
Heroku ConnectのSIプロジェクトでの利用についてSatoru Ishikawa
 
音楽をプログラミングする -Super Collider
音楽をプログラミングする -Super Collider音楽をプログラミングする -Super Collider
音楽をプログラミングする -Super ColliderSatoru Ishikawa
 

More from Satoru Ishikawa (6)

自分のアプリをつくろう
自分のアプリをつくろう自分のアプリをつくろう
自分のアプリをつくろう
 
TECHPLAY CONFERENCE 2017 - IoTオーケストレーションサービス enebular を実現する AWS の技術
TECHPLAY CONFERENCE 2017 - IoTオーケストレーションサービス enebular を実現する AWS の技術TECHPLAY CONFERENCE 2017 - IoTオーケストレーションサービス enebular を実現する AWS の技術
TECHPLAY CONFERENCE 2017 - IoTオーケストレーションサービス enebular を実現する AWS の技術
 
enebular INFOMOTION デモ環境のつくりかた
enebular INFOMOTION デモ環境のつくりかたenebular INFOMOTION デモ環境のつくりかた
enebular INFOMOTION デモ環境のつくりかた
 
Trailheadでサクサク!新人研修
Trailheadでサクサク!新人研修Trailheadでサクサク!新人研修
Trailheadでサクサク!新人研修
 
Heroku ConnectのSIプロジェクトでの利用について
Heroku ConnectのSIプロジェクトでの利用についてHeroku ConnectのSIプロジェクトでの利用について
Heroku ConnectのSIプロジェクトでの利用について
 
音楽をプログラミングする -Super Collider
音楽をプログラミングする -Super Collider音楽をプログラミングする -Super Collider
音楽をプログラミングする -Super Collider
 

Continuous Integration Using Salesforce DX