GitHub를 중심으로 한 개발 프로세스 자동화
[github webhooks] GitHub에서 특정 이벤트가있을 때 API 호출
특정 이벤트를 놓치지 않도록합시다.
어떤 식으로 사용합니까?
설정 화면
상당히 세세하게 이벤트가 준비되어 있다
[githooks] Git의 특정 명령 발행 전후에 스크립트 실행
의도하지 않은 커밋을 방지하거나 항상 수행하는 작업을 자동화합시다.
githooks란?
.git/hooks
를 보자$ ls .git/hooks
applypatch-msg.sample post-update.sample pre-commit.sample pre-rebase.sample update.sample
commit-msg.sample pre-applypatch.sample pre-push.sample prepare-commit-msg.sample
어떤 식으로 사용합니까?
예를 들면
스크립트
사용법 예
사전 커밋
master에 commit시키지 않는 debug문이 들어 있지 않은지 검사한다
pre-push
테스트 실행
post-update
어떤 알림을
예 master가 커밋하지 않음
사전 커밋을 편집하고 마스터에게 커밋 할 수 없도록 시도했습니다.
종료 코드가 1이면 commit 할 수 없다
사전 커밋
#!/bin/sh
branch=`git rev-parse --abbrev-ref HEAD`
if [ $branch = "master" ]; then
echo "You can't commit on master branch"
exit 1
fi
$ git commit -m 'fixes #13'
You can't commit on master branch
실행할 수 있다면 예를 들어 파이썬에서도 좋은 것 같습니다.
사전 커밋
#!/usr/bin/env python
import sys
import commands
branch = commands.getoutput('git rev-parse --abbrev-ref HEAD')
if branch == 'master':
print "You can't commit on master branch"
sys.exit(1)
참고
git webhooks와 githooks의 차이
webhooks는 GitHub에서의 조작 후크이므로, Issue나 PullRequest의 작성이나 코멘트등의 훅이 주된 용도라고 생각한다
대조적으로 githooks는 git 명령에 대한 후크이므로 commit이나 rebase 조작 등을 후크하기위한 것이라고 생각합니다.
또, githooks는
.git/hooks
[jenkins github pull request builder] PullRequest가 병합 될 때 Jenkins에서 빌드
PullRequest가 병합될 때 충돌이나 테스트 실패가 없어야 함
Jenkins를 사용하는 경우
github pull request builder
라는 Jenkins 플러그인을 넣어 보자.조금 설정이 번거롭지만 PullRequest를 병합 할 때의 안심감이 매우 향상됩니다.
PullRequest를 병합하기 전에 develop과 병합하여 단위 테스트를 실행하도록 설정 한 예
develop과 충돌하거나 테스트가 통과하지 못하면 병합 버튼을 누를 수 없습니다!
문제 없으면 병합 버튼을 누를 수 있으므로 안심하고 병합 할 수 있습니다.
설정
설정에 대해서 쓰면 그것만으로 큰 1 기사가 되어 버리므로, 참고 자료의 소개에 머물겠습니다
원한다면 다른 기사도주세요.
Reference
이 문제에 관하여(GitHub를 중심으로 한 개발 프로세스 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/suzuki-hoge/items/159bfbcb883a9ce74157텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)