Communityコーディング&開発github.com

ComposioHQ/deploy-pipeline

Composio CLI を使って、Stripe、Supabase、Vercel 上でエンドツーエンドのデプロイパイプラインを実行します。Stripe の商品プロモーション、Supabase のマイグレーション適用、Vercel へのデプロイ、そしてデプロイ後の確認チェックをすべて1つのスクリプトで行います。

deploy-pipeline とは?

このスキルは、Composio CLI を活用して、Stripe(課金)、Supabase(データベース)、Vercel(フロントエンド)を横断する段階的リリースパイプラインを自動化します。料金プラン(Stripe)の作成/更新、データベースマイグレーション(Supabase)の適用、本番デプロイ(Vercel)の実行、ヘルスチェックによる確認、そして Slack へのリリースアナウンスまでを1つのスクリプトまたは CLI コマンドで順序立てて実行します。特に、Stripe→Supabase→Vercel→確認→アナウンスという順序が重要で、課金変更をデータベース変更より先に、データベース変更をフロントエンドデプロイより先に行うことで、整合性を保ちます。また、パイプライン失敗時のためのロールバック手順も逆順で定義されており、実運用での信頼性を高めます。対応プラットフォームは Composio CLI(macOS/Linux)で、開発者ツールとしてターミナルベースの自動化を好むチームに最適です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ComposioHQ/awesome-codex-skills/tree/main/deploy-pipeline

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

デプロイパイプライン (Stripe / Supabase / Vercel)

Composio CLI を使って、シェルから Stripe、Supabase、Vercel を横断した段階的リリースを調整します。1つのスクリプトで「出荷だ!」という一連の流れ(製品/価格の更新、DBマイグレーション、フロントエンドデプロイ、スモークテスト、チェンジログ投稿)を開始できます。

いつ使うか

  • 🫸課金、データベース、フロントエンドが連動するフルスタック製品のローンチ。
  • Vercel のプレビュービルドを本番に昇格させ、Stripe の価格変更と Supabase のマイグレーションを同時に行う場合。
  • 毎週のリリーストレインで、同じシーケンスを繰り返し実行し、信頼性を確保したい場合。

前提条件

curl -fsSL https://composio.dev/install | bash
composio login
composio link stripe
composio link supabase
composio link vercel
composio link slack        # リリース告知用

ツールの確認

composio search "create price" --toolkits stripe
composio search "apply migration" --toolkits supabase
composio search "create deployment" --toolkits vercel
composio tools list stripe
composio tools list supabase
composio tools list vercel

よく使うスラッグ(--get-schema で確認すること):

Stripe

  • STRIPE_CREATE_PRODUCT
  • STRIPE_CREATE_PRICE
  • STRIPE_UPDATE_PRODUCT
  • STRIPE_LIST_PRICES

Supabase

  • SUPABASE_LIST_PROJECTS
  • SUPABASE_RUN_SQL_QUERY
  • SUPABASE_LIST_MIGRATIONS
  • SUPABASE_APPLY_MIGRATION

Vercel

  • VERCEL_CREATE_A_NEW_DEPLOYMENT
  • VERCEL_GET_A_DEPLOYMENT_BY_ID_OR_URL
  • VERCEL_LIST_DEPLOYMENTS
  • VERCEL_PROMOTE_DEPLOYMENT

パイプライン

実行順序が重要です:Stripe → Supabase → Vercel → 確認 → アナウンス。 課金変更は DB より前に、DB 変更はフロントエンドより前に実施します。

1. Stripe:価格の作成または更新

composio execute STRIPE_CREATE_PRICE -d '{
  "product":"prod_abc123",
  "unit_amount":2900,
  "currency":"usd",
  "recurring":{"interval":"month"},
  "lookup_key":"team-plan-v2"
}'

2. Supabase:マイグレーションの適用

composio execute SUPABASE_APPLY_MIGRATION -d '{
  "project_id":"abcxyz",
  "name":"add_team_tier_column",
  "query":"alter table teams add column tier text default '\''free'\'';"
}'

スキーマを簡単に確認:

composio execute SUPABASE_RUN_SQL_QUERY -d '{
  "project_id":"abcxyz",
  "query":"select column_name from information_schema.columns where table_name='\''teams'\'' and column_name='\''tier'\'';"
}'

3. Vercel:デプロイ + 昇格

# git 参照から本番デプロイをトリガー
composio execute VERCEL_CREATE_A_NEW_DEPLOYMENT -d '{
  "name":"web",
  "target":"production",
  "gitSource":{"type":"github","ref":"main","repoId":123456}
}'

準備完了までポーリング:

composio execute VERCEL_GET_A_DEPLOYMENT_BY_ID_OR_URL -d '{"idOrUrl":"dpl_xxx"}' \
  | jq '.readyState'

