問題タブ [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.
ruby-on-rails - Railsでのシームレスなデプロイ
Railsアプリをシームレスにアップグレードしたい:
意味:
- 移行を実行する必要がない場合は、コードを透過的にアップグレードし、デプロイ中に404にリクエストが送信されないようにします。
- これは難しいです。データベースをシームレスにアップグレードできるプロセスが必要です。その間、dbの更新が完了したら、Webリクエストを保留して(パイプにキューに入れて)、処理を許可します。(これは、5〜10秒の移行などの短い移行でのみ機能する必要があります)。
これをどのように達成しますか?
heroku - Heroku にデプロイされたアプリをシャットダウンするには?
少数のユーザーが使用している Heroku のアプリがあります。ただし、ユーザーが新しいものを入力しないように、その間にアプリを修正して停止したいデータの問題があることに気付きました。
アプリを破棄するのではなく、Heroku でアプリを停止する方法はありますか? サーバーの再起動コマンドが表示されます...「停止」などは表示されませんが。
c# - ASP.NET Web サイトを使用した継続的配置?
現在開発中の C#/ASP.NET の Web サイトがあります。本番環境では、バグを修正して機能を追加するため、1 日のうちに頻繁にリリースを行いたいと考えています ( http://toni.org/2010/05/19/in-praise-ofのように)。 -continuous-deployment-the-wordpress-com-story/ )。
サイトの新しいバージョンをアップロードしたり、単一のファイルを変更したりすると、現在ログインしているユーザーが追い出され、フォームなどを最初からやり直すようになります. .NET サイトのユーザーに干渉することなく展開できる秘訣はありますか?
ruby-on-rails - Ruby on Rails と Capistrano を使用してトラッキングをデプロイする
すべてのコミットに理由と目的があるように、各デプロイにも目的と理由があると思います。ソース コードのコミットにはコメントがあります。しかし、展開には何もありません。
各デプロイの理由と目的を自動的に記録するにはどうすればよいですか?
次の記録を残す必要があります。
- 誰が、いつ、どこに配備したか。
- なぜ配備されたのですか?バグの修正?機能アップデート?反復計画にない緊急修正?
- どの git または svn ref が使用されましたか?
この種のシステムの必要性を感じた人はいますか? 私のアプローチについてどう思いますか?どうすれば目標を達成できますか? 現在、展開に Capistrano を使用しています。
賞金が追加されました。「継続的な展開」を行っているさまざまな開発者の話をもっと聞きたいです。
追跡を展開する 2 つのサービスを見つけました。
ruby-on-rails - GitおよびHerokuとの適切な継続的インテグレーションと継続的デプロイ
私はherokuとgitを使用してRubyonRailsのWebサイトを開発しています。
次の簡単な開発プロセスを設定するには、どのツールと機能を使用する必要がありますか?
コード>チェックイン>自動テスト>自動展開
- コードをリポジトリにチェックインします(推奨オプション、githubのようなホストされたgit)
- テストは自動的に実行され、Webサイトはステージングherokuアプリにデプロイされます
- テストに合格すると、Webサイトは私の本番Herokuアプリに自動的にデプロイされます
- テストが失敗した場合は、なんとかして通知を受け取りたいです。
これをどのように行いますか?
visual-studio-2008 - TeamCityの単一のソリューションから複数のプロジェクトを公開する
複数のプロジェクトを含むVS2008ソリューションがあります。これらのプロジェクトのうち5つを公開する必要があり、そのうちの2つを2回公開する必要があり、2つの異なる構成設定を使用します(いくつかのweb.config属性のconfigSourceを変更するだけで済みます)。
次に、結果の7つの出力を取得し、4つを1つのzipファイルに入れ、他の3つを別のzipファイルに入れて、展開の準備ができているクライアントFTPにプッシュします。
1つのビルド構成で多くのことを実行しようとしていますか、それともこれは合理的に可能ですか?
ruby - 継続的インテグレーションサーバーからRubyGems.orgにgemを自動的にプッシュします
ビルドスクリプトでRubyGemをパブリックビルドサーバー(teamcity.codebetter.com)からRubyGems.orgに直接プッシュする継続的インテグレーション/継続的デプロイのシナリオがあります。
問題は次のとおりです。クレデンシャルを指定するにはどうすればよいですか?ローカルマシンでは、〜/ .gem / credentialsの下にあり、すべてが正常に機能しますが、ビルドサーバーにgemをプッシュするように指示するにはどうすればよいですか?
おかげで、よろしく、ステッフェンフォークマン
java - アーティファクトの再構築を行うMavenの検証フェーズを停止するにはどうすればよいですか?
私が持っているMavenを使用して構築されたJavaプロジェクトを想像してみてください。
- いくつかの高速実行ユニットテストは次のことを行います。
- 開発者はコミットする前に実行する必要があります
- 私のCIサーバー(Hudson、FWIW)は、新しいコミットを検出すると実行され、障害が発生した場合にほぼ瞬時にフィードバックを提供する必要があります
- 次のような、実行速度の遅い自動受け入れテスト。
- 開発者は、たとえば、障害を再現して修正するなど、必要に応じて実行できます。
- 単体テストを正常に実行した後、CIサーバーを実行する必要があります
これは典型的なシナリオのようです。現在、私は実行しています:
- 「テスト」フェーズでのユニットテスト
- 「検証」フェーズでの受け入れテスト
2つのCIジョブが構成されており、どちらもプロジェクトのVCSブランチを指しています。
- 「コミットステージ」は、「mvnパッケージ」(コードのコンパイルと単体テスト、アーティファクトのビルド)を実行し、成功すると次のようにトリガーします。
- 「mvnverify」を実行する「AutomatedAcceptanceTests」(受け入れテストのセットアップ、実行、破棄)
問題は、ジョブ2の単体テストで、テスト対象のアーティファクトをもう一度ビルドすることです(検証フェーズでパッケージフェーズが自動的に呼び出されるため)。これは、いくつかの理由で望ましくありません(重要性が低下するため)。
- ジョブ2によって作成されたアーティファクトは、ジョブ1によって作成されたアーティファクトと同一ではない可能性があります(たとえば、その間に新しいコミットがあった場合)
- コミットを行った開発者へのフィードバックループを長くします(つまり、ビルドが壊れたことを見つけるのに時間がかかります)
- CIサーバーのリソースを浪費します
だから私の質問は、ジョブ1によって作成されたアーティファクトを使用するようにジョブ2を構成するにはどうすればよいですか?
「mvnverify」を実行するCIジョブを1つだけ持つことができ、アーティファクトを1回だけ作成できることに気付きましたが、Farleyスタイルのデプロイメントパイプラインを実装するために、上記の個別のCIジョブが必要です。
誰かに役立つ場合は、受け入れられた回答の「プロジェクト2」の完全なMaven2POMを次に示します。
この「テスト」プロジェクトはアーティファクトを作成しませんが、何らかのパッケージを使用する必要があることに注意してください(ここでは「jar」を使用しました)。そうでない場合、検証フェーズでテストは実行されません。
methodology - 適切なテクノロジーと環境の選択
私たちは、新しい Web 製品の開発を開始しようとしている 2 人の開発者です。
私たちは両方ともリーン スタートアップ アプローチのファンであり、継続的な展開を実践したいと考えています。
ここでジレンマが発生します。私たちはどちらも C# / Windows のバックグラウンドを持っているため、次のどちらかを決定する必要があります。
.NET と Windows に固執し、新しいテクノロジの学習に時間を浪費せず、開発に全力を注ぎます。
Ruby on Rails と Linux に切り替えます。これらは、迅速な立ち上げと広範なオープン ソース サポートで定評があります。マイナス面は、Ruby、Rails、Linux の学習に多くの労力を費やす必要があることです...
あなたならどうしますか?他にどのような考慮事項を考慮する必要がありますか?
tomcat - ビルドをデプロイするためのHudsonの構成
ビルド(.warファイル)をTomcatに自動的にデプロイできるようにHudsonを構成しようとしています。新しくデプロイされたビルドは、誰かがアプリケーションをテストするために使用します。
Deploy Pluginを使用して.warファイルを自動的にデプロイしようとしましたが、これは機能します。ただし、.warファイルをビルドするジョブは、scmが変更されるたびに(コードがコミットされるたびに)実行されます。Deploy Pluginを使用すると、ビルドが行われるたびに.warファイルがTomcatにデプロイされます。コードは頻繁にコミットされるため、これはWebアプリケーションも頻繁に再起動されることを意味し、これによりテストプロセスが中断されます。
Hudsonがユニットテストを実行し、定期的にビルドを作成しているという事実に感謝しているので、このジョブのトリガーを変更したくありません。
ハドソン内から手動で展開することを決定できる方法を探しています。最初のジョブから.warをデプロイする別のジョブを作成しようとしましたが、これは機能しませんでした。誰かがこのようなものを設定した経験がありますか?