2

AppVeyor では、Github からのリリース番号でビルド番号を設定したいと思います。これは、AssemblyVersion のパッチ適用に使用されます。

私は GitFlow を使用しており、リリース ブランチがあります。SourceTree で、新しいリリース (v1.2 など) を作成します。これにより、ブランチ release/v1.2 が作成されます。AppVeyorで使いたい1.2の部分。

同様に、ビルド バージョンの形式:{gitRelease}.{build}

スクリーンショット AppVeyor ビルド番号

これが機能するために、

  1. gitHub ブランチ名を取得する必要があります。
  2. そこからリリース番号を抽出し、
  3. それを変数 {gitRelease} に入れます
  4. assemblyVersion パッチ適用の前にこれを実行します

しかし、これを行う方法が見つかりません。

ビルド自体には、出力 (nuget パッケージ) を Octopus Deploy に送信するためのビルド スクリプトがあります。つまり、ビルド前のスクリプト セクションはありません。

4

2 に答える 2

2

AppVeyor のサポート スタッフの助けを借りて、動作するようになりました。 1733-how-to-call-the-assemblyversion-patch-from-the-build-script

appveyor.yml の init セクションを使用する必要があります。そして、UpdateBuild - version に別の cmd 行を使用しました (qoutes に問題がありました)。

init:
- cmd: "set appVeyorBuildVersion=%appveyor_build_version%\necho appVeyorBuildVersion:%appVeyorBuildVersion% \n\nset branch=%APPVEYOR_REPO_BRANCH%\necho branch:%branch%\n\nset gitVersion=%branch:~-3%\necho gitversion:%gitVersion%\n\nset newVersion=%gitVersion%.%APPVEYOR_BUILD_NUMBER%\necho %newVersion%\n\n"
- cmd: appveyor UpdateBuild -Version "%newVersion%"

assembly_info:
  patch: true
  file: '**\AssemblyInfo.*'
  assembly_version: '{version}'
  assembly_file_version: '{version}'
  assembly_informational_version: '{version}'
build_script:
- cmd: "echo Building version:%appveyor_build_version%"
- cmd: "nuget restore\nmsbuild MySolution.sln /t:build /p:Configuration=Release"

コマンドライン部分 (読みやすい):

echo repo branch:%APPVEYOR_REPO_BRANCH%

set branch=%APPVEYOR_REPO_BRANCH%
echo branch:%branch%

set gitVersion=%branch:~-4%
echo gitversion:%gitVersion%


set newVersion=%gitVersion%.%APPVEYOR_BUILD_NUMBER%
echo %newVersion%

appveyor UpdateBuild -Version "%newVersion%"
于 2015-10-05T18:43:34.820 に答える
2

環境変数からバージョン番号を取得して処理し、AppVeyor ビルド ワーカー API を使用して送り返すことができます。

$version = $env:appveyor_build_version
# ... do something with it
Update-AppveyorBuild -Version $version
于 2015-10-02T16:57:49.630 に答える