ツナ缶雑記

ぐうたらSEのブログです。主にマイクロソフト系技術を中心に扱います。

Azure DevOps

Azure Pipelines で SQL Server LocalDB を用いたテストを実行する

Azure Pipelines では、ビルドサーバーを大きく 2 つの種類から選択できます。 1 つ目は「MS-Hosted Agent」と呼ばれるもので、雑に言うとマイクロソフトさんが準備したビルドマシンをオンデマンドで借用する方式です。 2 つ目は「Self Hosted Agent」と呼ば…

Markdown の linter を Azure Pipelines から実行する (GitHub Super-Linter を使う)

前回、 Azure Pipelines を使って Mkdocs を用いた静的サイトの生成を行いました。 tsuna-can.hateblo.jp 今回は、この Azure Pipelines の YAML をさらに拡張して、 Markdown ファイルの Linter を実行できるようにしていきます。 Linter とは 簡単に言うと…

Azure Pipelines で Markdown から静的 Web サイトを生成してStorage Accountに公開する(mkdocs)

前回は mkdocs を使って静的な Web サイトを Markdown を用いて生成しました。 tsuna-can.hateblo.jp 今回はこれを Azure DevOps を使って、 Azure Storage Account の静的 Web サイトに発行する手順を解説します。 環境 Azure DevOps Storage Account(静的…

.NET アプリケーションのビルドにはコア数は必要なのか

前回まで、 CPU の差異による .NET Core アプリケーションのビルド時間を計測、検証してきました。 ここまでの結果から、「 CPU を新しくハイパワーなものに変更することで、ビルド時間を大きく短縮することができる」ことが明らかになりました。 しかし、前…

Visual Studio サブスクリプションに付属する Azure サブスクリプションが勝手に無効にされた(と思った)話

本記事において、悪いのは私であってマイクロソフト社が悪いのではありません。 こんな使い方をしてしまった結果、マイクロソフト社まで問い合わせないと謎が解けなかったよ、という私のダメな記録として残しておきます。 何が起きたか とある月に、私は Vis…

Azure Pipelines のビルド環境考察(MS Hosted Agent vs Self Hosted Agent)

ついに MS Hosted の利用制限が強化される Azure DevOps のチームから以下の 2 件のブログポストがありました。 devblogs.microsoft.com devblogs.microsoft.com 要約すれば以下の 2 点が言われています。 パブリックなプロジェクトの場合、 Azure Pipelines…

VM や k8s 環境へのデプロイ前に人手の承認処理を挟み込む

本記事は Azure DevOps Advent Calendar 2020 - Qiita 14 日目の投稿です。 はじめに やりたいこと 全体の動作イメージ Environment の作成と VM の登録 アプリケーションの作成 パイプラインの作成 本番環境への配置前に承認処理を入れる 動作確認 もっと使…

プロジェクトのプロセステンプレートを変更する方法

はじめに 最近 Auzre DevOps ってプロセスを最初に決めると変えられないの困るよね、みたいな話をよく聞きます。 いつのスプリントで実装されたのか記憶から消えてしまったのですが、実は変更できるようになっています。 操作方法 組織のページに入り左下の …

Azure DevOps でチームやグループ宛のメンションをしてもメール配信されないときに確認すること

Azure DevOps では、いろいろなところでメンションを行うことができます。 「@<ユーザー名>」や「@<チーム名>」のように入力することで、メンバーに対してメール送信を行うことができます。 非常に便利な機能なのですが、チーム宛てやグループ宛てにメンショ…

Chromium 版 Edge 用の Test & Feedback 拡張機能を試す

Chromium 版 Edge で使える Test & Feedback の拡張機能がリリースされていましたので紹介します。 Test & Feedback 拡張機能とは Web アプリケーションの手動テストを実施する際、不具合などの報告を Azure DevOps にログインすることなく、ブラウザーから…

Azure Pipelines の PowerShell タスクから警告/エラーログを出す方法

Azure Pipelines で PowerShell を組んでいると、パイプラインの実行エラーや警告をログ出力したくなるケースがよくあります。 ただログを出力したいだけであれば、 Write-Host コマンドレットを使って標準出力に文字列を出力しても問題ありません。 しかし…

Azure Reposのメインブランチ名がmasterからmainに変わる話

Azure Reposの既定のブランチ名がmainに変更されます。Sprint 173が配信されると、自分で既定のブランtに名を設定することもできるようになります。

Azure Pipelines のビルド結果画面にコードカバレッジの結果を表示する(.NET Core)

Report Generatorを使って、Azure Pipelines のビルド結果画面にコードカバレッジの情報を出力できるようにしてみました。

Azure DevOpsから送信されてくるメールをプロジェクト別にフォルダへ振り分ける方法

Azure DevOps の組織やプロジェクトに複数所属していると、各プロジェクトから送られてくるメールが全く同じアドレスから、同じようなタイトルで送られてきてしまいます。 普通にメールの振り分けを行おうとしても、送信元メールアドレスやタイトルなどから…

Azure Pipelines の Windows ビルドマシンで bash タスクを使う際の注意点

Azure Pipelines で Windows OS のビルドマシンを自前で準備したとき、 bash タスクが失敗することがあります。この記事では最もお手軽な解消方法を解説します。

個人的によく使うAzure Pipelinesの定義済み変数まとめ

Azure Pipelines で YAML を書いていると、毎回のように定義済み変数の名前を検索することになります。 変数名が長すぎて覚えきれない。 今回は YAML を書くとき私が個人的にめちゃくちゃよく使う定義済み変数をまとめておきます。 よく使う定義済み変数 変…

Azure Pipelines で Windows サービスの停止/開始を安全に行うテンプレートを作る

Windows サービスをデプロイするリリースパイプラインを作ろうとすると、リリースパイプライン内で Windows サービスを停止したり開始したりする必要があります。 Windows サービスは常駐プロセスなので、一度停止しないとモジュールの交換ができません。 と…

App.config に対して XML 変換を行う Azure Pipelines の YAML テンプレートを作る

ASP.NET のプロジェクトを作成すると、 Web.config ファイルが生成されます。 それと同時に、Web.Debug.config と Web.Release.config が作成され、アプリケーションの発行を行う際の構成にあわせて、 Web.config の変換を行ってくれます。 今回はこの構成フ…

Azure Pipelines の YAML テンプレートにある buildPlatform の設定に注意しろ

地味にはまったので供養のためメモを残しておきます。 本稿は 2020/4/15 現在の情報を示すものであり、 Azure Pipelines および Visual Studio の更新によって、将来当てはまらなくなる可能性を含んでいることに注意してください。 結論から言うと。。。 Azu…

Azure Pipelines の YAML から Azure Key Valut のシークレットにアクセスする

シークレットとは、秘匿しておきたいデータのことを言います。 例えば、本番データベースへの接続文字列などがこれに当たります。 Azure にはシークレットを管理するサービスとして、 Azure Key Vault があります。 今回はこれを Azure Pipelines の YAML か…

Azure ReposリポジトリにGitHubリポジトリの最新の状態を反映する方法

インポート元のGitHubリポジトリに対して行われた修正を、Azure Reposのリポジトリに反映する方法について解説します。なお今回はVisual Studioを使った方法を解説します。コマンドラインでも同等のコマンドを発行することで、同じことができます。

GitHubのリポジトリをAzure Reposにインポートする

GitHubやAzure Reposにはフォークという機能があります。 フォークという機能はGitの機能ではなく、GitHubやAzure Repos単独の機能です。 なのでGitHubのリポジトリをフォークしてAzure Reposに持ってくることは仕組み上できません。 しかし、Azure Reposに…

Azure PipelinesでYAMLを使って仮想マシンにアプリケーションをデプロイする

Azure Pipelinesには、アプリケーションをデプロイするためのリリースパイプラインを、GUIで作る機能がありました。 この機能は大変便利なのですが、既に「Classic」と表現されていて、徐々に消えていく運命にあります。 今からやるなら、ビルド/リリースパ…

Azure Pipelinesで複数のリポジトリを使ったビルドパイプラインを構築する

Azure Pipelinesを使って、複数のリポジトリをチェックアウトするビルドパイプラインを構築する方法について解説します。

Azure DevOpsでリリース時に構成ファイル(Web.config、App.config)の中身を書き換える(Classic Editor 編)

前回、Azure PipelinesのRelease機能を使って、appsettings.jsonの設定値をデプロイ時に書き換える方法について解説しました。 今回はその.NET Framework版ということで、Web.configや、App.configの値をデプロイ時に書き換える方法について解説します。 お…

Azure DevOpsでリリース時にappsettings.jsonの中身を書き換える(Classic Editor 編)

本番環境にリリースする際、appsettings.jsonの設定値を差し替えたいことって結構あります。PaaSとかなら環境変数を使えばよいのですが、実行環境がVMだとその設定をばらまくのが大変です。そんなとき、Azure PipelinesとKey Vaultを組み合わせると、セキュ…

Azure DevOps の Deployment Group にプロキシ内のサーバーをエージェントとして登録する

最近の開発ツールを触っていると、プロキシに阻まれることが結構あります。 Azure DevOps の場合も同様で、各種チュートリアルのほとんどが、プロキシの存在を無視して解説しています。 そしてすごく質問を受けます。 ということで、今回は Azure DevOps の …

Azure PipelinesからAzure ArtifactsにNuGetパッケージを公開する

やりたいこと 前回作成した NuGet パッケージを、 Azure Artifacts にアップロードして、プライベートな NuGet パッケージリポジトリを構築します。 NuGet パッケージのもとになるソースコード一式は、 Azure DevOps の Git リポジトリに配置します。 その後…

Visual StudioなしでAzure DevOpsのTFVCリポジトリにコマンドラインで接続する方法

何をいまさら。。。 正直普通にやるならAzure DevOpsのBuild Agentに登録して、Azure Pipelinesのタスクでやるのが王道だと思います。 その方が圧倒的に簡単だし楽だし、悪いことはほぼないでしょう。 ですが、今回事情によってどうしてもそういう作戦が取れ…

Azure DevOpsで監査ログを参照できるようになる話

監査ログって システムにおける監査ログとは、ざっくり言えばシステムに対して「誰が何をしたのか」を記録したものです。以前までAzure DevOpsには、もっと全般的な使われ方を記録してくれる機能(Usage)はあったのですが、監査ログとして使うのには、内容…