ちぐログ

メモ書きです

Visual Studio Online でのビルド時に Git のコミットハッシュを埋め込む

ビルド時にどのソースバージョンのものを使ったかを知りたいことがあります。
下記の記事を参考に Visual Studio Online(VSO)で ビルドしたアセンブリに Git のコミットハッシュを埋め込んでみました。

blog.shibayan.jp

手順は以下です。

  1. PowerShellで AssemblyInfo.cs の書換スクリプトを作成する
  2. VSOでのビルド定義に、作成したスクリプトの実行ステップを追加する

1. PowerShellで AssemblyInfo.cs の書換スクリプトを作成する

書換スクリプトの大枠は参考記事とほぼ同じで、2か所だけ変更しました。

Git のコミットハッシュ変数

VSOのビルド時における Git のコミットハッシュは $env:BUILD_SOURCEVERSION で取得できます。

AssemblyInfo.cs の場所

$env:SYSTEM_DEFAULTWORKINGDIRECTORY を基準にパスを直接書いています。

どちらも使える変数は以下のサイトが参考になります。

www.visualstudio.com

最終的なスクリプトはこちら。 gist.github.com

2.VSOでのビルド定義に、作成したスクリプトの実行ステップを追加する

赤枠のように PowerShell の実行ステップを追加します。
Git にあげた書換スクリプトを設定します。

f:id:chiguniiita:20161230082550j:plain

確認

exeのプロパティから確認できました。

f:id:chiguniiita:20161230093142p:plain

Git コミットハッシュ表示カッコいい!

ASP.NET Core + ubuntu + nginx + postgreSQL でWebアプリを公開してみた

ここまで作ったものをサーバ環境に上げてみることにしました。

普段ならWindowsServerにIISでといきたいところですが、 .NET CoreがLinuxに対応しているので、AzureにUbuntuサーバを立てて、 nginx + postgreSQLでいくことにしました。

仕事では専ら、WindowsServer + SQLServerなので、未知の領域です。

予想外にサクッと終了

ほぼ↓のドキュメント通りでsupervisorによる実行までできました。

https://docs.asp.net/en/latest/publishing/linuxproduction.html#monitoring-our-web-application


supervisorの設定ファイルが最初よく分かりませんでしたが、 dotnet publish で作成されたファイルを実行するときにdotnet hoge.dll で動くと気づくとすんなり入ってきました。


設定ファイル内に、ASPNETCORE_ENVIRONMENT=Production もありました。 Startup.csにある、↓のコードで使われるやつですね。

.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)


ちなみにUbuntuは16.04を使用しました。
.NET Coreのインストールは下記のページ通りです。

.NET - Powerful Open Source Development

.NET Core周りのドキュメント、かなり充実してます。

地味?に悩んでいること

Ubuntuへのファイル転送はWinSCPを使って行いましたが、UIをポチポチしています。
これのベストプラクティスってどんな感じなんでしょうか。