0

リリース ブランチとマスター ブランチでほぼ同じ手順を実行する新しいビルド パイプラインを作成しようとしています。また、キュー時間変数を使用して、パイプラインのビルド スタイル (リリース vs マスター ブランチ) をオーバーライドできるようにしたいと考えています。

定義された変数は次のとおりです。

1]

キュー時間に変数を設定すると、値が計算されます。

2]

そして、キュー時間変数が見つかりました:

3]

しかし、これで値にアクセスすると:

4]

値は false です:

5]

何か間違ったことをしているのですか、それともキュー時間変数が設計とは異なる機能を期待しているのでしょうか? パイプラインで定義された元の値を上書きしたと思いました。

4

1 に答える 1

0

パイプラインで定義された元の値を上書きしたと思いました。

はい、キュー時間に元の変数値が上書きされました。

あなたが示したimgsによると、IsProductionReleaseこれはあなたのpowershellスクリプトでも生成される「False」として計算されます。これは、キュー時間変数が正しく機能していることを意味します。理由。

参照できるデモを作成しました:

はブランチSourceBranchに設定されています。master

ここに画像の説明を入力

変数IsProductionRelease:

ここに画像の説明を入力

最初のテストでは、変数の値は変更されませんでした。

Variables:
  IsProductionRelease:
    Parsing expression: <startsWith(variables['Build.SourceBranch'],'refs/heads/release')>
    Evaluating: startsWith(variables['Build.SourceBranch'], 'refs/heads/release')
    Expanded: startsWith('refs/heads/master', 'refs/heads/release')
    Result: 'False'

また、powershell も「False」値を返します。

Is Producetion Release = False

2 番目のテストでは、IsProductionRelease値を$[startsWith(variables['Build.SourceBranch'],'refs/heads/master')]次のように変更します。

ここに画像の説明を入力

計算結果:

Variables:
  IsProductionRelease:
    Parsing expression: <startsWith(variables['Build.SourceBranch'],'refs/heads/master')>
    Evaluating: startsWith(variables['Build.SourceBranch'], 'refs/heads/master')
    Expanded: startsWith('refs/heads/master', 'refs/heads/master')
    Result: 'True'

そして、powershellは「True」を返します

Is Producetion Release = True

プロセス全体をもう一度確認してください。

于 2020-02-11T07:42:46.627 に答える