Sooey

2026-04-11 11:18:38 +0900

Hatchboxでデプロイが完了した時にNew RelicのReleaseを作成する方法

まず、Hatchboxのアプリに以下の環境変数を設定しておく。

  • NEW_RELIC_API_KEY: New RelicのUser API Key ("NRAK-*")
  • NEW_RELIC_ENTITY_GUID: New Relicのアプリ毎の識別子 (アプリ名横のiアイコンを押して"Metadata"タブで確認できる)

そのうえで、Hatchboxのアプリ毎の"Settings - Deploy Scripts - Post-deploy script"にて以下のスクリプトを設定する。

NR_API_KEY="${NEW_RELIC_API_KEY}"
NR_ENTITY_GUID="${NEW_RELIC_ENTITY_GUID}"

# 1. バージョン情報の取得 (REVISIONファイルがあれば使用、なければ日時)
DEPLOY_VERSION=$(cat REVISION 2>/dev/null || date +%Y%m%d-%H%M%S)

# 2. GraphQLクエリの組み立て
read -r -d '' JSON_PAYLOAD <<EOF
{
  "query": "mutation { changeTrackingCreateDeployment(deployment: {entityGuid: \"$NR_ENTITY_GUID\", version: \"$DEPLOY_VERSION\", user: \"Hatchbox\"}) { deploymentId } }"
}
EOF

# 3. New Relic APIへのリクエスト実行
curl -s -X POST 'https://api.newrelic.com/graphql' \
     -H "Api-Key: $NR_API_KEY" \
     -H "Content-Type: application/json" \
     --data "$JSON_PAYLOAD"

デプロイを実施してみて、デプロイログのApps::Deployで以下のような出力があれば成功。

-----> Deploy complete
-----> Running post deploy script on サーバー名...
-----> Post deploy script finished.