4. 確認

curl -fsS https://app.acme.com/api/health
composio execute SUPABASE_RUN_SQL_QUERY -d '{
  "project_id":"abcxyz","query":"select count(*) from teams where tier is null;"
}'

5. アナウンス

composio execute SLACK_SEND_MESSAGE -d '{
  "channel":"releases",
  "text":"✅ Team Plan v2 を出荷しました。Stripe 価格 `team-plan-v2` 公開、Supabase マイグレーション適用、Vercel 本番デプロイ昇格完了。"
}'

パイプラインをワークフローファイルとして

scripts/ship.ts を composio run --file scripts/ship.ts -- --ref main で実行:

const ref = process.argv[process.argv.indexOf("--ref") + 1] ?? "main";

// 1. Stripe
const price = await execute("STRIPE_CREATE_PRICE", {
  product: "prod_abc123", unit_amount: 2900, currency: "usd",
  recurring: { interval: "month" }, lookup_key: "team-plan-v2"
});

// 2. Supabase
await execute("SUPABASE_APPLY_MIGRATION", {
  project_id: "abcxyz",
  name: "add_team_tier_column",
  query: "alter table teams add column tier text default 'free';"
});

// 3. Vercel
const dep = await execute("VERCEL_CREATE_A_NEW_DEPLOYMENT", {
  name: "web", target: "production",
  gitSource: { type: "github", ref, repoId: 123456 }
});

// 4. 準備完了を待つ
let state = "QUEUED";
while (state !== "READY" && state !== "ERROR") {
  await new Promise(r => setTimeout(r, 4000));
  const d = await execute("VERCEL_GET_A_DEPLOYMENT_BY_ID_OR_URL", { idOrUrl: dep.id });
  state = d.readyState;
}

if (state !== "READY") throw new Error("Vercel デプロイに失敗しました");

// 5. アナウンス
await execute("SLACK_SEND_MESSAGE", {
  channel: "releases",
  text: `✅ ${ref} を出荷しました。Stripe 価格 ${price.id}、Vercel ${dep.url}.`
});

ロールバック計画

確認に失敗した場合は、逆順で元に戻します:

  1. Vercel:VERCEL_PROMOTE_DEPLOYMENT で以前のデプロイIDに戻します。
  2. Supabase:ダウンマイグレーションを適用します(出荷前に対となる down.sql を必ず書いておくこと)。
  3. Stripe:STRIPE_UPDATE_PRODUCT で新しい価格を非表示にします(active:false)。削除はしないでください — Stripe オブジェクトは実質的に不変であり、過去の請求書に影響を与えます。
  4. Slack:ロールバックをアナウンスします。

トラブルシューティング

  • Stripe の価格が表示されても、チェックアウトに古い価格が表示される → アプリ側のキャッシュが原因です。lookup_key がチェックアウトで取得しているものと一致しているか確認してください。
  • Supabase マイグレーションがハングする → 別の接続がロックを保持しています。select pid, state, query from pg_stat_activity where state <> 'idle'; を実行してください。
  • Vercel デプロイが QUEUED で止まる → VERCEL_GET_A_DEPLOYMENT_BY_ID_OR_URL に ?logs=1 を付けてビルドログを確認してください。
  • 順序バグ(フロントエンドがマイグレーション適用前のカラムを読み取る) → 必ずパイプラインを直列化してください。Stripe/Supabase/Vercel 間で --parallel を使用しないでください。

CLI リファレンス全文: docs.composio.dev/docs/cli

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

ComposioHQ/-21risk-automation

Automate 21risk tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/-2chat-automation

Automate 2chat tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/ably-automation

Automate Ably tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/abstract-automation

Automate Abstract tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/abuselpdb-automation

Automate Abuselpdb tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/abyssale-automation

Automate Abyssale tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/accelo-automation

Automate Accelo tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/accredible-certificates-automation

Automate Accredible Certificates tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/acculynx-automation

Automate Acculynx tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/active-campaign-automation

Automate ActiveCampaign tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/addresszen-automation

Automate Addresszen tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/adobe-automation

Automate Adobe tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/adrapid-automation

Automate Adrapid tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/adyntel-automation

Automate Adyntel tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/aeroleads-automation

Automate Aeroleads tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/aero-workflow-automation

Automate Aero Workflow tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/affinda-automation

Automate Affinda tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/affinity-automation

Automate Affinity tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/agencyzoom-automation

Automate Agencyzoom tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/agent-deep-links

Build, validate, and troubleshoot deep links for Codex, Cursor, VS Code, Visual Studio, and similar tools. Use when users ask for clickable links (especially in Slack) that open threads, files, folders, or app settings.

関連スキル