如何在AppVeyor中将git分支用作build nr

时间:2015-10-01 14:39:43

标签: git github appveyor

在AppVeyor中,我想使用Github的版本号设置内部版本号。这将用于AssemblyVersion修补。

我正在使用GitFlow,并有一个发布分支。在SourceTree中,我创建了一个新版本,例如v1.2,它创建了分支版本/ v1.2。 我想在AppVeyor中使用1.2部分。

喜欢,构建版本格式:{gitRelease}。{build}

Screenshot AppVeyor build nr

为此起作用,

  1. 我需要检索gitHub分支名称
  2. 从中提取版本号,
  3. 将其放入变量{gitRelease}
  4. 在assemblyVersion修补
  5. 之前运行此命令

    但是我找不到怎么做。

    对于构建本身,我有一个构建脚本,将输出(nuget包)发送到Octopus Deploy,这意味着没有Before构建脚本部分。

2 个答案:

答案 0 :(得分:1)

您可以从环境变量获取版本号,处理它并使用AppVeyor构建工作者API发回:

$version = $env:appveyor_build_version
# ... do something with it
Update-AppveyorBuild -Version $version

答案 1 :(得分:1)

在AppVeyor的支持人员的帮助下,我开始工作了。 1733-how-to-call-the-assemblyversion-patch-from-the-build-script

我必须使用appveyor.yml中的init部分。 我为UpdateBuild使用了一个单独的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%"