メインコンテンツまでスキップ
機能 › 開発の管理メニュー:開発の管理 › レビュー › 公開と反映

公開と反映

BeesBuild は、リポジトリごとに「どこまで自動で進めてよいか」をモードで決めます。どのモードでも、本番は人が押します。

開発の段階の 3 つのモード​

実験モード試す人ありモード運用モード
使う時ゼロから作る。客はいない旗を試す人に開けた後。まだ客はいない客がいる。本番に出ている今のシステム
例新しいリポジトリで作る新しいサービス、BeesBuild 自身試す人に出し始めた新しいサービス本番に出ている今のリポジトリ、客ができた後のサービス
マージ自動マージの決まりに合う PR を、コアが GitHub App の名前でマージ。除く物は人自動でマージするのは、持ち場だけ・旗がオフ・危なくない PR だけ。試す人に開けた機能に触る PR と、除く物は人エンジニアがマージの机で 1 本ずつ押す。本人の名前で記録
ステージングマージの後に自動でデプロイ(30 分ごとか 10 本ごとにまとめる。案)同じマージの後に自動でデプロイ(ステージングがあるリポジトリ)
動作確認ゴールごとの自動の確認(スモークと E2E)同じ+試す人に開けた機能の通し試験同じ+人のテスト
本番人が押す人が押す人が押す
壊れた時列を止め、戻す PR を自動でマージし、作ったスレッドへ返す同じ。試す人に開けた機能が壊れたら、旗を閉じるカードも出す戻す PR を作り、エンジニアがマージする

自動マージの条件と除く物は、PR の地図とマージにあります。

main を守るルールセット​

モードルールセットの中身
実験モードPR を通す・必須の CI・force push を止める。承認の数は 0
試す人ありモード実験モードと同じ形に、旗がオフかを見る check を必須に足す(案)
運用モードPR を通す・承認 1 以上・code owners の承認・最新の push の承認・会話の解決・必須の CI・順の check(beesbuild/order)・force push を止める

運用モードのルールセットは、BeesBuild が案(JSON)を作り、人が GitHub の画面で入れます。BeesBuild は入った物を読んで確かめます。GitHub App に、リポジトリの管理の権限を持たせないためです。

モードの切り替え​

切り替え合図押す人
実験 → 試す人あり公開の門で、旗を「試す人」に開ける前。プレイテストでゴールがステージングで動いた時持ち主(確認のカード)
試す人あり → 運用旗を「だれでも」に開ける前・外の人の初めての登録・初めての支払いのどれか持ち主(確認のカード)
前のモードへ戻す持ち主が要ると決めた時持ち主だけ。理由を記録する

切り替えの合図は BeesBuild が見つけ、確認のカードを出します。押すのは持ち主です(作る段と並行の段)。

リポジトリの扱いの決まり​

どのリポジトリをどのモードで扱うかは、利用者が決まりとして作れます。

欄中身
リポジトリの組組織・名前の形・本番に出る枝
モード3 つのどれか
自動の行き先どの枝まで自動でマージしてよいか
統合の枝本番の枝とは別に、自動でマージしてよい枝を持つか
ステージングステージングの有無と、用意を頼む先
依頼と理由用意をほかへ頼むか。そう決めた理由
  • 新しいリポジトリを足した時は、合う決まりを当てて、確認のカードで見せます。
  • 本番の枝への push でそのまま本番に出る既存のリポジトリは、旗がオフでも、マージが本番へのデプロイになります。運用モードにします。
  • その中で新しいサービスを速く回したい時は、統合の枝とステージングを用意してもらい、統合の枝まで自動にします。用意ができるまでは、反映を推定で見せます。この形は雛形として選べます。

公開の門​

公開の画面。左に公開の門の点検の一覧と配る先、右に旗の段(社内・試す人・全員)と公開の記録が並んでいる
公開の門と旗の段画面設計(開発中)・数字は見本

機能は旗で開けます。開ける順は、社内 → 試す人 → だれでもです(提供の予定と範囲)。

旗を開ける前には門があり、次の 4 つがそろうまで開けません。

  • セキュリティの監査で、重さ「高」の指摘が残っていない。
  • AI のテストで「壊れ」(動かない所)が 0 件。
  • main の CI が通っている。
  • 作り手が了承している。

公開の画面には、旗ごとの段(社内・試す人・全員)と、公開の記録(版・段・日付・中身)が並びます。リリースノートは AI が下書きします。先に作る 4 つや説明のページを外に出す前には、規約とポリシーに照らします(規約の線とライセンス)。

ステージングと本番への反映​

物中身
反映の先リポジトリごとに、プレビュー(PR ごと。任意)・ステージング・本番(提供先ごと)。どのホスト名がどの反映の先かもつなぐ(クラウドとドメイン)
デプロイの記録反映の先・sha・時刻・状態・入った PR・確定か推定か

