問題タブ [continuous-deployment]

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 投票する
2 に答える
16654 参照

jenkins - Jenkins のリモート展開

Jenkins をセットアップしようとしていますが、いくつかの問題があります。

「Jenkins サーバー」(マスター) があり、Fisheye に接続しています。Jenkins は Git リポジトリを取得してテストを実行できます。

Jenkins がサーバーに SSH 接続し、「git pull origin master」などのコマンドを実行する機能を提供する組み込みプロセスはありますか?

0 投票する
2 に答える
109 参照

sql - データベース駆動型アプリケーションのソース管理に必要なダンプから始めますか?

完全なスクリプト ベースまたはデータベース デルタ ツールとは対照的に、データとスキーマの移行の基礎としてダンプ ファイルを使用することの長所と短所は何ですか?

コンテキストは、アプリケーションが本番環境にあり、本番データベースが 1 つしかないということです。アプリケーションとデータベース スキーマは活発に開発されています。重要なユーザー データは運用データベースに存在し、新しいバージョンまたは修正プログラムの展開と共にロール フォワードする必要があります。

議論されているソリューションは次のとおりです。

ダンプファイル単位 -

  1. 参照点のダンプ ファイルから始めます。
  2. データベース変更スクリプトは、ソース管理にチェックインされます。
  3. 展開には、ダンプ ファイルの読み込みと、変更スクリプトの実行が必要です。

スキーマ + 移行

  1. スキーマ全体と特定の非ユーザー構成データは、DDL および DML として SCM に格納されます。
  2. 最新リリースのスキーマに対する移行スクリプトは、SCM に保存されます。
  3. デプロイメントには、スキーマのロードとデータの移行が伴います。3.

私の直感では、バイナリ形式をベースとして使用することは悪いことですが、それが必要であると主張する他の人 (実際にそうである場合) を説得できるようにする必要があります。


答えやすくするために、この質問を再定式化しました。

以下は元の質問です。

私はデータベース駆動のエンタープライズ アプリケーションのチームと協力しており、プロセスの改善を目指しています。現在、すべての層でデータベースを更新するために多くの手動プロセスがあります。目標は、データベースを一貫して自動化された方法で更新するための自動化されたプロセスを持つことです (アトミックコミットのアイデアに沿って、継続的な配信に近づく)。これにより、多くの利点がもたらされます。

スキーマ (およびアプリケーションの構成に必要な特定のデータ) は、ソース管理で表す必要があると思います。さらに、現在の運用データベースからユーザー データを変換およびロードするために必要なスクリプトも必要です。ソース管理にダンプ ファイル (.dmp) を配置することはお勧めできないと読みましたが、直感的に強く同意します。しかし、私はプロジェクトの全員から同意を得ているわけではありません。反対意見は、実際には、ダンプ ファイルから始めないことは不可能であるか、少なくとも非常に困難であるというものです。私はデータベースの知識の限界に直面しており、意味のある議論をすることができません... 私は開発者であり、データベースの専門家ではありません。別の方法として、ダンプを最新のスキーマに変更する変更スクリプトを保持することをお勧めします。

誰かが各アプローチの長所と短所をもう少しよく理解するのを手伝ってくれますか? ダンプベースのアプローチは必要か、良いアイデアか、そうでないか、そしてその理由は?

関連する可能性のある少しの背景: アプリケーションは運用中なので、新しいバージョンごとに展開プロセスの一部としてデータをインポートする必要があります。統合と UAT 層に関する明らかな理由から、これは実際のデータである必要があります。ただし、このアプリは顧客によって「出荷」およびインストールされるわけではありません。特定の時点で実稼働のインスタンスが 1 つしかなく、内部で維持されます。私のプロジェクトに固有の詳細があることを認識しているため、答えは一般的なケースに対処する必要があります。

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

testing - 継続的な統合と展開のベスト プラクティス

継続的インテグレーションの概念が私のチームに統合されました。

Devという名前の統合ブランチがあるとします。

そこから、特定の現在のプロジェクトごとに 1 つずつ、3 つのブランチが派生します。

  • プロジェクトA
  • プロジェクトB
  • プロジェクトC

まず、Teamcity は専用サーバーで構成され、その目標は次のとおりです。

Dev を含む各ブランチのバージョン管理されたソースから単体テストと統合テストをコンパイルして起動します

次に、もちろん、UAT を実行できるように、各プロジェクト ブランチ (A、B、および C) を複製された運用環境でテストする必要があります。

しかし、どの頻度で展開すればよいのでしょうか? ソースコードが変わるたびに?

それぞれをマージした後 (次の製品リリースの現実に対応)、または 3 つのプロジェクトを個別にマージした後、3 つのプロジェクトの混合を含む Dev のみを展開する必要がありますか?

Dev がデプロイされている場合、Dev で将来変更される可能性があることを考慮してはなりません。確かに、プロジェクト Dと呼ばれる新しいプロジェクトが開始される可能性がありますが、それは次のリリースの一部であってはなりません。そのため、Dev を統合 (UAT) に使用することは、デプロイヤーがプロジェクト D のコンテンツを非自発的に統合する可能性があり、環境が次のリリースの現実を明らかにしない可能性があるため、リスクがあります。

その他の解決策: Dev ではなく 3 つのプロジェクトを独立して使用しているため、3 つの複製された運用環境が並行して存在する必要がありますか?

はいの場合、統合環境の動作が頻繁に変更される可能性があるため、UAT は信頼できません...

UAT の継続的な展開の概念は、私には明確ではありません...

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

