背景
CI Wercker

[CI] Werckerのビルドを独自の環境変数付きで起動する

こんにちは、ナカエです。

ここ数日、Werckerのビルド時にプルリクエストの差分に対して静的解析をかけ、結果をフィードバックしたいと思い、いろいろと試していました。

Werckerのビルドはデフォルトではブランチ名とコミットハッシュくらいしかGIT関連の環境変数が含まれていません。そのため、 プルリクエストのIDとマージ先ブランチの情報を追加する必要がありました。

調べてみると、WerckerのRuns APIを利用すれば任意の環境変数を追加した状態でビルドできるようでした。

参考: Trigger a new run

トークンの発行

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という環境変数が設定されていることが管理画面から確認できます。

≪ [Laravel] Clockworkの表示をカスタムする  | 

Web制作のお問い合わせ

075-744-6842

(平日/土曜 10:00~17:00)

 お問い合わせ