確定と推定​

リポジトリ読み方印
新しいリポジトリデプロイの job に environment を書き、GitHub の deployments の記録と状態を読む確定
記録の無い既存のリポジトリデプロイの workflow の成功した実行の sha を読み、前の成功との間の commit を比べ、commit から PR を引く推定

新しいリポジトリは、デプロイの job に次の 1 行を必ず書きます。どの sha がどの環境に出たかと元の PR が、GitHub の Deployments のページにも残ります。

jobs:
deploy:
environment: production
  • 本番の環境は、main(かリリースのタグ)からだけデプロイしてよい、にします(デプロイしてよい枝の決まり)。
  • 提供先ごとの本番の枝は、main と同じ流れとは限りません。枝ごとに見ます。
  • 推定のリポジトリも、デプロイの job に environment の 1 行を足せば確定になります。

反映の表​

所中身
表行=ゴール(開くと PR)、列=反映の先、升=入った時刻・まだ・推定
マージ済みで本番にまだの PR3 日を超えたら琥珀
ステージングで確認待ち人の確認を待っている物
失敗したデプロイ失敗した反映の先と sha

本番へ出す・戻す​

  1. 確認のカード:何を、どの反映の先へ出すかを読んで押します。
  2. 手動で起こす実行:本人の GitHub のログインで、デプロイの workflow を workflow_dispatch で起こします。
  3. 名簿の確認:workflow の最初で、押した人が名簿にいるかを確かめます。いなければ止まります。
  4. デプロイ:本番へ出します。
  5. 記録:デプロイの記録に残します。
  • 戻す時は、前に成功した sha で同じ workflow を起こします。前の版へ 1 回で戻せます。
  • GitHub Team のプランの非公開のリポジトリでは、環境の人の承認と待ち時間が使えません。そのため、確認のカードと名簿の確認で、本番の前の人の承認を作っています。
  • BeesBuild は本番へ直に出しません。出すのは、人が起こした workflow です。

通知と週次レポート​

  • 通知はゴールの単位で出します。ゴールがステージングで動いた・本番に出た・デプロイか動作確認が失敗した・列が止まった・週次レポートができた、の時だけです。PR 1 本ずつの知らせは、週次レポートにまとめます(通知の決まり)。
  • GitHub の様子は 15 分ごとに読みます。もっと早くしたい時のために、GitHub App の Webhook の受け口を後で足します。ベータ版の後
  • 週次レポートは、毎週月曜 9:00(日本時間)に自動で作ります(開発の速さ)。

エンジニアへの引き渡し​

ゼロから作ったサービスを、エンジニアが作り切って運用に移すまでに、次の物をそろえます。

そろえる物中身
手元で動かす手順範囲の引き継ぎに、clone・install・試すデータの投入・起動・試験の命令と、.env.example(秘密を入れない雛形)を付ける
ステージングの用意新しいハイブを作る時に、ステージングと本番の環境と、デプロイの workflow の雛形を PR で出す。.github/ に触るので人がマージする
直しの流れステージングで見つけた不具合 → 仕事の札 → 元のスレッド → 直しの PR → 同じゴールに入る
戻すステージングは、実験モードなら戻す PR を自動でマージ。本番は前の版へ 1 回で戻す
引き渡し運用モードへの切り替え・CODEOWNERS をエンジニアのチームへ・運用の手順書・見張り・ブロックごとの引き継ぎ
BeesBuild なしの道Projects の見方・PR の説明の 1 行・Markdown の資料・Undam(旧 Xroid Work)の週次レポート
最後の 20 本残りが 20 本以下になったら、最後の詰めのモードへ(仕上げの管制)

BeesBuild 自身の開発​

BeesBuild のリポジトリは実験モードで作っています。旗を試す人に開ける時に、試す人ありモードへ切り替えます。

  • T9 の決まりに合う PR は、毎回の了承なしでマージします。マージするのは AI のスレッドではなく、人が一度入れた GitHub Actions のマージの workflow です(PR の地図とマージ)。
  • ステージングは、main から作る夜の試しの版と、通し試験です。

データの形​

型中身
HbDevStageMode開発の段階のモード(ハイブ × リポジトリ・3 つのモード・切り替えの記録と合図)
HbRepoRuleリポジトリの扱いの決まり(リポジトリの組・モード・自動の行き先・統合の枝・ステージング・依頼と理由)
HbRelease公開(旗の段・版・中身)
HbEnvironment反映の先(リポジトリ・名前・種類・デプロイの枝・デプロイの workflow・URL・確定か推定か)
HbDeployRecordデプロイの記録(反映の先・sha・時刻・状態・入った PR・確定か推定か)

次に読む​