SlideShare a Scribd company logo
SphinxのCI:Azure DevOpsでのビルド結果を、認証付きAzure App Service
に公開するところまで
サイエンスパーク株式会社 須藤圭太
1
• ID:suusanex( connpass・Twitter・GitHub共通)
• 名前:須藤圭太
• サイエンスパーク株式会社という独立系ソフトウェアベンダーに所属
• 4年ほど受託開発で、上流から下流まで全部を回す
• ここ6年ほどは、自社製品開発を担当
勉強会、今後も開いていきます。
https://sciencepark.connpass.com/
自己紹介
2
• Sphinx+PlantUMLで、UML図入りの仕様書がテキストで書ける
• とても便利なので、皆で使おう!
• ところが・・・
• 環境構築で結構躓くので、対策を考えてみました
• 構築済みのコンテナを用意し、各自がDockerでビルド
前回の話
3
Sphinx(md + PlantUML)の簡単な例
4
• コンテナでビルドできたので、CIしてみよう
• Azure DevOps(Pipelines)のホストで実行
• ビルド結果をzipでDLしたり、Webサイトで公開したりします
今回の話
5
コンテナをAzure Container Registryにアップロード
ドキュメントをAzure DevOpsのgitリポジトリへpush
6
Azure
Azure Pipelinesで実行
Hosted Agent(Linux)
コンテナを使ったビルドが成功
7
Azure
Pipelinesのスクリプトはこんな感じ
8
Azure
pool:
vmImage: 'ubuntu-16.04'
container:
image: sphinxtest1.azurecr.io/sphinx:mpecustom
endpoint: sphinxtest1.azurecr.io
steps:
- script: |
cd Doc
make html
displayName: 'sphinx build html'
Azure PipelinesからContainer Registryにアクセスできるように、認証情報を追加する必要が
ある
9
ポイント1
Azure PipelinesからContainer Registryにアクセスできるように、認証情報を追加する必要が
ある
10
ポイント1
• ビルドしたドキュメントが取り残さ
れている・・・
• オンプレのAgentなら良いが、
Hostedを使うなら成果物を取り出す
処理が必要
11
ポイント2
• Azureのホストを使ってSphinxドキュメントをビルドできるようになった
• pushするたびにビルドするようなCIも可能になった
• 次は成果物を取り出せるようにする
前半まとめ
12
とりあえずzipでDLできるようにする
Artifactにアップロードして、Web画面から
DL
13
Zipでの成果物ダウンロード
14
Zipでの成果物ダウンロード
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: 'Doc/_build/html'
artifactName: SphinxHtmlOutput
• HTMLなので、zipではなくWebから直接
見れるようにする
• しかし、インターネットに全公開は避
けたいので、認証を付けたい
15
Webサイトで直接見れるようにする
• Azure AppServicesのEasyAuthで手軽に行
けた
• 簡易と詳細がある
• 通常は簡易で十分
• 詳細の場合は、Azure ADの設定で「ID
トークン」をONにしないと、認証失
敗する(静的HTMLだから?)
16
Webサイトで直接見れるようにする
17
Webサイトで直接見れるようにする
- task: AzureRMWebAppDeployment@4
displayName: Azure App Service Deploy
inputs:
appType: webApp
ConnectedServiceName: '<Azureとの接続
の名前>'
WebAppName: 'azureappserviceauthtest1'
Package: 'Doc/_build/html/'
• 常に最新版を、認証付きのWeb公開までできるようになった
• zipでとりあえずDLといった運用も可能
• Sphinxのビルド問題がだいぶ片付いた
• 便利!
まとめ
18
SP1909-E07-01

More Related Content

PPTX
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
PPTX
Teamsでのリモート勉強会の開き方
PPTX
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
PPTX
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
PPTX
Azure DevOps ハンズオン Vo.3 ~Delivery Plans を用いたプロジェクトのスケジュール管理~
PDF
ポンコツエンジニアのAZ-400受験期 (後編)
PPTX
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
PDF
改めてPaaSについて考えてみる
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Teamsでのリモート勉強会の開き方
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
Azure DevOps ハンズオン Vo.3 ~Delivery Plans を用いたプロジェクトのスケジュール管理~
ポンコツエンジニアのAZ-400受験期 (後編)
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
改めてPaaSについて考えてみる

What's hot (20)