java - 依存関係サービスを使用して配布可能なバイナリを生成する

結果の配布に、zookeeperとprojectvoldemortという2つの他のサービスを実行する必要があるJavaプロジェクトがあります。すでに有効な構成で各プロジェクトの適切なバージョンを出力するビルドプロセスが必要です。これにより、新しい環境を公開するには、ビルドからピースを取得して、運用サーバーで開始する必要があります。

プロジェクトにはバージョン管理システムを使用していますが、これら2つの依存関係は少し大きいので、内部のftpサーバーに保存して、ビルド時にdistフォルダーにダウンロードすることを考えました。

これは良い習慣ですか?誰かがすでにこのようなことをしましたか?

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

c# - Dropkick によるリモート展開

私は日常業務で多くの展開を行っています。そして、それは本当に痛いです。最近、私はドロップキックに出くわしました。しかし、私が必要としている最も重要な機能であるリモート実行は、十分に文書化されていません。誰かがそのような問題を経験したことがある場合は、実行する基本的な手順をいくつか教えていただけますか? ローカルおよびリモート PC の設定方法 ありがとう。

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

c# - WindowsPhone7の優れたワークフローをサポートする継続的インテグレーションプログラム

継続的インテグレーションがWindowsPhoneアプリとどのように機能するかについて少し混乱しています。アプリをマーケットプレイスに自動的にアップロードする方法はありますか、それとも手動で更新する必要がありますか?

これには独自のサーバーが必要ですか、それともホストされたオプションがありますか?

また、Windows Phone 7アプリをテスト、構築、継続的インテグレーションするのに最適なプログラムはどれですか?

編集:私はAtlassian Jiraを使用していますが、BambooはWebアプリにのみ適用され、デバイスにデプロイされているアプリには適用されないようです。私には要件も経験もありません。また、CIが非Webベースのプロジェクトでどのように機能するかさえ理解していません。ただし、SVNにコミットする前に、コードがすべてのテストに合格することを望んでいます。最新の安定したビルドを自動化された方法でユーザーに自動的にプッシュする方法があれば、それは素晴らしいことです。

0 投票する
2 に答える
744 参照

iis-7 - MSDeployを使用したIIS設定の継続的展開

TFS(2008)を使用して継続的展開を実践し、IIS設定の変更を処理するための優れた方法を探しています。MSDeployはこれを処理する方法のようですが、よく読んで検索した結果、良い答えが見つかりませんでした。

私が見ているように、MSDeployの問題は、既存のIISWebサイトを使用して展開パッケージを作成する必要があることです。Webサイトに適切なIIS構成をソース管理で使用し、ビルドでパッケージを作成できるようにしたいと思います。

これを行うために私が見ることができる唯一の方法は、archive.xmlファイルを手作りすることです。私の考えは正しいですか、それとももっと良い方法がありますか?

0 投票する
6 に答える
11626 参照

deployment - TeamCity による継続的デプロイ

最近、TeamCity で CI サーバーをセットアップしましたが、次のステップである継続的デプロイに進みたいと考えています。基本的に、お客様ごとに一連の安らかなサービスと約 3 つの Web アプリケーションをホストしています。すべてのお客様は、QA、UAT、および製品の 3 つの環境を利用できます。テストに合格したら、ビルドを自動的にデプロイできるようにしたいと考えています。これを行うためのカスタム スクリプト オプションを探しているわけではありません。私はSOのものをたくさん見てきました。私たちが探しているのは、UDeploy のようなソリューションですが、より低価格です。UDeploy に代わるものを知っている人はいますか? または、TeamCity で動作するその他の継続的デプロイ プラグインはありますか?

ありがとう、

0 投票する
3 に答える
10628 参照

tomcat6 - Windows で Tomcat 6 を強制的に停止する

Tomcat 6 を使用して、アプリケーションの ActiveMQ ベースの Java バックエンドを提供しています。最近、この製品のサーバー側コンポーネントの継続的配置ソリューションを実装する方法を検討しています。


1. MSI インストーラーを仮想マシンに投入する
2. Tomcat を停止
する 3. インストーラーを実行する
4. Tomcat を起動する
5. サーバーが実行されていることをテストする

Tomcat のシャットダウン手順を除いて、これをすべて行うことができます。私が直面している問題は、Tomcat のシャットダウンが常に適切であるとは限らないことです。そのため、サーバーを強制的にシャットダウンできる必要があります。Tomcat をサービスとして実行するかどうかについては、オープンです。
WindowsでTomcat 6をシャットダウンする方法に関する情報はありますか? パラメータの使用に関するドキュメントを見たことがあり-forceますが、これは不完全で、Unix システムを対象としています。

提供できる情報は大歓迎です。


編集: マシンで実行されている Java プロセスは Tomcat だけではない可能性があります。

0 投票する
2 に答える
3171 参照

xcode - JenkinsスレーブのワークスペースでXCodeプロジェクトをコンパイルしようとしています

Jenkinsのスレーブが単一のxcodeプロジェクトを構築し、完全に機能するようになりました。

ただし、ワークスペースを含むプロジェクトを取得しました。このプロジェクトでは、ここで説明するように、ワークスペースのルートにgitmoduleを使用してサードパーティのファイルをセットアップし、プロジェクトにインポートします

Jenkinsがコンパイルして到達AppDelegate.hすると、ライブラリからファイルをインポートしようとするとエラーが発生します。

ワークスペースをポイントしてプロジェクトをコンパイルしました。ただし、パッケージ化の段階に達すると失敗します。ワークスペースに作成されたビルドディレクトリが表示されません。