この記事は 一分で読める小ネタのカレンダー | Advent Calendar 2023 - Qiita の10日目
github actions とワークフロー
- GitHub Actions は、CI/CD のプラットフォーム
- github 上でテストやビルドを実行したりデプロイができる、要はコミットした後になんかやって欲しい、を実現できる
- やって欲しい内容を書くのがワークフロー
- 昨日の記事で pre-commit を導入したと思うので、今日はワークフローを導入して、PRを出したら自動で走るのを確認しようって話
本文はここまで。以下は時間外w
ワークフロー
.github/workflows/pre-commit.yml
name: pre-commit
on:
workflow_dispatch:
pull_request:
jobs:
pre-commit:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- uses: pre-commit/action@v3.0.0
- run: pre-commit autoupdate
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
base: ${{ github.event.repository.default_branch }}
branch: update/pre-commit-autoupdate
title: 'build(deps): bump pre-commit autoupdate'
commit-message: 'build(deps): bump pre-commit autoupdate'
body: |
Update versions of tools in pre-commit
configs to latest version
add-paths: |
.pre-commit-config.yaml
assignees: ${{ github.actor }}
reviewers: ${{ github.actor }}
- ワークフローの個別の説明はそれぞれ勉強して欲しい
- ここでは PR が出た時に自動で github 上で pre-commit が走ってチェックをやってくれるということと、ついでに pre-commit autoupdate コマンドが走って、.pre-commit.yaml で使用しているフックのバージョンアップがあったら更新するためのPRを作ってくれる、ということだけ理解すればおk
pre-commit がエラーになると(ローカルでpre-commitを使わないでチェックに失敗するようなホコリをコミットしようとすると)エラーになって教えてくれる(画像は本家 pre-commit の draft から拝借)
雑
- 自分だけが pre-commit を使っていても他のメンバーが使っていなかったらホコリは溜まる
- リモートリポジトリ(github)上で同じチェックをするのは無駄に思えるかもしれないが、意外とミスや漏れはあるのでできるだけやっておくのを薦める
- チームで管理しているリポジトリでは相談して導入して欲しい
- 特に後から導入して大量に差分が出るとそうするべきではないファイルが混ざったりして大変なことになるので注意
- 2日目の記事で書いた、プライベートな my-til リポジトリで練習運用をするとフック毎の設定のテストなんかもできて便利(実際そうしている。パブリックに持ってきてるのはその一部)
改善依頼
- peter-evans さんの actions はだんだん github のドキュメントから消されてるんだけど事情をご存じの方。。。
- いや更新内容から今後は個人の actions じゃなくて gh を使った例にしていくって感じっぽいんだけども