16

IRC プラグインなどと同じ出力を得ることができるように、ビルド後のフックなどを用意したいと思いますが、それをスクリプトに渡します。実際のビルドステータスを除いて、すべての情報を取得できました。これは、「ビルド後のスクリプト」、「ビルド後のタスク」、「パラメーター化されたトリガー」としても機能しません。

いくつかの非常に醜い回避策で可能ですが、誰かがより良いオプションを持っている場合に備えて、私は尋ねたかったのです...私自身のプラグインを書くことはできません.

4

7 に答える 7

9

Groovy Post-Build Plugin で述べたように動作しますが、実行される文字列内に余分な引用符はありません。そのため、実際の機能をシェル スクリプトに入れなければなりませんでした。これは、curl を呼び出すため、POST パラメーターの引用符も必要です。

def result = manager.build.result
def build_number = manager.build.number
def env = manager.build.getEnvironment(manager.listener)
def build_url = env['BUILD_URL']
def build_branch = env['SVN_BRANCH']
def short_branch = ( build_branch =~ /branches\//).replaceFirst("")
def host = env['NODE_NAME']
def svn_rev = env['SVN_REVISION']
def job_name = manager.build.project.getName()


"/usr/local/bin/skypeStagingNotify.sh Deployed ${short_branch} on ${host} - ${result} - ${build_url}".execute()
于 2012-08-22T15:31:34.123 に答える
8

Groovy Post-Build pluginを使用して、ビルド後のステップで Groovy スクリプトを使用します。その後、 Jenkins Java APIを介して Jenkins の内部にアクセスできます。プラグインは、API の重要な部分にアクセスするために使用できる変数マネージャーをスクリプトに提供します (プラグイン ドキュメントの使用セクションを参照してください)。

たとえば、Windows で単純な外部 Python スクリプトを実行し、その結果 (およびビルド結果) をビルド コンソールに出力する方法を次に示します。

def command =  """cmd /c python -c "for i in range(1,5): print i" """
manager.listener.logger.println command.execute().text

def result = manager.build.result
manager.listener.logger.println "And the result is: ${result}"
于 2012-06-20T21:36:09.880 に答える
0

Post Build Taskプラグインを試す...

ログ出力に基づいて条件を指定できます...

于 2013-03-20T10:27:54.283 に答える
0

基本的な解決策(笑わないでください)

#!/bin/bash
STATUS='Not set'
if [ ! -z $UPSTREAM_BUILD_DIR ];then
  ISFAIL=$(ls -l /var/lib/jenkins/jobs/$UPSTREAM_BUILD_DIR/builds | grep "lastFailedBuild\|lastUnsuccessfulBuild" | grep $UPSTREAM_BUILD_NR)
  ISSUCCESS=$(ls -l /var/lib/jenkins/jobs/$UPSTREAM_BUILD_DIR/builds | grep "lastSuccessfulBuild\|lastStableBuild" | grep $UPSTREAM_BUILD_NR)
  if [ ! -z "$ISFAIL" ];then
     echo $ISFAIL
     STATUS='FAIL'
  elif [ ! -z "$ISSUCCESS" ]
  then
     STATUS='SUCCESS'
  fi
fi
echo $STATUS

どこ

$UPSTREAM_BUILD_DIR=$JOB_NAME

$UPSTREAM_BUILD_NR=$BUILD_NUMBER

上流のビルドから渡された

もちろん、「/var/lib/jenkins/jobs/」はジェンキンスのインストールに依存します

于 2019-01-25T11:21:00.913 に答える