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

Как мне установить версию из ветки? Спасибо

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

Однако с этим разделами YAML, как dotnet_csproj, build а также before_build будет работать только для develop ветка. Если вам нужно, чтобы они работали для обоих, используйте https://www.appveyor.com/docs/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) Предполагается, что переменные окружения происходят, но это предмет отдельного обсуждения.

Другие вопросы по тегам