PDF
ポンコツエンジニアのAZ-400受験期
PPTX
Azure DevOps ハンズオン Vo.1 ~Azure Boards を用いたアジャイル計画とポートフォリオマネジメント~
PPTX
Visual Studio 2019 Updates Pickup!
PDF
Windows serverとインフラ関連アップデート
PPTX
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
PDF
Azure Cloud Shell
PDF
Jenkins 2.0 Pipeline & Blue Ocean
PDF
コンテナ管理 プラットフォーム 比較 ~Kubernetes~予告編
PPTX
開発環境をDockernizeした話
PDF
アカツキはどのようにAWSを活用しているか #jawsug
PDF
Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方
PDF
Chef, Consul を使ったクラウドオーケストレーション
PPTX
AWS Amplify 入門
PDF
Ansible の CI を drone/Dokcker で試してみた
PPTX
OsakaArchVizCamp#1 - UE4 Introduction
PPTX
OsakaArchVisCamp#1 - UE4 on OculusQuest
PDF
Terraforming Windows Virtual Desktop Infrastructure on Azure
PPTX
Cloud Foundryの件について@OpenStack Days Tokyo 2015
PDF
C#版人狼知能エージェントの作り方(MonoDevelop/Xamarin Studio編)
PPTX
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
ポンコツエンジニアのAZ-400受験期
Azure DevOps ハンズオン Vo.1 ~Azure Boards を用いたアジャイル計画とポートフォリオマネジメント~
Visual Studio 2019 Updates Pickup!
Windows serverとインフラ関連アップデート
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
Azure Cloud Shell
Jenkins 2.0 Pipeline & Blue Ocean
コンテナ管理 プラットフォーム 比較 ~Kubernetes~予告編
開発環境をDockernizeした話
アカツキはどのようにAWSを活用しているか #jawsug
Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方
Chef, Consul を使ったクラウドオーケストレーション
AWS Amplify 入門
Ansible の CI を drone/Dokcker で試してみた
OsakaArchVizCamp#1 - UE4 Introduction
OsakaArchVisCamp#1 - UE4 on OculusQuest
Terraforming Windows Virtual Desktop Infrastructure on Azure
Cloud Foundryの件について@OpenStack Days Tokyo 2015
C#版人狼知能エージェントの作り方(MonoDevelop/Xamarin Studio編)
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
Ad

Similar to SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで (20)

PPTX
Sphinxの環境構築が再現できない問題をDockerで解決してみた
PDF
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
PPTX
自社製品のバージョン管理 進化と問題解決の道のり
PPTX
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
PDF
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
PPTX
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
PDF
アプリケーションエンジニアのためのクラウドインフラ再入門 (2/3)
PPTX
ローカルストレージでの永続化キューの方式を本気で比較してみた
PPTX
Keep a diary
PPTX
APIドキュメントの話 #sphinxjp
PDF
JAWS-UG Nagoya 20160729
PDF
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
PDF
コンテナ事例 CircleCI, Cucumber-Chef
PDF
Googleのインフラ技術から考える理想のDevOps
PDF
さくらのクラウドフォーメーション with Chef [XEgg session]
PPTX
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
PDF
Azure DevOps 関西 2019 - Overview
PDF
Chefで始めるWindows Server構築
PPTX
.NETのTuple応用チャレンジ WCFとC++/CLI
PDF
2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」
Sphinxの環境構築が再現できない問題をDockerで解決してみた
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
自社製品のバージョン管理 進化と問題解決の道のり
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
アプリケーションエンジニアのためのクラウドインフラ再入門 (2/3)
ローカルストレージでの永続化キューの方式を本気で比較してみた
Keep a diary
APIドキュメントの話 #sphinxjp
JAWS-UG Nagoya 20160729
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
コンテナ事例 CircleCI, Cucumber-Chef
Googleのインフラ技術から考える理想のDevOps
さくらのクラウドフォーメーション with Chef [XEgg session]
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
Azure DevOps 関西 2019 - Overview
Chefで始めるWindows Server構築
.NETのTuple応用チャレンジ WCFとC++/CLI
2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」
Ad

More from Study Group by SciencePark Corp. (20)

PPTX
YOLOとご一緒にPandasはいかがですか
PPTX
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
PPTX
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
PPTX
ドライバへのETWの埋め込み
PPTX
JTAGを使ってみよう
PPTX
初心者向けデバイスドライバ講座(6)
PPTX
02.超初心者向けセキュリティ入門(IoT)
PPTX
06.超初心者向けセキュリティ入門(.netの解析と対策)
PPTX
Visual StudioでWixをビルドしてみた
PPTX
MacOS10.15への対応について
PPTX
リモートでの勉強会参加方法
PPTX
初心者向けデバイスドライバ講座 (2)
PPTX
No.2 超初心者向け セキュリティ入門
PPTX
初心者向けデバイスドライバ講座(1)
PPTX
01.超初心者向けセキュリティ入門
PPTX
無線通信にて遠隔操作を行うVRトラッキングカメラ
PDF
デバイスドライバのオープンソースフレームワーク
PPTX
雰囲気で​マインドフルネスしてみた​
PPTX
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
YOLOとご一緒にPandasはいかがですか
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
ドライバへのETWの埋め込み
JTAGを使ってみよう
初心者向けデバイスドライバ講座(6)
02.超初心者向けセキュリティ入門(IoT)
06.超初心者向けセキュリティ入門(.netの解析と対策)
Visual StudioでWixをビルドしてみた
MacOS10.15への対応について
リモートでの勉強会参加方法
初心者向けデバイスドライバ講座 (2)
No.2 超初心者向け セキュリティ入門
初心者向けデバイスドライバ講座(1)
01.超初心者向けセキュリティ入門
無線通信にて遠隔操作を行うVRトラッキングカメラ
デバイスドライバのオープンソースフレームワーク
雰囲気で​マインドフルネスしてみた​
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする

SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで