🔄
AppVeyor で PowerShell Core モジュールのバージョンを書き換える
こんな記事を書いてました。
これでもよかったのですが、せっかくなのでビルドするごとにバージョン番号を書き換えたいよね、ということで。
AppVeyor にはビルド時にアセンブリ バージョンを書き換える機能が提供されています。.NET Framework だけではなく .NET Core にも対応しています。詳しくは公式のドキュメントを見るのがいいと思います。
アセンブリ バージョンについてはそれでいいのですが、PowerShell Core モジュールの場合、psd1 ファイルも書き換えてあげる必要があります。こちらはさすがに自力でやらないといけないので、ビルド スクリプトを書いてみます。
dotnet restore --source https://api.nuget.org/v3/index.json
dotnet publish --configuration Release
Update-ModuleManifest -Path "${env:APPVEYOR_BUILD_FOLDER}\bin\Release\netcoreapp2.1\publish\${env:APPVEYOR_PROJECT_NAME}.psd1" -ModuleVersion $env:APPVEYOR_BUILD_VERSION
ファイル パスは環境に合わせて適宜書き換えてみてください。Update-ModuleManifest
で既存の psd1 ファイルの内容を更新できますので、AppVeyor の環境変数からバージョン番号を受け取って設定してあげます。たとえば appveyor.yml
ファイルに以下のように書いておけば、マイナー バージョンやメジャー バージョンを上げるときにも一元管理できます。
version: '1.0.0.{build}'
そういえば、まったくの余談ですが、PowerShell Core のライブラリは NuGet からも入手できるようになってたんですね。
Discussion