CI/CD周り
はじめに
MatsuribaTech(祭り場Tech) Advent Calendar 2023 の12/12分です
Github Actionsで使えるCI/CDを纏めました.
使えるもの網羅したと思います.
プロダクションで使えそうなもの
AWS Codeシリーズ
actions/labeler
Pull Requestに自動的にPRに合ったラベルを付与をしてくれる
technote-space/assign-author
Issue や Pull Request に Author を自動アサイン
k1LoW/setup-tbls
DBのテーブル定義書を自動生成する
reviewdog/reviewdog
lintとかのエラーをprのメッセージにしてくれる
Taskfile
Makeの代替のタスクランナー
secretlint/secretlint
APIトークンや秘密鍵などのコミットを防止する
pre-commitに挟むなどして利用
renovatebot/renovate
依存関係アップデートを自動で検知してPRを出してくれる
rhysd/actionlint
GitHub Actions のワークフローをチェック
Codecov
カバレッジ
nektos/act
ローカルでGithub Actions実行
rtCamp/action-slack-notify
Slack通知
整形後のコードコミット
evilmartians/lefthook
Git hooks manager
actions/cache
キャッシュ
actions/upload-artifact
ジョブ内で作成したファイル,ビルド結果をアップロード(ダウンロード版もあり)
Docker Hubにコンテナアップロード
テスト並列化
画像を最適化PR
脆弱性スキャン
docker image タグ付け
自動pr merge
QEMUバイナリ動かせる dockerコンテナビルドなど
Buildxのgithub actions
CHANGELOG の生成、GitHub リリースの作成、プロジェクトのバージョン バンプを自動化
ラベルが貼られたPRを自動レビュー&マージするBot
個人系
プロダクションには使え無さそうだけど,個人でなら結構使えるモノ.
coderabbitai/ai-pr-reviewer
ChatGPTがPullRequestをレビューしてくれる
super-linter/super-linter
GitHub Action全てのlinterを実行してくれる
runforesight/workflow-telemetry-action
Github Actionsの監視可視化 CI/CD パイプラインのデバッグ
appleboy/ssh-action
sshしてくれる
redshoga/site-cat-action
LGTMすると後からヨシしてくれる
PRのアナリティクス
CIを高速化する技術
GitHub Actionsで連続pushした時に止めるアレ
コミットメッセージ自動
言語系
大抵,linterとか各言語用意されているので,それを利用+reviewdogでメッセージ書いてもらうのが一番いい気がする.
一部紹介.
Go
golangci/golangci-lint
Linter
Docker
hadolint/hadolint-action
Dockerfile linter
Laravel
Larastan
levelmax
phpstan-strict-rules
bleeding-edge を有効
PHPstan
php-cs-fixer
phpunit
phpinsights
deptrac
スマホ