『GitHub CI/CD実践ガイド』
https://gyazo.com/47bfd6b42f6ab3b9af6d234b74f59f5d
2024/5/29
[基礎編]
第1章 ソフトウェア開発とGitHub
1.1 ソフトウェア開発
1.2 CI/CD
1.3 GitHub
1.4 環境構築
1.5 まとめ
第2章 GitHub Actionsの基礎概念
2.2 GitHub Actionsの構成要素
2.3 GitHub Actionsの実行
2.4 GitHub Actionsのエラー
2.5 ワークフローの起動方法
2.6 ワークフローの実行管理
2.7 ジョブの実行環境
2.8 アクション
2.9 GitHub Actionsの課金モデル
2.10 まとめ
第3章 ワークフロー構文の基礎
3.1 コンテキスト
3.2 環境変数
3.3 Variables
3.4 Secrets
3.5 式
3.6 関数
3.7 条件分岐
3.8 ネーミング
3.9 ステップ間のデータ共有
3.10 GitHub APIの実行
3.11 スターターワークフロー
3.12 まとめ
第4章 継続的インテグレーションの実践
4.1 プルリクエストによる継続的インテグレーションの起動
4.2 自動テスト
4.3 イベントのフィルタリング
4.4 セットアップアクション
4.5 静的解析
4.6 タイムアウト
4.7 シェル
4.8 Concurrency
4.9 継続的インテグレーションの黄金律
4.10 自動テストの運用プラクティス
4.11 静的解析の運用プラクティス
4.12 まとめ
第5章 運用しやすいワークフローの設計
5.1 ワークフロー設計の道具箱
5.2 ロギング
5.3 レポーティング
5.4 チャット通知
5.5 複数ジョブの実行制御
5.6 マトリックス
5.7 Environments
5.8 キャッシュ
5.9 アーティファクト
5.10 まとめ
第6章 アクションによるモジュール化
6.1 アクションの分類
6.2 Composite Action
6.3 メタデータ構文
6.4 メタデータ構文とワークフロー構文の違い
6.5 アクションの設計プラクティス
6.6 まとめ
[実践編]
第7章 クリーンなリポジトリの維持
7.1 コードレビュー
7.2 ブランチの保護
7.3 オーナーシップの維持
7.4 クレデンシャルの混入防止
7.5 ドキュメンテーション
7.6 まとめ
第8章 Dependabotによる依存関係バージョンアップ
8.1 依存関係
8.3 GitHub Actionsによる自動マージ
8.4 Dependabotのワークフロー設計
8.5 バージョンアップの影響範囲
8.6 自動マージ戦略
8.7 まとめ
第9章 GitHub Releasesによるリリース自動化
9.1 ソフトウェアのリリース
9.2 バージョニング
9.3 アナウンス
9.5 リリースノートの自動生成
9.6 リリースの自動化
9.7 Gitタグの保護
9.8 まとめ
10.1 パッケージ
10.2 GitHub Packages
10.3 Container Registry
10.4 GitHub Packagesの管理
10.5 パッケージの自動リンクとパーミッションの継承
10.6 コンテナイメージの自動リリース
10.7 まとめ
11.1 クラウドプロバイダのクレデンシャル
11.2 OpenID Connect
11.3 検証作業のリスクヘッジ
11.4 AWSにおけるOpenID Connectの利用準備
11.5 OpenID ConnectによるAWS連携
11.6 Cloud Rolesのセキュアな運用
11.7 まとめ
第12章 コンテナオーケストレーションのデプロイメント
12.1 サービス
12.2 実行環境の構築
12.3 デプロイ情報のVariables管理
12.4 デプロイの自動化
12.5 Environmentsを利用した複数環境デプロイ
12.6 デプロイメント設計
12.7 まとめ
第13章 アクションのオープンソース化
13.1 アクションの公開
13.2 アクションのテスト
13.3 アクションのリリースマネジメント
13.4 アクションのドキュメンテーション
13.6 アクションの進化プロセス
13.7 まとめ
[応用編]
第14章 GitHub Actionsの高度な使い方
14.2 動的なワークフロー定義
14.3 エラーハンドリング
14.4 コンテキストによるフロー制御
14.5 プライベートアクションとプライベートReusable Workflows
14.6 まとめ
第15章 GitHub Actionsのセキュリティ
15.1 ソフトウェアサプライチェーン
15.2 セキュリティの設計原則
15.3 GitHubのサービス特性
15.4 リポジトリの保護
15.5 サードパーティアクションのセキュリティ
15.6 スクリプトインジェクション
15.7 最小権限のパーミッション
15.8 シークレットマネジメント
15.9 Forkプルリクエスト対策
15.10 OpenID Connectハードニング
15.11 まとめ
第16章 GitHub Actionsのセキュリティ
16.1 シフトレフト
16.2 依存関係の脆弱性スキャン
16.3 シークレットスキャン
16.4 アプリケーションセキュリティ
16.5 Infrastructure as Codeセキュリティ
16.6 継続的なセキュリティ改善
16.7 まとめ
第17章 GitHub Appsトークンによるクロスリポジトリアクセス
17.1 GitHubのクレデンシャル
17.2 GitHub Appsトークン
17.3 クロスリポジトリアクセス
17.4 GitHub Appsトークン生成の仕組み
17.5 GitHub Appsトークンの運用プラクティス
17.6 まとめ
第18章 継続的デリバリーの実践
18.1 組織パフォーマンス
18.2 バージョン管理戦略
18.3 テスト戦略
18.4 リリース戦略
18.5 データベースの変更管理
18.6 Infrastructure as Codeの変更管理
18.7 疎結合なアーキテクチャ
18.8 運用を忘れない
18.9 継続的な学び
18.10 まとめ