[CI] Werckerのビルドを独自の環境変数付きで起動する
こんにちは、ナカエです。
ここ数日、Werckerのビルド時にプルリクエストの差分に対して静的解析をかけ、結果をフィードバックしたいと思い、いろいろと試していました。
Werckerのビルドはデフォルトではブランチ名とコミットハッシュくらいしかGIT関連の環境変数が含まれていません。そのため、 プルリクエストのIDとマージ先ブランチの情報を追加する必要がありました。
調べてみると、WerckerのRuns APIを利用すれば任意の環境変数を追加した状態でビルドできるようでした。
トークンの発行
WerckerのAPIはBearerトークンで認可を行えます。
ドキュメントの API → Getting Started → Authenticationにある通り、管理画面の Settings → Personal TokensにてAPI用のトークンを発行します。
※APIから起動したいアプリケーションのパイプラインの実行権限を、トークンを発行したアカウントが持っていることを確認しておきます。
cURLでAPIを叩いてみる
ドキュメントのJSON Payloadの項目を参考に、APIのエンドポイントにアクセスしてみます。envVarsなる項目にて、好きな環境変数を追加できます。
WERCKER_TOKEN="abcde123456789abcde" #管理画面から発行したPersonal Token
PIPELINE_ID="aaaaaaaaaaaa" #起動したいパイプラインのID 管理画面から確認可能
SOURCE_BRANCH="feature_hoge" #ソースブランチ名
COMMIT_HASH="123456789" #ソースブランチの最新コミットのハッシュ
DEST_BRANCH="master" #ソースブランチ名
PULL_REQUEST_ID="1111" #プルリクエストのID
curl -H "Authorization: Bearer ${WERCKER_TOKEN}" -H "Content-Type: application/json" -d "{\"pipelineId\":\"${PIPELINE_ID}\",\"branch\":\"${SOURCE_BRANCH}\",\"commitHash\":\"${COMMIT_HASH}\", \"envVars\": [ {\"key\": \"DEST_BRANCH\", \"value\" : \"${DEST_BRANCH}\" }, {\"key\":\"PULL_REQUEST_ID\", \"value\": \"${PULL_REQUEST_ID}\" } ] }" https://app.wercker.com/api/v3/runs
新しくビルドが起動し、そのビルドではDEST_BRANCHとPULL_REQUEST_IDという環境変数が設定されていることが管理画面から確認できます。