【ギットハブアクションズ】

GitHub Actions とは?

💡 push したら自動でテスト・ビルド・デプロイ、全部おまかせ
📌 このページのポイント
.github/workflows/ci.yml git push コード変更 トリガー ワークフロー テスト ビルド デプロイ 本番環境 クラウド 🔄 すべて自動で実行 コードを変更するたびに自動でテスト・デプロイ
GitHub Actionsはコードのpushをトリガーにテスト・ビルド・デプロイを自動実行する
ひよこ ひよこ

GitHub Actionsってなに?GitHubの機能なの?

ペンギン先生 ペンギン先生

そうだよ。GitHubに最初から付いてるCI/CD(自動化)の仕組みだね。コードをpushしたりプルリクエストを作ったりすると、自動でテストやビルドを走らせてくれるんだ

ひよこ ひよこ

どうやって設定するの?難しそう…

ペンギン先生 ペンギン先生

リポジトリの中に「.github/workflows/」というフォルダを作って、そこにYAMLファイルを置くだけだよ。「いつ」「なにを」「どこで」実行するかを書くんだけど、テンプレートも豊富だから最初はコピペで始められるね

ひよこ ひよこ

テスト以外にもなにか自動化できるの?

ペンギン先生 ペンギン先生

めちゃくちゃ幅広いよ。たとえばコードの自動フォーマットDocker imageのビルド、本番環境へのデプロイ、定期的なスクレイピング、issueの自動ラベル付けまでなんでもできるんだ。Marketplaceに公開されてるアクションを組み合わせれば、大抵のことは実現できるよ

ひよこ ひよこ

無料で使えるの?

ペンギン先生 ペンギン先生

パブリックリポジトリなら完全無料だよ。プライベートリポジトリでも月2,000分の無料枠があるから、個人開発ならまず足りるね

ひよこ ひよこ

すごい便利だね!みんな使えばいいのに

ペンギン先生 ペンギン先生

実はベテランエンジニアでも意外と知らない落とし穴があってね。サードパーティのアクションにはバージョンを固定しないとサプライチェーン攻撃のリスクがあるんだ。タグ指定じゃなくてコミットSHAで固定するのがセキュリティのベストプラクティスだよ

ひよこ ひよこ

え、セキュリティの問題もあるんだ…。他に注意点は?

ペンギン先生 ペンギン先生

もうひとつ、GitHub提供のランナー(実行環境)だとスペックに限界があるから、大規模プロジェクトではself-hosted runnerといって自前のサーバーで実行する方法もあるんだ。ただしその場合はランナーのセキュリティ管理も自分たちの責任になるから、運用コストとのトレードオフだね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
GitHub Actions」って出てきたら「GitHubに付いてるCI/CDの自動化ツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「GitHub Actions」 = GitHubの動作・操作
💬 「Action(動作)」という名前のとおり、GitHubでの操作をきっかけに何かを自動で「動かす」仕組みだよ。2019年に正式リリースされて、あっという間にCI/CDの定番になったんだ
← 用語集にもどる