2017-09-13 2 views
1

私はJenkinsを使ってテストしたい簡単なRESTアプリケーションを持っています。 Jenkinsビルドは、バイナリをコンパイルし、パラメータ付きのシェルで実行し、Jenkinsプラグインを使用してアプリケーションにHTTP POSTを送信します。同じJenkinsビルド内で起動されたアプリケーションにHTTPリクエストを送信するにはどうすればよいですか?

問題は、Executeシェルが終了するまでHTTPリクエストビルドステップが実行されないため、常に408エラーが発生することです。

シェルスクリプトをいくつかのHTTPリクエストを送信できるほど長く実行してもらうにはどうすればよいですか?誰かがJenkins Pipelinesを提案しましたが、それはここで必要とされるよりも重視されています。

答えて

0

要約すると、ビルドプロセスの実行中にアプリケーションを実行させる必要があります。

あなたが望むものを達成するために、あなたは(おそらくLinuxのOSの下で、コマンドの最後に&またはdaemonizeのようなツールを使用して)シェル通話中にバックグラウンドでアプリケーションを起動しなければならないでしょうが... しかし、ジェンキンスはあなたにそのようなことを許可しません...あなたがそれにささやく方法がわからない場合)

ジェンキンズが記述中に記述子をリークして処理することを許可するには、現在のBUILD_ID以外のものにBUILD_IDを設定するというトリックを使用します。

こうすることで、あなたは後に発生した別のステップでは、ビルドステップでアプリケーションを起動し、できるようになります十分に明示する必要がありますあなたのデーモン化アプリケーションを開始する前にset BUILD_ID=dontKillMeよう

何か、あなたはなるだろうHTTPリクエストを送信することができます。

ビルドが完了する前にアプリケーションを停止して、このプロセスが何もせずにメモリを保持してしまわないようにすることを忘れないでください。

You can find more details on the Jenkins Wiki

0

アプリケーションは、Linux上で動作する場合は、「画面」と、バックグラウンドで起動することができます。

関連する問題