2017-08-15 11 views
0

現在、3つの分離されたコンベアプロジェクトがあります。指定されたブランチの代わりにすべてのブランチ用に構築されます

私たちの問題は次のとおりです: Appveyorはgithubブランチのフィルタを無視します。私たちがマスター、ステージ、またはデベロップメントを行うたびに、私たちがコミットした1つのプロジェクトではなく、3つのプロジェクトすべてで構築されます。

各ブランチは、このように見えるユニークなappveyor.ymlファイルがあります。

をこれはdevに関する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: 
... 

我々がコミット作るとき、それはすべてのプロジェクトに基づいています。何か案が??

enter image description here

答えて

2

各プロジェクトは、ウェブフックのGitHub上で設定していると、誰かがコミットする各時間は、各プロジェクトのビルドは、ウェブフックによってトリガされるためです。次に、どのブランチがプロジェクト用に構成されているか(手動/ APIビルド用のデフォルトブランチのみ)、AppVeyorはコミットが行われたブランチからappveyor.ymlを読み込みます。

解決策は、alternative YAML file namesまたはalternative YAML file locationのいずれかを使用することです。あなたがappveyor-dev.ymlappveyor-stage.ymlファイルのようなものを持っており、特定のファイルを使用するために、特定のAppVeyorプロジェクトを設定することができ代替YAMLファイル名で

代替YAMLファイルの場所は基本的に同じですが、repo以外の場所にあります。私は個人的には代替YAMLファイルの場所のほうが重複や潜在的なマージの問題が少ないからです。

どちらの場合でも、ブランチdevのWebhookがstageプロジェクトになっても、それでもappveyor-dev.ymlが読み込まれ、適切なフィルタリングが行われます。

+0

ありがとう、私は代替のYAMLファイルの場所を選択しました。魅力的な作品! – Rovdjuret

関連する問題