1

Octopus Deploy を使用しており、開発ブランチ用と TFS のメイン ブランチ用の 2 つのフィードが必要です。機能の一部が完成したら、それを開発ブランチからメイン ブランチにマージします。nuget パッケージを生成する両方のブランチのビルドがあります。DEV ビルドは DEV ブランチからコードを取得し、nuget パッケージを DEV フィードに公開します。MAIN ビルドは MAIN ブランチから取得し、パッケージを MAIN フィードに公開します。dev ビルドが Octopus で自動的に展開を開始し、DEV フィードからの nuget パッケージを使用するようにしたいと考えています。また、同じ Octopus 展開プロジェクトを使用して、QA、本番、およびトレーニング環境に展開したいと考えていますが、DEV フィードではなく MAIN フィードから展開したいと考えています。

この問題を解決するためにいくつかの方法を試しましたが、まだ成功していません。ステップを作成するための Octopus UI では、フィード フィールドに変数を入力できるので、入力できると思いますが、少し問題があります。しかし、問題の一部である環境 (Octopus 環境) に基づいて変数を設定しているため、可能性はありますか?

また、TFS ビルドでどのフィードを使用するかを Octopus に伝えるようにしましたが、これはリリースを作成するために機能しているように見えますが、展開しようとすると、その変数が何であるかを理解できなくなります。

同様または同じ問題を抱えたこれらの投稿を見つけましたが、解決策はまだ投稿されていません。

testFeed という環境によってスコープが設定された変数を作成しようとしましたが、次の構文をステップのフィード値として使用しました。これにより、変更を保存してリリースを作成できますが、デプロイしようとすると「あなたのファイルに問題がありました」と表示されます。リクエスト。デプロイ前の検証に失敗しました: このプロジェクトのステップで参照されている 1 つ以上のフィードが存在しません。新しいリリースを作成する必要があります。":

#{#{testFeed}|feeds-33}
4

1 に答える 1

2

幸いなことに、これには非常に簡単な解決策があり、この投稿のコメントで Paul によって文書化されています。

or 構文を使用する代わりに、デフォルトとして機能する環境にスコープされていない追加の変数を設定するだけです。

したがって、私の状況では、feeds-33 (私の開発フィード) の値を持つ nugetFeed という変数を設定し、feeds-34 (私のメイン フィード) の値を持つ nugetFeed とも呼ばれる変数テーブルの行を設定し、 QA および PROD 環境。次に、プロセス ステップ フィード フィールドで #{nugetFeed} のカスタム式を使用します。

注: プロセス ステップを保存すると、デフォルトのフィードを選択したように見えますが、これは UI が値を解決しているだけです。実際にデプロイするときは、変数値を使用しています。

現在、次のような注意すべきバグがあります: #{Feed} 変数を入力して保存すると、すべて正常に動作します。しかし、編集でパッケージを再度開くと、デザイナーで #{Feed} 変数が最初のフィード (feeds-1 など) に対して評価されます。他の何かを変更して再度保存すると、フィードの値が #{Feed} ではなく feeds-1 になるため、プロセスが壊れます。

于 2014-09-10T00:03:27.757 に答える