Jenkinsでbashスクリプトを実行する方法を知っています。ただし、qsubを使用してbashスクリプトをOGEシステムに送信すると、Jenkinsは自分のジョブが終了したかどうかをどのようにして知ることができますか?
3 に答える
qsub で「-sync y」を使用して、ジョブが完了するまで qsub を待機させることができます。
Jenkins では、Web ベースの API を使用してビルドの結果を送信できます。現在、これを使用して、組織のグリッドのジョブをリモートで監視しています。jenkins サーバーへの Web 投稿を実行できる場合は、以下のスクリプトを使用してジョブを実行できます。
#!/bin/bash
MESSAGE="Some message about job success"
RUNTIME="Some calculation to estimate runtime"
USERNAME="userNameForJenkinsLogin"
PASSWORD="passwordForJenkinsLogin"
JENKINS_HOST="URLToJenkins"
TEST_NAME="Name of Test"
curl -i -X post -d "<run><log>$MESSAGE</log><result>0</result><duration>$RUNTIME</duration></run>" http://$USERNAME:$PASSWORD@$JENKINS_HOST/jenkins/job/$TEST_NAME/postBuildResult
Jenkins SGE Cloud プラグインは、Sun Grid Engine (SGE) バッチ スケジューラにビルドを送信します。SGE のオープン ソース バージョンと商用の Univa Grid Engine (UGE) の両方がサポートされています。
このプラグインは、バッチ ジョブを SGE に送信する新しいタイプのビルド ステップRun job on SGEを追加します。ビルド ステップは、ジョブのステータスを監視し、進行状況を定期的にビルドのコンソール出力に追加します。ビルドが失敗すると、エラーとジョブの終了ステータスも表示されます。Jenkins でジョブが終了すると、SGE でも終了します。
ビルドは、新しいタイプのクラウドである SGE Cloud によって SGE に送信されます。クラウドには、他のスレーブと同様にラベルが付けられます。ラベルが一致するジョブが実行されると、SGE Cloud はビルドを SGE に送信します。