kkamegawa's weblog

Visual Studio,TFS,ALM関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

わんくま&プロ生合同勉強会でWindows コンテナーのことをしゃべってきました

わんくま&プロ生合同勉強会でWindowsコンテナーについて基本編を解説してきました。Windowsコンテナーは選択肢やインストールがまだ混乱しているというか、ちょっとわかりにくい状況になっていると思っているので、できるだけ整理したつもりです。

コンテナーを使われている方がほとんどいらっしゃらなかったので、ちょうどよかったのではないかなという感じです。今回CIはLinux環境で行いましたが、Windows環境でやる方法をちょっと探しておきます。

VSTS/App CenterにmacOSエージェントが登場

Cloud-hosted Mac agents for CI/CD pipelines – Microsoft DevOps Blog

VSTSにはLinuxのビルドエージェントがプレビューで公開されていましたが、今回macOSのエージェントも追加されました。ほかのエージェント同様に240分までなら無料枠があります。

f:id:kkamegawa:20171117055622p:plain
macOS agent

こんな風にビルド定義もしくはリリース定義で使用するエージェントにHosted macOS Previewを選択してください。

f:id:kkamegawa:20171117055621p:plain
VSTS build agent にインストールされているもの

セキュリティなどもMS側がやってくれるそうですが、実際どんなものが入っているかというのはAgent QueuesからHosted macOS Previewを選んで、capabilitiesをクリックすると一覧が表示されます。このページに何が入っているかありますが、ちょっと違うような…?たぶんまだロールアウト中なんでしょうか。

docs.microsoft.com

node.jsとかはインストール時に追加もできるので構わないですが、XcodeやSDK、シミュレーターは重要なので、気にしたいところです。どうしてもHosted Agentに入らない独自のソフトや最新のソフトでエージェントの更新が追い付かない場合はローカルのプライベートエージェントを使うことになります。

AzureのDevOpsプロジェクトで作られるもの

azure.microsoft.com

Connect();でAzureのDevOps Projectsという機能がプレビュー公開されました。これは今まで個別に作っていたAzure Web Apps, VSTSのCI, CDを一気に作ってしまうというものです。なので、今までやっていた人には特に目新しいというものではありませんが、どんなものが作られるのかちょっと覗いてみましょう。

f:id:kkamegawa:20171116021053p:plain

AzureポータルでDevOps Projectを選びます。

f:id:kkamegawa:20171116021054p:plain

あらかじめプロジェクトのテンプレートが用意されています。ここでは.NETを選んでみます。

f:id:kkamegawa:20171116021055p:plain

ASP.NETか.NET Coreか選びます。.NET Coreであればこの後Web Apps for LinuxやDockerコンテナーを選べます。

f:id:kkamegawa:20171116021056p:plain

通常の.NETで選ぶと何も面白いことなく一択です。

f:id:kkamegawa:20171116021058p:plain

使用するVSTSのアカウントやプロジェクト名、Azureのリソースを選びます。VSTSにチームプロジェクトを作る権限が必要なので、気を付けてください。

f:id:kkamegawa:20171116021057p:plain

料金プランを変えたい場合はchangeで新しいブレードが出てきます。

f:id:kkamegawa:20171116021059p:plain

お好きなプランとかリソースグループ名、リージョンを選びます。最近日本のリージョン作れるかどうかわからなくなってきたので、北米のリージョン選んでます。あとはデプロイが終わるまで待ちます。

実はCIも設定されているので、プロジェクト作成からサンプルソースがコミットされた後、ビルド&デプロイが実行されるので結構待ちます。

f:id:kkamegawa:20171116021100p:plain

こんな風にmasterブランチにコミットされるとビルドが走るCIが設定されています。

f:id:kkamegawa:20171116021101p:plain

Release Managementにもリリース定義が作成され、ビルドが成功するとWeb Appsへリリースが行われます。

f:id:kkamegawa:20171116022636p:plain

readmeも作られているので、必要事項を書いてください。

f:id:kkamegawa:20171116022635p:plain

Azure側にはApplication Insights, Web Appsが作られています。

