2017-07-17 14 views
1

私はこれで一日以上戦ってきました。私は、パターンrelease/*またはhotfix/*のパターンに従うどのブランチも、QA環境への展開をトリガーする必要があることを構築しようとしているVSTS CI/CDパイプラインの単純な要件を持っています。予想通り、この構成では、展開をトリガしませんCI/CDの展開条件がトリガーされない

enter image description here

:ここに私の支店ベースの設定です。下のスクリーンショットでわかるように、リリースは実行されましたが、私の環境のいずれに対しても起動しませんでした。 (QAは右から2番目の灰色の四角で、展開が成功したか失敗したかによって、緑色または赤色になります)。この問題を回避するための試みにおいて

enter image description here

、私の代わりにタグを作成し使用してみました。私は条件付きでビルドタグをブランチの名前に基づいて追加するPowershellのステップを追加しました。

$branchName = $Env:BUILD_SOURCEBRANCH 

if ($branchName -like '*release/*') 
{ 
    Write-Host "##vso[build.addbuildtag]release" 
} 

if ($branchName -like '*hotfix/*') 
{ 
    Write-Host "##vso[build.addbuildtag]hotfix" 
} 

ビルドの成果物とログに、このタグが適用されていることがわかるように、ビルドタグが正しく設定されます。しかし、枝を使用して私の試みと全く同じ動作にタグを認識結果であることを私の展開条件を変更する:

enter image description here enter image description here

EDIT:要求されたよう 、ここでソースを取得してCI定義がありますステップが表示されます。ここに複数の分岐条件を追加するオプションはありません。それらはトリガセクションで設定されます。

Get Sources CI Config CI Triggers

+0

ワイルドカードパターンの代わりに1つのブランチで試しましたか? –

+0

@DanielMannはい、特定のブランチ名を指定すると、トリガーするのは唯一の時間です。一時的な回避策として、リリース/修正プログラムブランチを手動で追加することはできますが、VSTSはよりインテリジェントな展開条件をサポートすることになっています。 UIを介してパターンマッチングを行うことができます –

+0

リリースアーティファクトの設定も共有できますか?それはビルドですか? 「はい」の場合は、ビルド定義の「ソースの取得」の設定も共有します。 –

答えて

1

これは通常、二つの異なる条件によって引き起こされるVSTSを使用しているため、同じ時間で構成された「AND」演算子はなく「OR」ここ演算子されています。このシナリオでは、配備条件は次のようになります。"Artifact Branch from Release/*" AND "Artifact Branch from Feature/*"これは満たされません。 「リリース28」をダブルクリックして開き、「i」アイコン上でマウスを動かすと、それがトリガーされない理由がわかるはずです。私が上記の理由であるかどうか確認してください。

enter image description here

この問題を回避するには、新しいデプロイメント環境を作成して、QAからの設定のクローンを作成して、2つの環境での二つの条件を分離しています。

+0

ありがとうございます!私はそれが最後にはとてもシンプルなものだとは信じられません。この混乱を避けるために条件がどのように適用されるかについて、UIが明確になることは間違いありません。 –

関連する問題