2017-03-20 6 views
1

私はJenkinsを学んでいます。私の理解が正しいかどうか誰かに教えてもらえますか?私は私のコードをコミットし、私のリモートリポジトリに自分のブランチをプッシュJenkinsビルドとデプロイ

  • :アプリを構築するには

  • Jenkinsは自分のコミットを見て、ビルドをトリガーします(おそらくmaven installを使用します)。
  • ジェンキンスはすべてのテストを実行し、すべてが合格すると戦争/耳が作成されます。このアーティファクトはネクサスにプッシュされます。

が環境に展開するには:

  • 私のブランチの展開スクリプトは、Tomcat、たとえば、にアプリケーションをデプロイする手順が含まれています。 JenkinsはNexusに行き、最新のアーティファクト(上に構築したもの)を取り出し、このアプリケーションをTomcatにデプロイします。
  • デプロイメントファイルのその他の手順は、必要に応じてTomcatをシャットダウンして再起動します。アプリケーションが開始され、要求を処理する準備ができているかどうかをテストすることもできます。

デプロイメントは最新の人工物を構築する必要はなく、最後にNexusにプッシュしたものを使用する、またはデプロイするたびに新しく作成されたものを使用していますか?

+0

すぐに説明します - PRを作成する - > Jenkinsはすべてのテストを実行します - >ビルドが成功すればレビューボタンでPRボタンを利用できます - > PRがマージされます - > nexusでスナップショットが生成されます - > UATE機能テストがうまくいく場合はプリプロードを行い、次にリリースカットをネクサスにプッシュします。 – Shek

+0

場合によっては、MavenやGradleを使用してプロジェクトをビルドしている可能性があります。これらのツールにはすでにネクサスにデプロイするタスクがあり、/ targetパス上に生成された実際の成果物を使用して、生産物にアーティファクトをデプロイするか、 – CleitonCardoso

+0

新しいビルドは、新しいPRマージが成功したときにのみ生成されます。 – Shek

答えて

1

Jenkinsやgitでビルドを設定する方法はすべてです。

Jenkinsはリポジトリ(略してrepo)を監視し、変更を検出したときにビルドを開始するように設定できます。

Jenkinsはビルドを実行するように設定できます。 Mavenのコマンドライン引数を指定します。ジェンキンスはあなたがそれを与えるコマンドをオーケストレーションします。

あなたがジェンキンスを提供するいくつかのステップは、シェルコードです。これは、カスタムシェルスクリプトを実行して、Nexusにアクセスする方法です。物事は自分では起こりません。 Mavenを使ってアーティファクトを展開するようにJenkinsに指示すると、Jenkinsは指示したように展開コマンドを呼び出します。

サーバーの起動、再起動、またはシャットダウン(Tomcat)の責任を負わせることは非常に不規則です。これはJenkins経由でも可能ですが、アプリのデプロイメントよりも高い「ペイ・グレード」になっています。単純にする; Jenkinsのビルドでは、テストとデプロイのためにアプリケーションを管理している場合は、サーバーではなくアプリケーションに焦点を当ててください。

ジェンキンスは魔法ですが、それは心の読者ではありません。あなたがそれを伝えない限り、あなたが言ったことは何もしません。つまり、あなたが概説したプロセスは、あなたがそれを制定するために使用するどんなツールであれ、合理的なものです。ジェンキンスはあなたがそれを適切に設定すれば、確かにそうすることができます。

+0

私のプロジェクトにはdeploy.shファイルがあります。これには、コードをビルドしてデプロイする手順が含まれています。私はジェンキンスがこのファイルを読むと思っています。しかし、どこにそれに来るのですか? – TheCoder

+0

あなたはmaven、gradle、antタスク、または/を実行することができ、多くのタスクを実行するシェルスクリプトを実行できます。 deploy.shは、Mavenから完全に独立していてもかまいません。 – 7663233

+0

Jenkinsは適切なプラグインでMaven対応です。私はただ一つの 'deploy.sh'スクリプトのすべてを必ずしもジャムするつもりはありません。 Jenkinsがあなたのためにいくつかの定型文を扱うようにしましょう。 –

0

全体的に、あなたはそれを正しく得ました。

ジェンキンズは基本的に何かを(理由の中で)行うために作られています。あなたが設定できるものは数多くあります。 ジョブは、リポジトリをポーリングすることによって、手動で、フックによって、およびタイマーによって開始することができます。多くの職場では古いポーリング戦略から離れて、新しいものをgit-hooksで使用します。

ジェンキンスは、アプリケーションサーバーを起動/停止するシェルスクリプトを実行できますが、前回のポスターで書いたように、Jenkinsをシンプルに保ち、テストジョブを実行したり、ビルドしたり、誰かがサーバーを操作できるようにします。

+0

他の誰かがサーバを処理させてください - 誰ですか? – TheCoder

+1

あなたは時々あなたのものを書いて、あなたはそれが奇妙に思えます。あなたのコメントを追加することで私はビルドシステムをもっと徹底的に調べます。そして、悲しいかな、私たちのJenkinsの仕事は、私たちのサービスが成果物を展開するのを止めて、サービスを再び開始します。だから私はその部分に180ここに:) – 7663233

関連する問題