作られるものは今までばらばらに作っていたときと、なんら変わらないのですが、数クリックでここまでできるので、楽といえば楽ですね。あ、あとプロセステンプレートはAgileで作られるようです。デフォルトのテンプレートになるのかと思っていました。

削除するときはAzureのリソースグループとVSTSのチームプロジェクトを丸ごと消せば大丈夫です。

(11/18 追記)
Agileプロジェクトテンプレートではなく、デフォルトにしてくれとレポートしたところ、もう少ししたら直る(VSTSのデフォルトプロジェクトテンプレートになる)ようです。

Visual Studio Team Services 2017/10/30の更新

Visual Studio Team Services 2017/10/30 Sprint 125のリリースノートの翻訳を行いました。オリジナルはこちらから読んでください。

docs.microsoft.com

機能的に大きな修正というのはPRをmentionする、リリース機能の新規作成時のUI更新、Not inクエリの追加、でしょうか。Not inクエリはクエリ編集するときに結構困る点の1つだったので、助かりますね。

パッケージ管理と、Delivery Planでのフィルタリングの統一も便利になりました。

ではまた三週間後。

ranslate to Japanese to VSTS release notes from ht ...

dotnetConf関西2017を開催しました

connpass.com Photo by No.1

f:id:kkamegawa:20171015172950j:plain

あいにくの天候でしたが、参加してくださった方、スピーカーを引き受けてくれた方、スタッフの皆さん、会場を提供していただいた日本マイクロソフト様、ありがとうございました。今回は早々に参加者が定員上限に達して、あまり宣伝しなくてもいいかなという感じでほんと助かりました。

あいにく、ご都合が悪く、参加できなかった方もちゃんとキャンセル処理していただけたのも助かります。

前回よりも早々に枠が埋まったので、.NET(Core)をもう一度評価してみようとか、最近英語情報ばかりで日本語情報が必要なのか、その辺りはわかりませんが、アンケート結果によってはGlobal Azure Bootcampの前に1-2回程度何かやるかもしれません。

スピーカー陣のスライドやネタとなったツィートを #dotnetconf ハッシュタグから拾ってきました。漏れていたらすいません。

今後もイベント開催するときはよろしくお願いします。

Visual Studio Team Services 2017/10/6の更新

Visual Studio Team Services Sprint 124のリリースノートの翻訳を行いました。オリジナルはこちらから読んでください。

docs.microsoft.com

今回は今までの機能追加に比べると、やや小規模な機能強化ですね。Wikiの改良が続いているのはうれしいです。Wiki内に作業項目が参照できるようになったのはいいですね。リリースノートやドキュメントにWikiを使いやすくなります。個人的には作業項目にWikiを連携させたいですね。Wikiの更新というTaskを作ってWikiをリンクさせるという感じです。

10000以上のファイルをコミットした場合の検索強化とか、普通は10000とかのファイルを一度にコミットすることはそうないと思いますが、Windowsチーム内だとリソースファイルとかを普通にコミットしそうだからこういうのはあるといいですね。

ではまた三週間後。

ranslate to Japanese to VSTS release notes from ht ...

インサイドWiki(TFS/VSTS)

はじめに

TFSとVSTSにはmarkdown形式で記述できるWikiがサポートされました。ドキュメントはあるのですが、私もいくつか勘違いしているところがあったので、ちょっとまとめてみます。

Wikiを作る

f:id:kkamegawa:20170929043533p:plain
Wiki初期ページ

チームプロジェクトのWikiをクリックすると、このような空白ページになります。Create Wikiから作っていきます。

Wikiは階層構造になるので、最初は全体のトップページを作ることになります。

f:id:kkamegawa:20170929043519p:plain
Wiki作成開始

Markdownが使えます。余談ですが、"Markdown supported"のリンクページで解説されているmarkdownの書式は英語ですがとても分かりやすくまとまっています。Saveをクリックすると保存されます。

ちなみに私が使っているVSTSにはまだ来ていないのですが、現在展開中のSprint 123ではプレビューがサイドバイサイドで表示されるようになります。

f:id:kkamegawa:20170929043520p:plain
Wiki更新コメント

