![見出し画像](https://assets.st-note.com/production/uploads/images/143555406/rectangle_large_type_2_328276b76bcda3728997fa59563c26ca.png?width=800)
読書備忘録:GitHub CI/CD実践ガイド
※ このブログのamazonリンクは、アフィリエイトリンクにより収入を得ています。
※ これは私個人の意見であり、会社の見解ではありません。
本の概要
本書はCI/CDの設計や運用について、GitHubを使ってハンズオン形式で学ぶ書籍です。GitHub Actionsの基本構文からスタートし、テスト・静的解析・リリース・コンテナデプロイなどを実際に自動化していきます。
本を読んだ際の前提知識
GitHubでPull Requestを発行したことがある
GitHub actionsは利用したことがない
GitHubのその他の機能はほとんど利用したことがない
Linuxについては、基礎の本を一冊読んだ程度の知識
本を読んだ理由
GItHub actionsを実務で利用することになるので、体系立ててGitHub actionsを勉強したかったため
「はじめに」の対象読者を見て、この本が自分のレベルに合っていると感じたため
+ GItHubは使っているけれど、プルリクエストくらいしか利用していない
+ CI/CDというキーワードは知っているけれど、自分で設計したことはない
+ GitHub Actionsには触れているけれど、正直雰囲気で運用している
全体の感想
ちょうどいいレベルの本で、あまり読み飛ばすことなく読了できました。
GitHub actionsの仕組みを理解できただけでなく、GitHubの機能が網羅的に説明されており勉強になりました。
備忘録
第1章
「CI/CDとは何か?」から基本的な点が説明されています。
これまでCI/CDには触れてこなかったので、基礎から理解できてよかったです。
CI
コードの変更を頻繁にコードベースへ結合し、正しく動作するか繰り返し検証する
CD
ソフトウェア開発の持続可能性を高め、長期にわたる価値提供を実現する
サンプルコードはこちらのGitHubに保管されている。
第3章
筆者のおすすめのコーディングルール
1. コンテキストはシェルコマンドへハードコードせず、環境変数を経由して渡す
2. 環境変数はすべてダブルクォーテーションで囲む
パーミッション記述時は、ソースコードの読み込みにも明示的な許可が必要
第4章
プルリクエストの基礎から説明されていました。なんとなくプルリクエストを行っていたので、プルリクエストの目的を改めて理解できてよかったです。
第6章
コード6.1から、linuxの基礎知識がないと読むのが大変な印象です。
個人的には、Linuxを全く知らない状況で「新しいLinuxの教科書」で勉強しました。
なお、本書の第2章末尾でもLinuxのおすすめ書籍が紹介されています。
第7章
ドキュメンテーションの章で理解が不足していると感じていました。章の末尾でおすすめ書籍「エンジニアのためのドキュメントライティング」が紹介されてました。ありがたい。
第8章
Dependabotで依存関係を確認する方法が記載されてます。
私ははじめてのGitHubだったので、自動でバージョン確認とバージョンアップができることに感動しました。
第9章
「9.6 リリースの自動化」以降はいったんスキップ。
第10章 ~ 第13章
応用的な内容なので、いったんスキップ。
(こんなこともできるんだ〜と驚きつつも、、、)
第15章
15.10以降は難しそうなので、いったんスキップ
第17章
17.4以降は「かなり込み入った話になる」と注意書きがあった。読み飛ばすことも考えたが、クロスレポジトリアクセスは直近で利用する可能性があるので一通り読了。
第18章
DORAの研究成果をもとに、継続的デリバリーに必要な項目を説明しています。CI/CD初心者にとっては知らないことばかりで勉強になりました。
DORAのもっとも重要な研究成果は、「ソフトウェアデリバリパフォーマンスは、組織パフォーマンスと高い相関がある」と学術的な方法で示したことです。
プルリクエストで利用するブランチは、少なくとも1日に1度はデフォルトブランチへマージしましょう。頻繁にマージすると、コンフリクトが発生しにくくなります。コードの変更量が少なくなり、レビューもしやすいです。
この記事が気に入ったらサポートをしてみませんか?