2017-02-13 6 views
0

私はジェンキンスではかなり新しく、ジェンキンスコンソールからの出力を除外したいのですが、私のUNIXスクリプトのjson出力はジェンキンスジョブで実行します。 私のシナリオを単純化するために、 json出力を返すMyScript UNIXスクリプトがあります。 jenkinsジョブは、 "Execute shell"ビルドアクションを使用してMyScriptの実行をラップします。私はジェンキンスジョブを実行すると は、にMyScriptが実行され、出力以下ジェンキンスコンソール出力を返します:上記の出力からジョブのジェンキーコンソール出力のフィルタリング

Started by remote host ... 
Building remotely on ... in workspace ... 
Set build name. 
New build name is '#11-/products/software/myScript.py' 
[ScriptWrapper] $ /bin/sh -xe /tmp/hudson9139846468482145951.sh 
+ /products/software/myScript.py -t ... 
{'ip': '...', 'host': '...'} 
Set build name. 
New build name is '#11-/products/software/myScript.py' 
Variable with name 'BUILD_DISPLAY_NAME' already exists, ... 
Finished: SUCCESS 

私は「{」である私のUNIXスクリプトの唯一のJSON出力をフィルタリングしたいと思いますip ':' ... '、' host ':' ... '}」と入力します。

curl -s -k -u ... --request GET "https://<jenkins uri>/jenkins/view/ScriptWrapper/job/ScriptWrapper/19/consoleText" 

私たちは、解析規則ファイルを定義しようとしたが、これに:私たちはREST API経由でジェンキンスジョブを呼び出し、我々が呼ばれるUNIXスクリプトの唯一のJSON出力を取得する必要があるとして、それが必要とされていることを 私たちは、コンソール出力のいくつかの行を "解析されたコンソール出力" jenkinsビューで強調表示することしかできません。また は、この「解析されたコンソール出力が」のREST APIを経由してアクセスできないようです:

curl -s -k -u ... --request GET "https://<jenkins uri>/jenkins/view/ScriptWrapper/job/ScriptWrapper/19/parsed_console" 

- >それはジェンキンスのコンソール出力をフィルタリングする方法はあり

動作しませんか? また、Jenkins Groovy Postbuild Pluginを使用する可能性も評価しています。それが助けになると思いますか? 私は事前に何か提案していただきありがとうございます。

答えて

1

質問を正しく理解していれば、必要なテキストのみを含むきれいな出力を生成したいのですか? もしそうなら、シェルスクリプトを修正してファイルに出力し、Jenkinsの "archive artifact"関数を使ってファイルの内容を利用できるようにするか、 "html publisher"プラグインを使ってそのファイルを "公開"します。 https://wiki.jenkins-ci.org/display/JENKINS/HTML+Publisher+Plugin

第3の選択肢は、必要な文字列の区切り文字として「マジッククッキー」を出力するようにシェルスクリプトを変更することです。 このようにして、REST APIを使用してコンソール出力全体を取得し、簡単な正規表現を使用して簡単にテキストを除外することができます。

+0

こんにちはTimmy、 はい、スクリプトから返されたjson出力のみを生成します。 3番目のオプションは次のようには適用されません。 1)外部アプリはジェンキンの残りのAPIを要求し、xml/jsonの結果のみを返します。 ERRディレクトリ「/ジェンキンス/ワークスペース/ ScriptWrapper /応答は」は失敗した存在:のMyScriptはJSON出力 オプションHTMLの出版社を返す)ジェンキンスはにMyScript 3を実行するためのシェルビルドアクションを実行)正規表現 2を使用してテキストをフィルタリングすることができません'/ jenkins/jobs/ScriptWrapper/htmlreports/Job_Response'にコピーする index.htmlをどのように構成する必要がありますか? または、myScriptはhtml出力を返します。このようなindex.htmlを生成する必要がありますか? – nuvola

+0

こんにちはTimmy、 htmlサイト運営者によるエラーの詳細をご確認ください。 オプションhtmlサイト運営者: HTML dir:./response インデックスページ:index。[/ jenkins/workspace/ScriptWrapper/response]ディレクトリは存在しますが、 '/ jenkins/jobs/ScriptWrapper/htmlreports/Job_Response'へのコピーに失敗しました。 エラー:エラー:ディレクトリ '/ jenkins/workspace/ScriptWrapper/ – nuvola

+0

htmlパブリッシャーのエラーについてはわかりません。それはどんなファイルでも公開できるはずです。あなたは "アーカイブアーティファクト"機能を試しましたか? –

関連する問題