保存するとき必ずコメントが入っています。Wikiは内部的にはGitで管理されているので、コメントは必須のようです。

f:id:kkamegawa:20170929043521p:plain
Wiki保存後

保存するとこんな風に表示されます。

ブラウザからのペースト

ちょっとしたTIPSですが、EdgeやChrome(たぶんFirefoxも)などのモダンなブラウザではクリップボードにある画像をサイト側がサポートしていればそのままペーストできます。ちなみにFacebookやTwitterもこの機能に対応しています。

f:id:kkamegawa:20170929043524p:plain
Wikiにブラウザから画像をペースト

Wikiのスクリーンショットをコピーして、ペーストすると、こんな風に自動的に添付ファイルが生成されて、リンクも作られます。

f:id:kkamegawa:20170929043525p:plain
Wiki画像貼り付け結果

保存すると、こんな風にインラインで表示されます。

Gitクライアントで更新する

さっきWikiはGitで管理されていると書きました。ということは、Clone URLもあります。

f:id:kkamegawa:20170929043523p:plain
Wiki Clone URL表示

"More"からCloneをクリックします。ちなみに日本語版TFSでは「複製」となっているので、最初"Copy and Paste"のことかと思っていました。Gitだと理解していないとちょっと思いつかないかもしれません。

f:id:kkamegawa:20170929043522p:plain
Wiki Clone URL

Clone URLが表示されるので、コピーします。

f:id:kkamegawa:20170929043526p:plain
Wiki clone

git クライアントでcloneすると、こんな風にダウンロードされます。これでオフラインで編集して、pushすれば反映されます。リモートブランチはなく、wikiMasterのみのようなので、ローカルブランチ作ってwikiMasterにマージしてプッシュすることになるでしょう。

f:id:kkamegawa:20170929213115p:plain
wikiのブランチ

日本語で作ってしまうと、(当然)日本語のファイル名になるので、macOSの人とやり取りするときは気を付けてください。

.orderというファイルでWikiの階層構造を管理しているようです。これは編集しないでください。

.gitignoreは空っぽでした。画像ファイルとかgit-lfsで管理したくなるかもしれませんが、やらないほうがいいかと思います。

更新履歴

Gitで管理されているということは更新履歴も見えます。

f:id:kkamegawa:20170929043528p:plain
Wiki編集結果

こんな風に段落を追加して、保存します。保存時のコメントももちろん入力必須です(キャプチャとり忘れ…)。

f:id:kkamegawa:20170929043527p:plain
Wiki履歴

Revisiounsをクリックすると履歴が表示されます。

階層構造

Wikiで階層構造も管理できます。

f:id:kkamegawa:20170929222042p:plain
サブページ作成メニュー

ページの横の…リーダーをクリックすると、メニューが表示されます。"Add sub-page"をクリックすると、子階層のページが作成されます。

f:id:kkamegawa:20170929043529p:plain
Wiki子階層のページ

編集もできます。

f:id:kkamegawa:20170929043532p:plain
Wikiサブページ作成

"Set as wiki homepage"をクリックすると、サブページをホームページにできます。

f:id:kkamegawa:20170929043530p:plain
Wiki入れ替え時の警告

リンクがある場合、入れ替えるとリンクが壊れるため、このような警告が表示されます。

f:id:kkamegawa:20170929043531p:plain
Wikiデッドリンク

入れ替えた後、デッドリンクになったアンカーをクリックすると、もちろんリンク先がないので、404ページの代わりに「新しく作るか?」と問い合わせページになります。

まとめ

Wiki便利ですね。ドキュメントをOffice 365とかにおいてストーリーボードでシェアするのもいいですが、内部でバージョン管理されたドキュメントがあると、ファイル消失もないですし、外部と共有しないような簡単なものならこちらでいいでしょう。

さらにほしい機能はまだまだあります。

  • Wikiのコミットを作業項目と関連付けたい(作業項目にコミットハッシュつけてもだめ)
  • Gitで出力できるけど、PDFなどでエクスポートしたい

この辺はフィードバックしているので、実現されるのを期待しています。