6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

駆け出しエンジニア日記Advent Calendar 2020

Day 23

@im_miolabさんの「GitHooksをElixir開発環境へ導入して、コミットやプッシュの際にコード検査やテストが走るようにする」にすこ〜し補足をします。git commit時にmix formatを自動的に行ってくれるですよ!!!

Last updated at Posted at 2021-02-27

はじめに

  • Elixir楽しんでいますか :bangbang::bangbang::bangbang:
  • @piacerex さんの小粒でピリリと辛いユーティリティ群piacerex/smallexの更新をお手伝いしています
  • そのなかでmix formatしていきましょうとみんなへ呼びかけたところ、自動化できるよという話を @koyo-miyamura さんから聞きました
  • そしてqgadrian/elixir_git_hooksというHexが便利だよということを @zacky1972 先生に教わりました
  • Qiitaに導入記事がなければ書くつもりでおりました
  • $\huge{すでにありました}$
  • じゃあ書かなくても良いわけですが、まあちょっと調べたことがあるのでそれをそのまま書いておきます
  • この記事は、2021/3/15に開催予定のautoracex #Nの成果といたします

qgadrian/elixir_git_hooksを紹介した先輩記事

私の補足

  • そもそもGit のカスタマイズ - Git フックというものがあります
    • 私は今日知りました
    • .git/hooks配下にあるスクリプトがアレしてナニしてくれるわけです
    • 最初は.sampleというファイルが置いてあります
    • 詳細はリンク先をご参照ください
  • config/config.exs:git_hooksの設定を書いておいて、mix git_hooks.installをすると以下のファイルができます
    • .git/hooks/pre-commit
    • .git/hooks/pre-push
  • 中身は以下のようになっています
.git/hooks/pre-commit
#!/bin/sh

mix git_hooks.run pre_commit "$@"
[ $? -ne 0 ] && exit 1
exit 0
fi
.git/hooks/pre-push
#!/bin/sh

mix git_hooks.run pre_push "$@"
[ $? -ne 0 ] && exit 1
exit 0
fi
  • これらがgit commitgit pushコマンドの際にフックされてmixタスクが実行されるという仕組みです

Wrapping Up :lgtm::lgtm::lgtm::lgtm::lgtm:

  • mix formatとかちょっとしたことではあるけれども必ずやることにするならこういう仕組みを導入して自動化するのはいいですね
  • Enjoy Elixir :rocket::rocket::rocket:

(最後の最後に)Elixirってなによ? という方へ

image.png

6
1
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
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?