問題タブ [automated-deploy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
403 参照

ios - iOS ビルド自動化 ipa パッケージ化がフォーマット タグを読み取れないことで失敗する

そのため、以前はコードの署名に問題がありましたが、それを理解しました。次のビルド試行で、以下を受け取りました。

次に何をすればよいかわからず、オンラインでリソースを実際に見つけることができません。

匿名性のために出力の一部を削除しましたが、そのほとんどは次のとおりです。

0 投票する
1 に答える
917 参照

msbuild - コードの変更がない依存関係のビルドとデプロイを回避する方法

私は継続的インテグレーションの概念実証を行っており、開発チームが自動ビルドと自動デプロイによって人的エラーを削減できるかどうかを確認しています。私はすでにプロセスをかなり進めてきましたが、コード変更のない依存関係の再構築を回避するためにインクリメンタル ビルドを構成する方法についていくつか質問があります。さらに、配置ツールで、コード変更の結果として再構築されたアセンブリのみを識別して配置できるようにしたいと考えています。

ソース管理には TFS、開発には Visual Studio、継続的インテグレーション ビルドには Team Foundation Build などの Microsoft 製品を既に使用しています。現在、Team Foundation Build とうまく統合されているように見えるので、展開用に InRelease に傾いています。

しかし、まず、これが現在のセットアップです...

  1. 200 以上の C# ソリューション ファイルがあり、それぞれに 1 つ以上のプロジェクトが含まれています。これらのプロジェクトをより少ないソリューションに結合することは、環境では実際的ではありません。つまり、設計によるものです。ソリューション内のプロジェクトは、プロジェクト参照を使用して依存関係を解決し、他のソリューション内のプロジェクトへのファイル参照を解決します。私の知る限り、これは大量のプロジェクトを扱う場合に Microsoft が推奨するアプローチです。

  2. 「機能ごとのブランチ」戦略を使用します。たとえば、完了時に安定したメイン ブランチにマージされる並行機能ブランチでの分離された開発です。リリースの時期になると、リリースはメインから分岐され、ホットフィックスと展開のために分離されます。フィーチャー ブランチとメイン ブランチには、コード チェックインによってトリガーされる CI ビルドがあります。リリースは、ほとんどの場合、選択したリリース ブランチに対して InRelease から手動で実行するのが好きです。リリースは、統合/テスト、UAT を含むさまざまな環境を通じて展開され、最終的にすべてのクライアントに展開されます。分岐戦略の詳細はまだ具体化中ですが、それはまた別の機会に。

解決すべき現在の問題:

1.コードの変更がない依存関係の再構築を避ける...

新しい機能やパッチをクライアントに展開するときは、最小限のファイルをプッシュする必要があります。私たちの会社には非常に大規模な顧客ベース (数千の顧客) がいて、インターネット接続が遅い場合があるため、すべてのアセンブリ (200 以上) をすべての顧客に完全に展開することは選択肢ではありません。コードの変更が行われていない場合でも、変更されたプロジェクトのみを正しく再構築するだけでなく、すべての依存プロジェクトも再構築する増分ビルドを設定することで、問題を部分的に解決しました。これにより、変更されたアセンブリと依存関係の両方が新しいタイムスタンプを持つことになります。タイムスタンプの変更を使用して展開するアセンブリを特定すると、機能的に変更されていないアセンブリが展開されることになります。

例えば:

ソリューション B にはプロジェクト B というプロジェクトがあります ソリューション A にはプロジェクト A というプロジェクトがあります

プロジェクト B -> プロジェクト A (プロジェクト A はプロジェクト B にファイル依存関係があります)

プロジェクト A で破壊的でない変更が行われた場合、たとえばメソッドの内部に変更が加えられた場合、期待される結果は次のとおりです。A のみがビルドされ、展開の候補になります。プロジェクト Aで重大な変更が行われると、プロジェクト B が壊れます。期待される結果は次のとおりです。A と B の両方がビルドされ、展開の候補になります。現在、MSBuild は関係なくすべての依存関係を再構築しますが、これは私たちが望んでいるものではありません。

2. 展開する必要があるアセンブリを自動的に識別します...

問題の部分的な解決策があります。ビルドが実行されると、ビルド プロセス テンプレートは、特定の順序でビルドするソリューションのリストを含む MSBuild スクリプトを実行するように構成されます。この操作は、ビルド エージェントのワークスペースで実行されます。新しいビルドが実行されるたびに、ビルド プロセス テンプレートは、次の形式で一意のドロップ フォルダーを作成します。バイナリをビルド エージェント ワークスペースからドロップ フォルダーにコピーします。これは、標準のビルド プロセス テンプレートによって処理されるすぐに使える機能です。ビルドはビルド エージェント ワークスペースをクリアしないように構成されているため、最初に実行するとソリューション内のすべてのプロジェクトがビルドされますが、その後のビルドでは、コードが変更されているか、他のプロジェクトに依存しているプロジェクト (インクリメンタル ビルド?) のみがビルドされます。したがって、変更されていないアセンブリには元のタイム スタンプが付けられ、変更されたアセンブリには新しいタイム スタンプが付けられます。ドロップ フォルダー間のフォルダー比較を実行し、結果を txt ファイルに出力できるツールがあります。これにより、最後の展開以降に追加/変更/削除されたバイナリを特定できます。また、実際のアーティファクトのリストを、開発者が定義した予期されるアーティファクトのマニフェストと比較できるという追加の利点も得られます。これにより、指定されておらず、単体テスト済みであることが証明されていないアセンブリがデプロイされないようになります。

問題は、ドロップ フォルダー内のすべてのファイルではなく、上記の例のように必要なファイルのみを展開するために、InRelease をどのように活用できるかということです。

0 投票する
1 に答える
181 参照

ruby-on-rails-4 - Rails アプリ、継続的インテグレーション/デプロイ環境

開発するとき、私のチームは明らかにdevelopment私たちの環境として使用します。

自動テストを実行するときは、 を使用しますtesting

また、テスターが機能と最終的な「ライブ」製品をチェックするためにそれぞれ使用するstagingと環境もあります。production

自動化されたテストを実行し、最終的には自動化された展開を支援するために、内部 CI サーバーをセットアップしようとしています。

CI サーバーは実際に自動テストを実行しているため、環境内で実行する必要があると考える人もいtestingます。productionただし、CIサーバーが実際に役立つためには、実際の環境のミラーにできるだけ近いモードで実行する必要があると思いproductionます(明らかに本番DBには触れません)。

CI サーバーを実行する環境として認められているものはありますか? production環境(DBが異なる)が唯一の論理的な答えのようですが、何か不足している可能性があります...

0 投票する
1 に答える
849 参照

azure - Visual Studio Online の自動ビルドが一部のプロジェクトの Nuget パッケージで失敗するが、すべてのプロジェクトで失敗する

何らかの理由で、ビルド時にプロジェクトの 1 つがビルドされません。私が見るすべてのページで得続けるアドバイスは、私のソリューションでは「Nuget Package Restore を有効にする」必要があることを教えてくれます。私はすでにこれを行っていますが、機能していないようです。

そのビルドの出力は次のとおりです。

0 投票する
1 に答える
617 参照

deployment - Octopus Deploy: 異なるプロジェクトを異なる運用マシンにデプロイする方法

私の問題の簡単な例...

私の会社には、アプリ A、B、C、D の 4 つの個別のアプリケーションがあります。私の会社には、2 つの個別の運用サーバーがあります。

  • アプリ A の本番サーバー = サーバー 1
  • アプリ B の運用サーバー = サーバー 1
  • アプリ C の本番サーバー = サーバー 2
  • アプリ D の本番サーバー = サーバー 2

Octopus Deploy の Web サイトの例は、すべての「プロジェクト」で本番環境が同じであることを前提としているようです。

私の本番環境は、どのアプリケーションが本番環境にデプロイされているかによって異なります。

各サーバーにちなんで名付けられた「環境」を作成することもできますが、これは変換のためのいくつかの奇妙な (web/app).config 名になります (App.Server1.Config ではなく App.Release.Config を使用することをお勧めします)。 .

複数の本番サーバーがある場合、Octopus Deploy をどのようにセットアップしましたか? これは、機械の役割が潜在的に解決できるものですか?

ありがとう、

アダム

0 投票する
1 に答える
5578 参照

linux - virt-install で ks.cfg を使用していますか?

centos で cfg ファイルを使用して仮想マシンを動作させようとしましたが、残念ながら ks.cfg ファイルが存在しないというエラーが表示されます。

以下は、VM を有効にするために実行したコマンドです。

私は VM のセットアップに不慣れで、正しく行っているかどうか確信が持てません。

これを修正する方法についてのアドバイスは大歓迎です。

また、initrd-inject は何をしますか? 上記のコマンドをファイルに保存して、代わりにファイルを実行することは可能ですか?

0 投票する
4 に答える
1814 参照

azure - Azure への自動デプロイ

製品の特定のビルドを特定の Azure クラウド サービスまたは VM に自動デプロイする方法を調査しています。

次の手順は自動化され、手動による介入は最小限に抑えられます。

  • クラウド サービスまたは VM を作成する
  • 製品の特定のビルドをインストールします ( IIS ではなく、スタンドアロンの exe または Windows サービスとして)
  • 構成ファイルを微調整する
  • ユーザー アカウントの設定
  • exe/サービスを実行します

コードは現在 Visual Studio Online / TFS にあります。Cruise Control .NET CI がセットアップされており、TeamCity への移行を検討しています。これは、通常の QA および実稼働タイプの環境に使用されますが、アドホックな展開にも使用されます。たとえば、試用版の機能が製品に追加され、それを特定の顧客が試してみるために新しい VM に展開したい場合などです。コマンド ラインまたは UI を使用してビルドを選択し、VM を作成し、構成の変更を指定できることが理想的です。

考えられる解決策の 1 つはOctopus Deployかもしれませんが、これで実際に Azure VM を作成できるとは思いません。また、おそらく Azure API と TFS デプロイも検討します。

私の研究を絞り込むために、私が見逃している実証済みの代替手段はありますか?

前もって感謝します!