【Github】Github Actions ~ 入門編 ~

■ はじめに

GitHub Actions について、調べなければならなくなったのでメモ。

目次

【0】おさらい:CI/CD
【1】GitHub Actions
【2】料金
 1)パブリックリポジトリの場合
 2)プライベートリポジトリの場合
【3】用語整理
 1)Workflow(ワークフロー)
 2)Action(アクション)
【4】Github Actions あれこれ
 1)過去の履歴を見たい場合
 2)Market Placeの活用

【0】おさらい:CI/CD

CI:Continuous Integration(継続的インテグレーション

* 開発環境におけるコード統合(e.g. ビルド, Unit Tests)を
 継続的に実現するための手法

CD:Continuous Delivery(継続的デリバリー)

* ビルド, デプロイ, 単体試験, などの「価値を届ける」ことを
 継続的に実現するための手法

cf. Delivery = 配送, 引き渡す
 => ここでは、ユーザーにソフトウェアの「価値を届ける」といった意味

詳細は、以下のサイトを参照。

https://atmarkit.itmedia.co.jp/ait/articles/2107/28/news014.html
https://www.kagoya.jp/howto/it-glossary/develop/cicd/

【1】GitHub Actions

* Github の CI/CD機能
 => AWS CodeBuild の Github でできる版

https://dk521123.hatenablog.com/entry/2020/01/21/221122

* GitHubの、Pushなどのイベントをトリガーにし、
 予め設定していた対応するアクションを組み合わせて
 ワークフローの自動化が行える仕組み

【2】料金

* 公式サイトの料金設定に関する詳細は、以下。

https://docs.github.com/ja/billing/managing-billing-for-github-actions/about-billing-for-github-actions

* 色々なサイトを調べたが、安すぎると評判、、、

1)パブリックリポジトリの場合

* 完全無料

2)プライベートリポジトリの場合

* プラン毎に月当たりの無料枠が設定されていてその範囲内なら無料
* 利用するOSが「Linux(Ubuntu)」「Windows」「Mac」でも料金が異なる
* 不安な場合は、以下の公式サイトで見積もりできるので計算してみてもいいかも。
 (さすが、サービスが細かいところまですごく気が利いている、、、)

https://github.com/pricing/calculator

【3】用語整理

1)Workflow(ワークフロー)

* 実行する処理を定義したYAML形式のファイル
* リポジトリ内の.github/workflowsディレクトリ内に保存することで実行
 => AWS CodeBuild の buildspec.yml みたいなもの

2)Action(アクション)

* あらかじめ、定義済みの処理セットのこと

【4】Github Actions あれこれ

1)過去の履歴を見たい場合

[1] Github の該当のページを開き、 [Actions]を選択
[2] 左側の「Workflows」の該当するワークフロー(今回の場合「CI」)を選択
[3] 該当の実行結果を選択
[4] 「build」を選択
 => すると、YAMLファイルに記載された内容が表示されている

2)Market Placeの活用

* Market Place によく使うものが用意されている
* 以下が参考になると思う。

https://yoshikiito.net/blog/archives/python-github-actions-flake8/

Market Place の検索について
https://github.com/marketplace?type=actions

で、対象のツール(例えば、「flake8」と「black」)を検索して使う

flake8 の場合

* 「Flake8 action」を選択

https://github.com/marketplace/actions/flake8-action

black の場合

* 「Black Check」を選択

https://github.com/marketplace/actions/black-check

参考文献

https://qiita.com/bigwheel/items/2ab7deb237122db2fb8d
https://qiita.com/sin9270/items/85e2dab4c0144c79987d

関連記事

Github ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/07/18/234652
Github Actions ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2022/06/16/151443
Github Actions ~ egg / wheel ファイル作成 ~
https://dk521123.hatenablog.com/entry/2022/06/21/143624
Github ~ Webhook 編 ~
https://dk521123.hatenablog.com/entry/2020/01/25/224402
CodeBuild ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/01/21/221122
Python を奇麗に書くためのツール群
https://dk521123.hatenablog.com/entry/2021/11/08/221219
flake8 ~ Pythonコードチェック ~
https://dk521123.hatenablog.com/entry/2020/02/07/000000
black ~ Python formatter ~
https://dk521123.hatenablog.com/entry/2021/11/10/095258