LoginSignup
0

More than 5 years have passed since last update.

Jenkinsの環境変数にjsonを読みこませる

Last updated at Posted at 2016-01-31

Jenkinsでjsonを読み込む方法

(Linux,MACで確認)

とある事情でjson形式のファイルからjenkinsの環境変数にセットする方法を探しておりました。
結論として見つからなかったので、かなり見苦しい力技でやってしまったので、もしこんなプラグイン使えば一発だよっていうのがあったら教えて下さい。。。

準備

jq コマンドをインストール
→ json整形用のコマンドです。yumでもbrewでもいいのでとりあえずインストールしてください。
EnvInject PluginをJenkinsにいれておく

なんらかの理由でどちらかがでもできない場合は別の方法を模索してください。

ざっくりとした(力技の)流れ

1.jsonファイルを用意
2.jqによるjson解析→iniファイル形式に書き出す
3.iniファイルをJenkinsの環境変数に読み込ます

手順詳細

1.jsonファイルを用意

sample.json
{
    aaa : 1,
    bbb : 2
}

2.jqによるjson解析(以下のようなshをJenkinsの手順に登録)

getJson.sh
#!/bin/sh
A_NUM=$(cat sample.json | jq -r '.aaa')
echo "A_NUM=${A_NUM}" >> ini.txt

3.iniファイルをJenkinsの環境変数に読み込ます
Jenkinsのビルド手順から「環境変数のインジェクト」を選択
(もちろん EnvInject Plugin が入ってないと、標準ではありません)
「プロパティファイルのパス」のところに、先ほどの「ini.txt」を記載します。

プロパティファイルのパス [./ini.txt] (workspace直下にファイルがある場合)

4.これで、Jenkins上で環境変数として扱えます。
何かの引数に使うなり、別のジョブへの引数に使ったり用途はいかようにも。

echo ${A_NUM}

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0