【问题标题】:Appveyor builds for all branches instead of specified onesAppveyor 为所有分支而不是指定分支构建
【发布时间】:2018-01-23 10:48:52
【问题描述】:

我们目前有三个独立的 appveyor 项目,一个用于我们存储库中的每个分支。

我们的问题如下: Appveyor 忽略了我在 github 分支上的过滤器。每次我们对 master、stage 或 dev 进行提交时,它都会构建在所有三个项目上,而不是我们确实提交的单个项目上。

每个分支都有一个独特的 appveyor.yml 文件,如下所示:

这是用于开发的 appveyor.yml

version: 0.0.{build}
branches:
  only:
  - dev
image: Visual Studio 2017
configuration: dev
before_build:
  - nuget restore
build:
  project: Core.Api.sln
  publish_wap: true
  verbosity: minimal
build_script:
  - ps: .\build.ps1
after_build:
  - cmd: dotnet publish src\Core.Api --output %appveyor_build_folder%\dist
test: off
artifacts:
- path: dist
  name: dist.web
deploy:
...

当我们提交时,它会建立在所有项目之上。有什么想法吗??

【问题讨论】:

    标签: continuous-integration continuous-deployment appveyor


    【解决方案1】:

    这是因为每个项目都在 GitHub 上配置了 Webhook,并且每次有人提交时,每个项目构建都会由 Webhook 触发。然后,无论为项目配置了哪个分支(这只是手动/API 构建的默认分支),AppVeyor 都会从完成提交的分支中读取appveyor.yml

    解决方案是使用alternative YAML file namesalternative YAML file location

    使用替代 YAML 文件名,您可以拥有类似 appveyor-dev.ymlappveyor-stage.yml 的文件,并设置特定的 AppVeyor 项目以使用特定的文件。 替代 YAML 文件位置基本相同,但在 repo 以外的其他位置。我个人更喜欢替代 YAML 文件位置,因为它减少了重复和潜在的合并问题。

    在这两种情况下,当说分支 dev 中的 webhook 来到 stage 项目时,它仍然会读取 appveyor-dev.yml 并进行正确的过滤。

    【讨论】:

    • 谢谢,我也选择了替代的 YAML 文件位置方式。像魅力一样工作!
    猜你喜欢
    • 2014-05-29
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    • 2013-02-27
    • 2016-12-24
    相关资源
    最近更新 更多