【问题标题】:Yaml - how to make conditions from branchesYaml - 如何从分支创建条件
【发布时间】:2018-06-14 16:06:22
【问题描述】:
花了很多时间制作 yaml :(
我已阅读 https://www.appveyor.com/docs/branches/ - 没有帮助
-
branches:
only:
- master
version: 0.3.0.{build}
environment: release
packageVersion: 0.3.0.{build}
-
branches:
only:
- develop
version: 0.2.3.{build}
environment: debug
packageVersion: 0.2.3.beta-{build}
dotnet_csproj:
patch: true
file: '**\Project.csproj'
version: '{version}'
package_version: $(nugetVersion)
assembly_version: $(buildVersion)
file_version: $(buildVersion)
informational_version: $(nugetVersion)
before_build:
- nuget restore
build:
verbosity: minimal
//More code
如何从分支设置版本控制?谢谢
【问题讨论】:
标签:
continuous-integration
yaml
appveyor
【解决方案1】:
此 YAML 存在许多问题:
- YAML 语法对空格非常敏感
-
environment 部分用于设置环境变量,但似乎用于配置。
工作 YAML:
-
branches:
only:
- master
version: 0.3.0.{build}
configuration: release
environment:
packageVersion: 0.3.0.{build}
-
branches:
only:
- develop
version: 0.2.3.{build}
configuration: debug
environment:
packageVersion: 0.2.3.beta-{build}
dotnet_csproj:
patch: true
file: '**\Project.csproj'
version: '{version}'
package_version: $(nugetVersion)
assembly_version: $(buildVersion)
file_version: $(buildVersion)
informational_version: $(nugetVersion)
before_build:
- nuget restore
build:
verbosity: minimal
但是,像 dotnet_csproj、build 和 before_build 这样的 YAML 部分仅适用于 develop 分支。如果您需要它们同时为两者工作,请使用https://www.appveyor.com/docs/branches/#sharing-common-configuration-between-branches。
示例 YAML:
#common configuration
dotnet_csproj:
patch: true
file: '**\Project.csproj'
version: '{version}'
package_version: $(nugetVersion)
assembly_version: $(buildVersion)
file_version: $(buildVersion)
informational_version: $(nugetVersion)
before_build:
- nuget restore
build:
verbosity: minimal
#branches specific configuration
for:
-
branches:
only:
- master
version: 0.3.0.{build}
configuration: release
environment:
packageVersion: 0.3.0.{build}
-
branches:
only:
- develop
version: 0.2.3.{build}
configuration: debug
environment:
packageVersion: 0.2.3.beta-{build}
也不确定$(nugetVersion) 和$(buildVersion) 环境变量应该来自哪里,但这是单独讨论的主题。