デプロイワークフロー
GitLabのデプロイワークフロー
以下の図は、開発者のコミットからGitLab.comへの本番デプロイおよびセルフマネージドリリースまでの完全なデプロイワークフローを示しています。
graph TB
subgraph "開発者ワークフロー"
A[開発者がフィーチャーブランチにコミット] --> B[マージリクエストの作成]
B --> C[CI/CDパイプラインが実行]
C --> D[コードレビューと承認]
D --> E[デフォルトブランチへのマージ]
end
subgraph "GitLab.comデプロイパス"
E --> F[デプロイヤーパイプラインがトリガー]
F --> G["ステージングカナリアへのデプロイ<br/>gstg-cny"]
F -.並行.-> H["ステージングRefへのデプロイ<br/>gstg-ref<br/>サンドボックステスト"]
G --> I["E2Eスモークテスト<br/>gstg-cnyを対象(ブロッキング)"]
I --> J["本番カナリアへのデプロイ<br/>gprd-cny"]
J --> K["E2Eスモークテスト<br/>gprd-cnyを対象(ブロッキング)"]
K --> L["待機期間<br/>30分"]
L --> M[手動プロモーション]
M --> N["ステージングへのデプロイ<br/>gstg"]
Q --> O["本番へのデプロイ<br/>gprd"]
M --> Q[本番チェック]
O --> R[GitLab.comで稼動]
end
subgraph "セルフマネージドリリースパス"
E --> S[デフォルトブランチにマージ]
S --> T["マンスリーリリースサイクル<br/>毎月第3木曜日"]
T --> U["ステーブルブランチの作成<br/>例: 17-2-stable-ee"]
U --> V["バージョンのタグ付け<br/>例: v17.2.0"]
V --> W["リリースパッケージのビルド<br/>Omnibus、Dockerなど"]
W --> X[packages.gitlab.comへの公開]
X --> Y["セルフマネージド<br/>インストールが利用可能"]
V --> Z["パッチリリース<br/>月に2回"]
Z --> AA["パッチバージョンのタグ付け<br/>例: v17.2.1"]
AA --> W
end
subgraph "ドキュメントの更新"
E --> AB[mainでドキュメントが更新]
AB --> AC["docs.gitlab.comへのデプロイ<br/>1時間以内"]
U --> AD["ステーブルブランチのドキュメント<br/>例: docs.gitlab.com/17.2/"]
end
style R fill:#1f77b4
style Y fill:#ff7f0e
style AC fill:#2ca02c
style H fill:#9467bdデプロイ後のマイグレーション
デプロイ後のマイグレーションには専用のワークフローがあり、特定の時間枠内に実行されることは保証されません。デプロイチームは必要と判断したときに実行する権限を持っています。ただし、これらは常にリリース管理タスクの前に実行されます。
詳細については、デプロイハンドブックのデプロイ後マイグレーション(PDM)の実行セクションを参照してください。
関連ドキュメント
デプロイプロセスの追加コンテキストについては、デプロイとリリースハンドブックのパッケージのデプロイセクションを参照してください。
