GitHub Actions の実践的なノウハウが凝縮されている一冊「GitHub CI/CD 実践ガイド」を読んだ📕
本書ではソフトウェア開発ライフサイクルから GitHub Actions 基礎トピック・GitHub Actions 実践トピックが紹介されていて,さらに GitHub Actions を活用して実現するリリース自動化・パッケージ管理・セキュリティのシフトレフトまでもカバーされている❗️素晴らしい👏 GitHub Actions をなんとなーく使っていたり,いつも既存のワークフローをコピーしていたりする人は必読かなと \( 'ω')/
また著者の経験に基づくベストプラクティス(こうすると良いよ〜的な)が散りばめられているのも現場目線で読めて良かった❗️
もちろん機能面に関しては GitHub Actions のドキュメントを読めば書いてあることも多いけど,すべてを読むのは大変だし,微妙に読みにくかったりもするし,書籍として体系的にまとまっていることはとても価値があると思う💡
目次 🧩
基礎編
- 第1章: ソフトウェア開発と GitHub
- 第2章: GitHub Actions の基礎概念
- 第3章: ワークフロー構文の基礎
- 第4章: 継続的インテグレーションの実践
- 第5章: 運用しやすいワークフローの設計
- 第6章: アクションによるモジュール化
実践編
- 第7章: クリーンなリポジトリの維持
- 第8章: Dependabot による依存関係バージョンアップ
- 第9章: GitHub Releases によるリリース自動化
- 第10章: GitHub Packages によるパッケージ管理
- 第11章: OpenID Connect によるセキュアなクラウド連携
- 第12章: コンテナオーケストレーションのデプロイメント
- 第13章: アクションのオープンソース化
応用編
- 第14章: GitHub Actions の高度な使い方
- 第15章: GitHub Actions のセキュリティ
- 第16章: セキュリティのシフトレフト
- 第17章: GitHub Apps トークンによるクロスリポジトリアクセス
- 第18章: 継続的デリバリーの実践
あくまで個人的な感想だけど「第6章 (composite action)」と「第14章 (reusable workflow)」は内容的に続いていても良いかな〜とは思った.
新たな発見もあった 🧩
僕自身は比較的 GitHub Actions の経験があって,復習も兼ねてザーッと読んだけど,それでも「知らなかったぞ〜💡」という情報も載っていて新たな発見もあった❗️具体的には以下など.
- 中間環境変数テクニック(第3章)
- Secrets のログマスクは回避できてしまう(第3章)
- ログをグループ化して可読性を高める(第5章)
- CODEOWNERS ファイル(第7章)
- スクリプトインジェクション(第15章)
- Gitleaks
(第16章)
NAME
に kakakakakku
と設定して,Secrets のログマスクを回避する記法を試してみた.なるほどなぁー😅
jobs: secrets: runs-on: ubuntu-latest env: NAME: ${{ secrets.NAME }} steps: - run: echo ${NAME:0:1} ${NAME#?}
::group::{title}
という記法でログをグループ化する Tips も知らなくて,実際に試してみた👌仕事でちょうど使えそうな部分があったからさっそく導入してみたりもした❗️
jobs: grouping-log-lines: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.12' - name: Setup packages run: | echo '::group::pip install logs' pip install -r requirements.txt echo '::endgroup::'
GitHub Apps 解説
第17章「GitHub Apps トークンによるクロスリポジトリアクセス」に載っているクレデンシャルと GitHub Apps の解説は貴重だった❗️曖昧だった理解を整理できた.さらに classic Personal Access Tokens (PAT) は「最悪の選択肢」と書いてあって「それな〜😱」という気持ちに.Fine-grained Personal Access Tokens (PAT) に有効期限があるのは良いとしても,今もまだ Beta って書いてあって使いたくない気持ちがある💨
その他読書メモ
第2章に workflow_dispatch
の紹介が載っていて良かった.意外と知られてなくて無理矢理コミットしてトリガーしてる人をよく見る.あと本書には載ってなかったけど,workflow_dispatch
はワークフローファイルがデフォルトブランチに存在してる前提で実行できるから,最初プルリクエストを送った段階だと試せなくてハマるという経験があったりする📝
第2章の最後に「課金モデル」の解説が含まれているのも良かった💰同じく結構知られてない気がする(個人的な観測範囲内では).
第4章で紹介されてた GitHub Actions の「concurrency 設定」は知っておくと便利❗️前にブログを書いた.
もしかしたら「act」の紹介もあるかな〜と思って読み進めていたけど,本書には出ていなかったはず👀
まとめ
GitHub Actions を使ってるチームは多いと思うけど,もっと GitHub Actions を知ることでさらに便利になって活用が進むと思う.本書には GitHub Actions の実践的なノウハウが凝縮されていて素晴らしい一冊だった📕 おすすめ \( 'ω')/
著者のブログ記事・本書のコードリポジトリもリンクしておくー🔗
ポスト
「GitHub CI/CD 実践ガイド」を読んでたら第11章のコラム(参考文献:インフラストラクチャ)に僕の名前(モダンアプリケーション本の書籍紹介)が載っててビックリした❗️ありがとうございます〜https://t.co/eym1FlvTDs
— カック (@kakakakakku) 2024年8月11日
「GitHub CI/CD 実践ガイド」を読み終わったけど良かった❗️GitHub Actions をなんとなーく使ってるなら一度読むと良さそう😀仕事でよく GitHub Actions ワークフローの導入や既存ワークフローの改善をしてるけど,こうすると良いよ〜って紹介してるノウハウとかもたくさん載ってた👀ブログも書くぞ〜
— カック (@kakakakakku) 2024年8月14日
結構目を惹く表紙だからずっと気になってたんだけど「黒いモノ」は何なんだろう?w
— カック (@kakakakakku) 2024年8月16日