在AppVeyor中,我想使用Github的版本号设置内部版本号。这将用于AssemblyVersion修补。
我正在使用GitFlow,并有一个发布分支。在SourceTree中,我创建了一个新版本,例如v1.2,它创建了分支版本/ v1.2。 我想在AppVeyor中使用1.2部分。
喜欢,构建版本格式:{gitRelease}。{build}
为此起作用,
但是我找不到怎么做。
对于构建本身,我有一个构建脚本,将输出(nuget包)发送到Octopus Deploy,这意味着没有Before构建脚本部分。
答案 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%"