タグ付けされた質問 「continuous-integration」

2
Gitlab CI-SSH経由でリモートサーバーにデプロイ
Gitlab CIを使用したGitlab環境があります。これは、コンパイル済みファイルについて証言し、rsyncを介して運用サーバーにコピーする新しいプロジェクト用です。 これらのリソースのビルドがexecであるマシンはdocker(ノード6)のイメージですが、Linuxを使用してそのコンテナーDockerコマンドからサーバーに結果ファイルをコピーする必要があります...私の問題はssh経由で接続することですrsync。 現在、私は以下を持っています: stages: - deploy before_script: - npm i - npm run build job_deploy: stage: deploy script: - ssh-keygen -t rsa -b 4096 -C '' -f ~/.ssh/deploy_rsa - ssh-keyscan -H 8.8.8.8 >> ~/.ssh/known_hosts - ssh-copy-id -i ~/.ssh/deploy_rsa.pub $SERVER_USER@8.8.8.8 - rsync -avuz $CI_PROJECT_DIR/dist/ $SERVER_USER@8.8.8.8:/var/wwww/example.com only: - master これによって私は得ています: /usr/bin/ssh-copy-id: …

1
Tomcat Parallel Deployment、古いアプリケーションを自動的にアンデプロイします
ここしばらく、Tomcat 8のParallel Deploymentをゼロダウンタイムの継続的デプロイメントセットアップの一部として使用しています。 テストガントレットが実行されると、CIサーバーは自動的に.warファイルの名前をapplication ## {version-number} .warに変更し、warを/ webappフォルダーにコピーします。application ## 333はapplication ## 332とうまく共存します。 私が直面している唯一の問題は、すべてのトラフィック(新しいセッション)が新しいアプリケーションに自動的に移行したら、古いアプリケーションを手動でアンデプロイする必要があることです。 Tomcatには、「このサービスがセッション数がゼロになったら削除する必要がある」と言うための組み込みメカニズムはありますか?たぶん、ある種の「最後のセッションが期限切れになった」イベントを利用できます。 他の誰かがこの種のアプリケーションのアンデプロイを自動化した場合は、それについて聞いてみたいと思います。ありがとう!

3
GitLab Webフックからのマージ要求のためのJenkinsビルドのトリガー
Jenkins(1.561)が、マージリクエストWebフックによってトリガーされ、GitLab(6.7.5)に送信されたマージ(プル)リクエストをビルドするようにしたい。パラメータ化されたビルドと、Jenkinsプラグイン「GitLab Merge Request Builder」(1.2.0)および「GitLab Hook」(1.0.0)があります。Jenkins CIへの移行は、残念ながら実際の選択肢ではありません。 マージリクエストBuilderプラグインがある長い変数としてとして、マージリクエストを構築することができgitlabMergeRequestId、gitlabTargetBranchおよびgitlabSourceBranch利用可能です。これは、プラグインがリポジトリ自体をポーリングするとき、または手動ペイロード(例:)でビルドをトリガーするときにうまく機能しますcurl --data "gitlabMergeRequestId=3&so_on http://server_name/job/$JOB_NAME/buildWithParametersが、フックでこれを行うことはできません。 GitLab Hookプラグインを使用すると、JSONペイロードで必要なデータを取得できますが、値に「間違った」キーがあります。 gitlabMergeRequestId です id gitlabTargetBranch です target_branch gitlabSourceBranch です source_branch GitLab Merge Request Builderプラグインの要件として、および変数値としてビルドパラメータを構成してみNameましたDefault Value。残念ながら(おそらく意図的に)、Default Valueフィールドの変数は置き換えられないため、Jenkinsはid ${id}および同様のブランチ値を持つマージ要求を探しています。 GitLabから送信されたペイロードを構成する方法が見つからず、GitLab Hookプラグインにも、GitLab Merge Request Builderプラグインで使用されるパラメーター名にも構成オプションはありません。 Jenkinsに渡す前にPOSTからのペイロードをインターセプトして変更する小さなPHPスクリプトを書くことを検討しています。私はこれがうまくいくと確信していますが、それは間違いなく不必要に複雑に見えます。 私が見ることができる他の唯一の実際のオプションは、プラグインのソースを変更することですが、これにより、プラグインをPITAにアップグレードできます。 明らかなことを見落としたことがありますか、それとも、GitLabからJenkinsへのWebフックを使用してMerge Requestビルドをトリガーする簡単な方法はありませんか?

4
継続的な統合サービスのための「白紙の状態のシステム」を確実にする効果的な方法
プロジェクトの継続的インテグレーション(CI)サービスをセットアップしたいと考えています。そのCIサービスは、デプロイメントを含むプロジェクトライフのすべての側面を制御する必要があります。 つまり、各反復でCIエージェントがクリーンなシステム(特にUbuntuサーバー)を取得し、そこにプロジェクトをデプロイしてテストを実行する必要があります。 私たちのエコシステムはかなり珍しいので、CIサービスを最初から自分で作成します。問題は、CIの反復ごとにクリーンなスレートシステムを効果的に提供する方法ですか。 プロジェクトの展開では、いくつかのDebianパッケージをインストールし、いくつかのnginxサイトを構成し、いくつかのパッケージをシステム全体の実装言語固有のパッケージマネージャー(LuaRocks)にインストールします。それ以上に邪魔になるものはありません(私は信じています)。したがって、完全な分離とクリーンを確保するよりも、クリーンスレートをすばやく(最新のハードウェアでは1分以内に、より速く、より良く)セットアップできることが重要です。 私たちが必要とすることを行う方法は2つあります。 いずれかの種類の刑務所(lxcなど)をセットアップします。 または、スナップショットを実行できる仮想マシンをインストールして使用します。 しかし、現時点では決定するのに十分な情報がありません。 何をアドバイスしますか?他のオプションはありますか?特定のツール名はありますか? 注:CIサービスは、Citrix XenServerゲスト内で実行されます。価格がリーズナブルであれば、有料のソリューションで問題ありません。(通常、この分野では妥当ではありません。)リモートCIソリューションは適切ではありません。

6
開発者ビルドの最速のファイルシステムは何ですか?
私は、継続的インテグレーションビルドサーバーとして機能するLinuxボックスをまとめています。主にJavaのものを構築しますが、この質問はコンパイルされたすべての言語に当てはまると思います。 どのファイルシステムと構成設定を使用する必要がありますか?(たとえば、私はこれに時間をかける必要がないことを知っています!)ビルドサーバーは、小さなファイルの読み取りと書き込み、およびディレクトリのスキャンを行って、変更されたファイルを確認します。 更新:この場合、データの整合性は優先度が低くなります。それは単なるビルドマシンです...最終的なアーティファクトは圧縮され、別の場所にアーカイブされます。ビルドマシンのファイルシステムが破損してすべてのデータが失われた場合は、ワイプしてイメージを再作成するだけです。ビルドは以前と同様に実行され続けます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.