相关疑难解决方法(0)

如何从AppVeyor发布beta nuget包

这是我试图在AppVeyor中实现的行为

  1. 构建代码(用Assembly邮件标记1.2.3.{build})
  2. 测试代码
  3. 如果测试通过,则创建nuget包
  4. 如果包成功创建,则发布测试包(1.2.3-beta-{build})
  5. 还可以使用工件包.

理想情况下,在发布nuget包时,它将作为预发行版发布.在NuGet中,这是通过在包版本的末尾添加字母字符来完成的.覆盖现有包也被认为是不好的做法(实际上,许多nuget实现不允许这样做).

AppVeyor可以很好地从github构建和测试软件,但我似乎无法控制nuget软件包版本.

给定:具有下一个语义版本1.2.3的包我希望AppVeyor {version}变量等于1.2.3.{build} 我希望nuget包版本等同于1.2.3-beta-{build}

我尝试的第一件事就是在{version}框中使用变量.显然这是不允许的.AppVeyor似乎只做变量替换,{branch}{build}作为其中的一部分{version}.这意味着我将不得不为语义版本维护一个单独的变量.

我遇到的下一个挑战是无法通过UI设置nuget包版本.它希望默认与AppVeyor构建版本相同.

我决定在测试运行后尝试使用Powershell创建包.这是有效的,但是Nuget Publish步骤想要在创建包之前运行,并且似乎没有办法控制执行顺序.

我想我走错了路.我需要一个概念性的重置.

这是我的appveyor.yml当前(不正确)状态:

version: 0.1.0.{build}
configuration: Release
assembly_info:
  patch: true
  file: '**\AssemblyInfo.*'
  assembly_version: '{version}'
  assembly_file_version: '{version}'
  assembly_informational_version: '{version}'
environment:
  packageVersion: 0.1.0
nuget:
  account_feed: true
  project_feed: true
  disable_publish_on_pr: true
before_build:
- ps: nuget restore
build:
  verbosity: minimal
artifacts:
- path: '*.nupkg'
  name: nuget package
deploy:
- provider: NuGet
  api_key:
    secure: blahblahblah
  artifact: '*.nupkg' …
Run Code Online (Sandbox Code Playgroud)

nuget semantic-versioning appveyor

4
推荐指数
1
解决办法
915
查看次数

标签 统计

appveyor ×1

nuget ×1

semantic-versioning ×1