kkamegawa's weblog

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

Azure DevOps Server 2019 RC1インストール

Team Foundation Server改め、Azure DevOps Server 2019のRC1が公開されました。

azure.microsoft.com

定期的に公開されるモデルになっており、今回はクラウドサービスのAzure DevOpsのSprint 141か142あたりまでの内容が入っているようです。

今回はUIが刷新されており、クラウドサービスのように切り替えはできないようなので、慣れていく必要がありますね。

Azure DevOps Server 2019ではWindows Server 2019とAzure SQL Databaseをサポートしています。Azure等で試すときSQL Server入れるのややめんどくさかったのですが、そういう面から解放されそうです。

docs.microsoft.com

f:id:kkamegawa:20181122053143p:plain

インストールを始めます。TFSと違って青基調の画面になっています。内容は大体TFS2018と同じ内容なので、迷わないと思います。

f:id:kkamegawa:20181122053138p:plain

次へをクリック。

f:id:kkamegawa:20181122053135p:plain

今回はアップグレードなので、「既存のデータベースがあります」を選択。これ以降、一部英語がありますが、次のリリースまでには直るそうです。

f:id:kkamegawa:20181122053256p:plain

運用環境のアップグレードです。本番環境を更新する前には別のインスタンスでテストアップグレードを試してみましょう。

f:id:kkamegawa:20181122053132p:plain

TFS2018からのアップグレードです。

f:id:kkamegawa:20181122053253p:plain

Azure DevOps Serverのサービスアカウントを指定します。

f:id:kkamegawa:20181122053250p:plain

Webサイトの設定です。ここではNTLMで指定していますが、本来はKerberosが推奨です。

f:id:kkamegawa:20181122053247p:plain

検索設定です。Elastic Searchを使うので事前にJavaランタイムが必要です。

f:id:kkamegawa:20181122053244p:plain

レポートを構成します。SQL Serverのレポートを使っていますが、SQL Server 2017で使う場合は事前にSQL Server Reporting Serviceを構成しておく必要があります。将来的にAzure DevOpsと同等のAnalytics Servicesへの移行が発表されているので、検討しておいてください。

f:id:kkamegawa:20181122053358p:plain

Reporting Servicesのインスタンスを指定します。

f:id:kkamegawa:20181122053355p:plain

使用するデータベースインスタンスです。

f:id:kkamegawa:20181122053352p:plain

同様にAnalytics Servicesのインスタンス(通常同じ)を指定します。

f:id:kkamegawa:20181122053349p:plain

Reporting Services読み取り用のアカウントを指定します。低い権限のユーザーアカウントを指定します。

f:id:kkamegawa:20181122053429p:plain

適合性チェックを実施します。引っかかるところといえばこのくらいでしょうか(実はよく引っかかる)。

  • Javaランタイムが入ってない
  • ディスクの空き容量
  • 何らかの理由でReporting Servicesが止まってる
  • 古いXAMLビルドが動いている(登録していると警告が出ますが続行可能)

f:id:kkamegawa:20181122053426p:plain

構成を実行して

f:id:kkamegawa:20181122053423p:plain

アップグレードです。古いバージョンから累積的に実施するので、ジャンプアップが長い、データベースのサイズによっては時間がかかります。古い添付ファイルやテスト結果を削除しておくのがいいでしょう。

f:id:kkamegawa:20181122053141p:plain

終わりました。再起動がかかります。

f:id:kkamegawa:20181122065855p:plain

こんな感じになります。日本語になっていること以外はクラウドサービスと変わらないですね。

Azure DevOpsでのCIとファイルエンコーディング

Azure Pipelinesでビルドすると、こんなエラーが出てしまいました。

f:id:kkamegawa:20181120063311p:plain

ローカルのVisual Studioでは問題なくビルドできます。このエラーはここで出ています。

testStep.Step = new string[] {"ブラウザ起動", "ログイン", "About表示", "終了" };

原因は「表」の字ですね。「表」には\と同じコードである0x5cを含んでいるので、エンコーディングエラーが発生しています。昔からCコンパイラとか使っている人にはおなじみです。

何故ローカルで出なくて、Azure Pipelinesで起きるかといえば、PipelinesのMicrosoft Hosted Agentは英語版OSで動いているため、Visual Studio 2017の標準エンコーディングであるSHIFT-JISのファイルが解釈できないからです。ローカルでは日本語OSなので、SHIFT-JISで問題がないと。

回避するにはソースファイルをUTF-8で保存しましょう。ファイル保存時にやってもいいですが、こういう拡張機能を使うと楽です。

marketplace.visualstudio.com

ロケールに依存するようなテストも発生します。こちらは逆で、USロケールに依存するようなテストがローカルの日本語OSではFailになるということが起きえます。今は見てないですが、昔のCoreFXのUnit Testにもそういうところがありました。

Azure Pipelinesに限らないと思いますが、ベースのOSでこういうところに引っかかることがあるので、気を付けてください。

Azure DevOps 2018/11/12の更新

Azure DevOps Sprint 143のリリースノートの翻訳を行いました。オリジナルはこちらから読んでください。

docs.microsoft.com

今回の強化点はpull requestの下書き機能は便利そうです。GitHubではタイトルにWIPとつけているPull Requestのマージを抑止するという機能がありますが、それに近い感じで運用できますね。

新しい作業項目エディターも最近使っていますが、前よりはもちろんいいです。でも、markdownサポートも待ち遠しい。markdownはQ4の機能強化リストに入っているそうなので、そのうち、ですかね。GitHubのroosterjsを見ればわかるでしょう。

パブリックプロジェクト公開以降、ちょこちょこ権限周りに手が入っています。Contributerにビルド定義が作れなかったのは、Azure DevOpsプロジェクトやWeb AppsでCI/CDをAzure DevOpsに作るときに誰もが一度ははまっていたと思います。ようやく解決することになって助かりますね。もちろん従来通りビルド定義を作らせないのも可能です。パブリックプロジェクト以外、ビルド定義は費用に直結する話なので、気を付けて運用してください。

Deployment Groupで失敗時のリカバリーを自動的にやってくれる機能や、失敗したとき再デプロイもうれしいです。

ではまた三週間後。

Translate to Japanese to Azure DevOps release note ...

Azure DevOps 2018/10/22の更新

遅くなりましたが、Azure DevOps Sprint 142のリリースノートの翻訳を行いました。オリジナルはこちらから読んでください。

docs.microsoft.com

今回もいろいろ目玉となる新機能があります。作業項目の添付ファイルが容易になること、世の中の流れに乗ったダークテーマのサポート、カスタムビルドコンテナーのサポート、App ServicesのRun from Zipの標準サポート、Pipeline Artifactsのパブリックプレビュー、複数のAzure DevOpsをまたいだ作業項目の依存関係整理、コミットの関連付けの強化、どれも非常に便利ですね。

qiita.com

Azure DevOpsアドベントカレンダーも用意しましたが、今年は参加してくれる人いるかなーと思ったけど、参加者0*1。また一人で書く羽目になるのか?お気軽にどうぞ。

ではまた三週間後。

Translate to Japanese to Azure DevOps release note ...

*1:´・ω・`