0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

github actions で pre-commit を走らせよう

Last updated at Posted at 2023-12-09

この記事は 一分で読める小ネタのカレンダー | 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

image.png

image.png

image.png

image.png

pre-commit がエラーになると(ローカルでpre-commitを使わないでチェックに失敗するようなホコリをコミットしようとすると)エラーになって教えてくれる(画像は本家 pre-commit の draft から拝借)

image.png

  • 自分だけが pre-commit を使っていても他のメンバーが使っていなかったらホコリは溜まる
  • リモートリポジトリ(github)上で同じチェックをするのは無駄に思えるかもしれないが、意外とミスや漏れはあるのでできるだけやっておくのを薦める
  • チームで管理しているリポジトリでは相談して導入して欲しい
  • 特に後から導入して大量に差分が出るとそうするべきではないファイルが混ざったりして大変なことになるので注意
  • 2日目の記事で書いた、プライベートな my-til リポジトリで練習運用をするとフック毎の設定のテストなんかもできて便利(実際そうしている。パブリックに持ってきてるのはその一部)

改善依頼

  • peter-evans さんの actions はだんだん github のドキュメントから消されてるんだけど事情をご存じの方。。。
  • いや更新内容から今後は個人の actions じゃなくて gh を使った例にしていくって感じっぽいんだけども
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?