問題タブ [continuous-delivery]
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.
jenkins - Jenkins で WSUS パッケージを発行する
ビルドの結果を WSUS 経由で公開したいと考えています。私のビルドは InnoSetup を作成します。WSUS Package Publisherを使用してセットアップを公開するテストに成功しましたが、 この最後の手順を自動化したいと考えています。Package Publisher またはLocal Update Publisherを自動化できず、自動化できるツールが見つかりませんでした。私は何か見落としてますか?
例: コマンドラインから起動できるツールが必要です。このツールは、パラメーターまたは構成ファイルを受け取り、setuppackage を作成して公開します。
新しいバージョンごとに手動でパッケージ化する必要がありますか?
ありがとうマイケル・グリュンヴァルト
sidekiq - コード バージョンに基づいて Sidekiq が新しいジョブを処理しないようにするにはどうすればよいですか?
継続的デリバリー パイプラインの一部として、sidekiq ワーカーのバージョンを Cloud Foundry にデプロイしています。ワーカーが最新バージョンでなくなった場合、新しいジョブの処理を停止する必要があります。そう:
- ワーカー v1 が実行中で、30 分間のジョブを実行しています。
- ワーカー コードの v2 をデプロイします。
- v1 は現在のジョブを続行する必要がありますが、新しいジョブを開始しないでください。
CloudFoundry はUSR1の送信を許可しないため、ワーカーがすべてのジョブを開始する前に最新バージョンかどうかを判断できるソリューションが必要です。
ruby - {add logic here} に基づいて Sidetiq が新しいジョブをスケジュールできないようにする
いくつかの条件に基づいて、Sidetiq が新しいジョブをスケジュールしないようにしたいと考えています。私たちのユースケースでは、別のデプロイメント/コンテナで実行されている新しいバージョンのコードがないこと)
Sidetiq がジョブをスケジュールしている時点でロジックを追加し、それを防ぐにはどうすればよいでしょうか?
jenkins - TFS と統合された継続的デリバリー パイプライン
TFS を使用して .NET プロジェクトに取り組んでいます。
- ソース管理
- ビルド: MSI ファイルを生成するゲート付きチェックイン
- ラボへの展開
適切な継続的デリバリー パイプラインを作成したいと考えています。これは、信号機でチェックインするたびにパイプラインを備えたダッシュボードです。パイプラインには、TFS ビルド > ラボへのデプロイ > スモーク テスト > 統合テスト > 受け入れテスト > PreProd へのデプロイ > ... などのすべてのステージが表示されます。
そのため、TFS と緊密に統合する必要があります。
2 つのオプションを評価しています。
- パイプラインを表示できるものがあれば、TFS ベースのツール\プラグイン\ダッシュボードを使用しますか?
- Jenkins、TeamCity、Bamboo などの CI ツールを使用して、このパイプラインを構築します。理想的には、ソース コードだけでなく、TFS ドロップ フォルダーからビルドされたコードを取得するためのサポートを備えています。
あなたは何をお勧めします?
continuous-integration - クライアント/サーバー Windows デスクトップ アプリケーションの自動統合テスト
私のチームは、クライアント サーバー セットアップで使用されるデスクトップ アプリケーション (混合 C++/Tcl) を開発しています。現在は Windows 専用ですが、すぐに Linux に移植する必要があります。CruiseControl.NET は毎晩 SVN のソース コードからビルドし、NSIS インストーラーにパッケージ化しますが、実行する自動テストはありません。
単体テストを追加することはほとんど不可能ですが、アプリケーションの統合テストは簡単です。これは、アプリケーションが既にスクリプト ベースでかなりの部分を占めているためです。
主なタスクは、アプリを 3 台の PC にインストールし、構成 (いくつかのファイルをコピーすることを含む)、実行、クラッシュの可能性を監視、統合テストが完了するまで待機、概要を収集、電子メールを送信することです。一連のカスタム PowerShell スクリプトを使用して実行できますが、
- 将来的には、より多くの機能を追加し、より多くのテストを行いたいと考えており、以前は単純なスクリプトであったものはすぐに爆発します (いつものように)。そのため、カスタム スクリプトを最小限に抑えたいと考えています。また、何かスクリプトを作成する必要がある場合は、bash/cygwin を好みます。 (私は Python や Ruby に詳しくありません)。
- 現在の進行状況を報告し、何かが失敗した場合はログを表示する Web ダッシュボードが必要です
- テスト中のアプリを監視し、ハングまたはクラッシュした場合に報告するスーパーバイザーが必要です
- Linuxでもテストする必要があります
- 理想的には、PC 間でいくつかのテスト手順を調整したいと考えています (たとえば、PC1 でテスト X を実行し、PC2 でテスト Y を並行して実行し、両方が終了するまで待ってから、PC2 で何もクラッシュしないことを監視しながら、PC1 でテスト Z を実行します)。
それで、私はそれを行うのに役立ち、急な学習曲線を持たないCOTSツール/ツールセットを探しています. 理想的には無料ですが、それが本当に優れていて適正な価格設定であれば、私の会社はライセンスを購入するかもしれません。
NSIS インストーラーの準備ができたら、CruiseControl.NET からプロセスをトリガーし、上記のすべてを実行する必要があります。基本的に、少なくともソフトウェアのリモート インストール、カスタム スクリプトの実行、および Web ダッシュボードを許可する必要があります。
どうやら、Chef のような SCCM ツールを使用できるようですが、今のところどちらも Windows サーバーをサポートしておらず、ノードのみをサポートしています。そのためだけに Linux VM をセットアップすることは避けたいと思いますが、他に選択肢がない場合はセットアップできます。また、Chef は少しやり過ぎのようです。1 万台のマシンには適していますが、私は 3 台しか持っていません。将来的には 5 台になるかもしれません。そして、分散テストを組織化する可能性について特に興味があります。
ここ StackOverflow とインターネットでの同様の質問のほとんどは、Web アプリ、Java コンテナー、Maven などに関するものであり、これらのツールを評価するためのツールとプラグインが非常に多くあります。
前もって感謝します。
jenkins - CI / CD の大規模な分散クライアント サーバー アプリケーション部分の展開の自動化
アプリケーションの 1 つで、展開プロセスを自動化しようとしています。このアプリケーションには、エンド ツー エンドの継続的インテグレーション (ビルド/テスト/パッケージ/レポート) が実装されています。現在、自動展開を実装しようとしています。このアプリケーションは、2000 台のサーバーと各サーバーの 50 台のクライアントにデプロイする必要があります。一部のコンポーネントはサーバーにインストールされ、一部はクライアントにインストールされます。
CI に使用されるツール: Jenkins、Github、msbuild、nunit、specflow、wix。
継続的デリバリーと継続的デプロイの違いを読み、継続的デリバリーはコード/変更がいつでも有効になることが証明されていることを意味し、継続的デプロイは証明されたコード/変更が本番サーバーに自動的にデプロイされることを意味することを理解しました。
ネット上のほとんどの記事では、サーバーの 1 つ (DEV/Staging/Preproduction/Production) への継続的な配信/展開の展開部分を自動化する方法について説明しています。多数のサーバーとクライアントにアプリケーションをデプロイする方法については、どの記事も触れていません。
ここで私の質問は次のとおりです。1) 2000 以上のサーバーとクライアントへのアプリケーションの展開は、継続的な展開の一部ですか、それとも CI/CD から処理する必要がありますか? 2) CI/CD 内で処理できる場合、Jenkins 配信パイプラインでこれをモデル化し、CI ツールからすべてのサーバーの展開をトリガーするにはどうすればよいですか? 3) CI ツールと統合して展開を自動化できるツールはありますか?
ありがとう
php - Composer - 「require-dev」にパッケージを 1 つのコマンドでグローバルにインストールすることは可能ですか?
簡単な質問です。私のアイデアについて一般的にばかげていることがあれば教えてください/これに対するより良いアプローチがある場合:
継続的デリバリー パイプラインを作成する目的で、Composer でさまざまなタイプのテストに必要ないくつかのパッケージを "require-dev" で宣言したいと思います。しかし、「require-dev」の下にリストされているすべてのパッケージを 1 つのコマンドでグローバルにインストールする方法で install コマンドを実行することが可能かどうか疑問に思っています。
テスト環境を簡単に最新の状態に保ち、必要なすべての PHP テスト ソリューションにグローバル アクセスできるようになるので、これは素晴らしいことです。大した作業ではないことはわかっており、すべてを手動で行った場合はすでに完了していますが、ダウンロードとすべてを手動で行うと思うので、これを行う良い方法があるかどうか知りたいと思っていました。実行権限を与えてから、グローバル アクセスのために bin/ ディレクトリに移動するのは、面倒な解決策です。