2016-05-25 5 views
0

上位レベル - ジーンズを使用してジョブを作成すると、データベースからデータを取得し、抽出したデータをそのジョブに表示したり、そのジョブのアーティファクトとしてアタッチすることができます?データベースからデータを取り出してジーンズに表示するジョブ

考えられる1つのオプション - ビルドステップが 'Pythonスクリプトの実行'であるジョブを作成します。このスクリプトは、データベースに接続してデータを取得します。

c = sqlite3.connect('db_path.db') 
cur = c.cursor() 
cur.execute("SELECT column_name from table_name LIMIT 11") 
test = cur.fetchall() 

そして、それ

<table> 
    {% for row in test %} 
    <tr> 
    <th> {{ row[0] }}</th> 
    </tr> 
    {% endfor %} 
</table> 

のようなテンプレートか何かを使用してHTML形式で結果をダンプしかし、ここでの質問は、どのように私はジェンキンスジョブでこのhtmlファイルを表示したり、アーチファクトとして添付し、考慮するか、ですこのジョブはさまざまなジョブに複数回使用されます。 私はHTML Publisher Pluginを使うことができましたが、私の場合HTML名は静的ではないという制限があります。そして私はこれが私の場合にはうまくいかないと思うし、htmlをどうやってpython fetchall()にリンクするのか分からない。

誰でもこれを手伝ってください。このアクティビティを実行するための他の/より良いオプションはありますか?

質問1:fetchAll()からhtmlページへの接続を確立するにはどうすればよいですか?

質問2:HTML Publisher Pluginで、index.htmlが公開に使用されたhtmlページであることがわかりました。このページは標準テンプレートですか?または毎回異なる設定のジョブを実行すると、このページは異なるでしょうか?

私はそれを行う方法がわかりません! :

答えて

0

ジョブが動的である場合は、Description pluginを使用して各実行が意味をなされるようにジョブの説明を追加することもできます。あなたは限界がどこにあるか?

データを埋めるために、あなたのプロセスは、あなたがやりたいことのためにOKに聞こえる一般的になど、あなたがアーティファクトでどのように多く、維持したいと思いますどのように多くの場合

を定義することができます設定PythonでHTMLに変換するには、Mako.Templatesを使用できます。

例:

from mako.template import Template 
from mako.lookup import TemplateLookup 
from mako.runtime import Context 



def fill_template(template, data): 
    lookup = TemplateLookup(directories=["templates"]) 
    mytemplate = Template(filename=template, lookup=lookup) 
    buf = io.StringIO() 
    ctx = Context(buf, data=data) 
    mytemplate.render_context(ctx) 
    htm = buf.getvalue() 
    print(htm) 

    file = open("Report/index.html", "wb") 
    file.write(bytes(htm.encode('utf-8'))) 
    file.close() 
    return 0 

fdata = {'test':data} 
fill_template("templates/digest.html", fdata) 

テンプレートファイル:

<table style="border-bottom:solid black 1pt; cellspacing:5%"> 
    % for test in sorted(data['test']): 
    <tr> 
    .... Do something with test data (depends on how you store it) ... 
    </tr> 
    % endfor 
</table> 
+0

質問で私のポストを編集 –

+0

編集可能な答えを持つ鉱山。 – Dvir669

+0

これは有益です@ Dvir669、ありがとうございます。しかし、私が_digest.html_と_index.html_ digest.htmlを継承している** template **のコンテンツがある場合、Jenkinsに表示された履歴データが必要であると考えて、複数のhtmlファイル(1回の実行に対して1つのhtmlファイル)以前のジョブの実行まで)。申し訳ありませんが、まだ不明です:(私のために –

関連する問題