PhysifApps

趣味と開発メモ保管庫

DeployGateへアップロードする時のレスポンスからリビジョンなどを取得したい【Jenkins】

ビルドしたアプリケーションのデータをJenkinsからDeployGate APIを使ってDeployGateにアップロードする時に、レスポンスからリビジョンとかを取得したい時のメモ。

割とごり押したとこがあるのでもっといい書き方あれば教えてください。

レスポンスを格納

まずはレスポンスを格納する。格納したら絞り込みをして取得。

response=$(curl \
  -F "token=apikey" \
  -F "file=@sample.apk" \
  -F "message=description" \
  https://deploygate.com/api/users/name/apps)

リビジョンを取得する

jqコマンドで絞り込む

格納してから、jqコマンドで絞り込みすれば楽に取りたい要素を取れる。

${response} | jq '.hoge[].fuga'

sedを使う

jqコマンドを使わずにsed正規表現で抜き出してみる。書き方はこんな感じ。

rev=`echo ${response} | sed -r 's/^.*"revision":([0-9]+).*$/\1/'`

revisionの所と文字の指定の所を変えれば(例:message)対応するレスポンスを取り出せる。

注意としては、macにJenkinsを入れている場合、rオプションを使うと、

sed: illegal option -- r

で怒られるので、-r-Eに書き換えて実行する。