deployments について
Deploymentsは、monorepo内のtelecine、elements、skillsに関するデプロイ作業を扱うスキルです。リリース経路、スクリプト、インフラストラクチャ、トラブルシューティング手順をまとめています。
主な機能
- 01telecineのCloud Runデプロイ手順
- 02elementsのnpmリリース手順
- 03skillsドキュメントの公開
- 04デプロイとCIの補助スクリプト一覧
- 05インフラとトラブルシューティング
活用シーン
- 01CIを通じたtelecineサービスのデプロイ
- 02elementsリリースの準備または公開
- 03skillsドキュメントの公開
- 04デプロイ障害や本番エラーの調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ editframe/ skills --skill deploymentsインストール後、Claude Code で/deploymentsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/elements.mdskills.mdtelecine.mdtroubleshooting.md詳細
デプロイ
このモノレポには、3つのデプロイ経路があります。
- telecine -- Pulumi 経由でデプロイされる GCP Cloud Run サービスです。デプロイは、PR を
mainにマージし、CI(integration、playwright、typecheck)が成功することを条件とします - elements -- git タグをプッシュすると公開される npm パッケージです
- skills --
scripts/push-skills経由でskillsリモートに公開される公開ドキュメントです
スクリプト
telecine と elements は兄弟リポジトリで、モノレポと同じ ~/Editframe/worktrees/<branch>/ 配下にクローンされています。兄弟リポジトリのディレクトリ内から標準の git push origin を使ってプッシュします。サブツリーのプッシュスクリプトはありません。
| スクリプト | 用途 |
|---|---|
scripts/push-skills | スキルを生成してリモートにプッシュ |
scripts/wait-for-telecine-action | telecine のデプロイ CI をポーリング(30 秒間隔) |
scripts/wait-for-elements-action | elements のリリース CI をポーリング(30 秒間隔) |
scripts/wait-for-github-action <repo> | 任意のリポジトリを対象とする汎用 CI ポーラー |
scripts/gh-logs <repo> [run-id] | CI 実行の失敗したジョブのログを取得 |
scripts/deploy-info telecine | サービス、リソース、ルート、シークレット |
scripts/deploy-info elements | パッケージ、リリースパイプライン |
クイックリファレンス
| 操作 | コマンド |
|---|---|
| telecine をデプロイ | ブランチをプッシュ → PR を作成 → CI の成功を確認 → main にマージ → scripts/wait-for-telecine-action |
| telecine ブランチをプッシュ | git push origin <branch>(worktrees/<branch>/telecine/ 内から) |
| 特定のサービスを手動でデプロイ | telecine/scripts/build-and-push web scheduler-go |
| すべてのサービスを手動でデプロイ | telecine/scripts/build-and-push-all |
| Pulumi を直接実行 | cd telecine/deploy && pulumi up |
| elements のリリースを準備 | elements/scripts/prepare-release <version>(兄弟の elements リポジトリ内から) |
| elements を beta に更新 | elements/scripts/prerelease |
| elements を手動で公開 | elements/scripts/publish |
| skills ドキュメントを公開 | scripts/push-skills |
| skills のリリースにタグを付ける | git push skills $(git rev-parse skills/main):refs/tags/v<version> |
| CI のステータスを確認 | scripts/gh-logs editframe/telecine |
| CI が完了するまでポーリング | scripts/wait-for-telecine-action |
Telecine(GCP Cloud Run)
Telecine は GCP Cloud Run 上で稼働し、telecine/deploy/ の Pulumi(TypeScript)で管理されています。Docker イメージには git SHA のタグが付けられ、GCP Artifact Registry にプッシュされます。main へのプッシュにより、すべてのサービスの Docker ビルドが並行して開始され、その後 Pulumi によるデプロイが行われます。
サポートするインフラストラクチャには、Cloud SQL Postgres、Compute Engine 上の Valkey(Redis)、GCS ストレージバケット、URL マップによるルーティングを備えた HTTPS ロードバランサー、Cloudflare DNS が含まれます。
Web の Docker ビルド(Tailwind クラスのスキャンと実行時のドキュメント配信)のため、スキルのソースファイルは telecine サブツリー内の telecine/skills/skills/ に埋め込まれています。
現在のサービス一覧、各サービスのリソース割り当て、ロードバランサーのルート、シークレットを確認するには、scripts/deploy-info telecine を実行します。
デプロイのアーキテクチャと手順については、references/telecine.md を参照してください。
Elements(npm)
Elements は Trusted Publishing(OIDC)経由で @editframe パッケージを npm に公開します。任意の git タグをプッシュすると、リリースワークフローが開始されます。タグに「beta」が含まれている場合は beta npm dist-tag で公開され、それ以外は latest で公開されます。
現在のパッケージ一覧とリリースパイプラインの手順を確認するには、scripts/deploy-info elements を実行します。
リリースワークフローとバージョン管理については、references/elements.md を参照してください。
Skills(公開ドキュメント)
Skills は skills/skills/ のソースファイルから生成され、editframe/skills GitHub リポジトリに公開される、一般公開向けのドキュメントです。生成時に人間向けのメタデータ(nav、track、sections、api)は取り除かれ、LLM に必要な frontmatter のみが残ります。
scripts/push-skills
# Tag with the same version as elements
git fetch skills main
git push skills $(git rev-parse skills/main):refs/tags/v<version>
CI はありません。プッシュがそのままデプロイになります。Skills には、elements のリリースで使用したものと同じバージョンでタグを付けてください。
ビルドプロセスとソースファイルの規約については、references/skills.md を参照してください。
トラブルシューティングと運用
本番環境のエラーを調査する際は、まずreferences/troubleshooting.mdのエラーのトリアージワークフローに従います。最初に Error Reporting API でグループ化されたエラーを確認し、次に Cloud Run のログを詳しく調べ、最後にリビジョンと関連付けてデプロイが問題の原因かどうかを特定します。
ロールバックの手順、CI 失敗のデバッグ、リソースのスケーリング、シークレットの管理についても、references/troubleshooting.mdで説明しています。
このスキルを使用する場面
次のような場合に、このスキルを使用します。
- 本番環境のエラーやサービスの健全性に関する問題を調査する
- サービスやパッケージをデプロイする
- デプロイの失敗を調査する
- 問題のあるリリースをロールバックする
- サービスのリソース制限(CPU、メモリ、インスタンス数)を調整する
- シークレットを追加またはローテーションする
- サービスのルーティング方法(ロードバランサー、DNS)を把握する
- elements のリリースを準備または公開する