7

TeamCity サーバーと OctoPack を使用して、複数の展開環境用のパッケージを構築しています。問題は、tentacle エージェントがパッケージの最新バージョンを選択するため、すべての環境に同じ (最新の) パッケージがデプロイされることです。セットアップの概要は次のとおりです。

  • 環境 DEV および STAGE。
  • DEV へのデプロイは、Git の「dev」ブランチからトリガーされます。
  • STAGE へのデプロイは、Git の「stage」ブランチからトリガーされます。
  • OctoPack は、DEV ビルド構成用にパッケージ MyProduct.1.0.0.dev-%build_counter% を生成するように構成されています。
  • OctoPack は、STAGE ビルド構成用に MyProduct.1.0.0.%build_counter% パッケージを生成するように構成されています。
  • TeamCity は、NuGet フィードを介して OctoPack アーティファクト (NuGet パッケージ) を公開するように構成されています。
  • Octopus プロジェクトは、TeamCity NuGet フィードから NuGet Id MyProduct を使用してパッケージをデプロイするように構成されています。

つまり、DEV ビルドはより頻繁に実行されるため、%build_counter% が大きくなり、STAGE は独自のパッケージをデプロイする機会がありません。タコの触手は 1.0.0.dev-* 接尾辞が付いたパッケージを好みます。 .

これはかなり一般的なシナリオに違いありませんが、それを解決する簡単な方法は見つかりませんでした。

4

2 に答える 2

9

ここに記載されていない部分がいくつかあります: https://github.com/OctopusDeploy/Octopus-Toolsしかし、 https://github.com/OctopusDeploy/Octopus-Tools/blob/master/source/OctopusTools/Commands/CreateReleaseCommand.csを見ると、何ができるかがわかります。

ツールには下位互換性があると思いますが、それについて 100% 確信があるわけではありません。

octo ツールを使用していると思われる場合は、version(現在も呼ばれreleasenumberている) オプションを設定してリリース番号を指定できます。他に何も指定しない場合は、最新のパッケージが使用されるため、リリースに使用するpackageversion(現在も呼ばれる) を設定する必要があります。defaultpackageversion

そうすべきだと思います。そうでない場合、リリースを作成するために何を使用していますか?

ビルド エージェントの環境パスに追加した octo ツールを使用するときに、TeamCity から使用しているものの例:

create-release --server=%conf.OctoServerApi% --project=%conf.OctoProject% --version=%env.OctopusPackageVersion% --deployto=%conf.OctoDeployEnv% --packageversion=%env.OctoPackPackageVersion% --apiKey=%conf.OctoApiKey% --waitfordeployment %conf.OctoExtraParams%

アップデート:

2.0 のドキュメントの方がはるかに優れています: http://docs.octopusdeploy.com/pages/viewpage.action?pageId=360596

于 2014-01-21T14:01:28.000 に答える