Native(Android, iOS) 개인 개발환경 구축하기 - git commit 전에 ktlint, push된 이후에 자동빌드 하기 (ktlint, git hook, bitrise web hook)
Git hook 이란?
In computer programming, the term hooking covers a range of techniques used to alter or augment the behaviour of an operating system, of applications, or of other software components by intercepting function calls or messages or events passed between software components. Code that handles such intercepted function calls, events or messages is called a hook.
Reference : wikipedia
함수 호출, 메세지나 이벤트가 발생 하기 전/후에 호출 코드를 Hook 이라고 합니다.
git에서도 Push, Commit 등의 이벤트가 발생했을 때 스크립트를 실행시킬 수 있는데 이를 git hook이라고 하며, Shell, Perl, Python 등의 Script를 사용할 수 있습니다.
클라이언트 훅(Client hook)과 서버 훅(Server hook)이 있는데, 우리는 클라이언트 훅에서 pre-commit, 서버 훅에서 post-update 를 사용합니다.
사용할 git hook
* pre-commit
git에 커밋(commit)하기 전에 클라이언트에서 호출되는 훅 입니다. 이 훅을 사용해 ktlint 검사를 하도록 합니다.
pre-coomit 훅은 exit가 0이 아닐 경우 커밋이 취소가 되며, git commit —no-verify
를 통해 일시적으로 pre-commit 훅을 패스할 수 있습니다.
clone한 repository에서 숨김 처리된 hooks 디렉토리에 들어가보면 아래와 같이 다양한 hook의 sample이 있습니다.
cp pre-commit.sample pre-commit
으로 pre-commit을 복사한 후 아래와 같이 수정해 commit 전에 ktlint를 수행하고 성공해야만 commit 되도록 합니다.
Bitrise web hook
Reference
-
Shell Script
'프로그래밍 > DevOps' 카테고리의 다른 글
Native(Android, iOS) 개인 개발환경 구축하기 - 개요 (raspberry PI & git & bitrise & firebase & slack & telegram) (0) | 2021.06.25 |
---|---|
Private Repository를 Jitpack.io로 배포한 라이브러리 사용하기 (0) | 2019.01.22 |
Github Private Repository 인 경우 Jitpack.io를 이용한 배포 (0) | 2019.01.14 |
Github와 Jitpack.io를 이용한 Android 라이브러리 배포 (0) | 2019.01.14 |
Github Private repository 무료! 이용해보기 (0) | 2019.01.11 |