[컴] jenkins 에서 gittea gogs webhook 사용법

gittea 와 jenkins 연결 / gogs commit 시 jenkins 구동 / build 시작 / ci / commit 시 자동 시작

jenkins 에서 gittea gogs webhook 사용법

간략하게 설명하면 다음 2가지를 하면 된다.

  1. git repository 에서 commit 이 되면, commit 이 됐다는 신호를 webhook 방식으로 jenkins 에 보내주면 된다.
  2. 그리고 jenkins 에는 webhook 을 사용할 것이니 받을 준비하고 있어라라고 설정해주면 된다.

위 이야기를 좀 더 자세히 해보자.

webhook 설정

각 regpository 마다 webhook 설정 UI 가 조금 다르지만, gittea는 github 와 유사하다.

  • “repository –> Settings –> Webhooks –> Add Webhook –> Gogs” 을 하면 된다.
    • Gittea 를 택해도 된다. request 형식만 맞으면 상관없다.
  • Target URL : jenkins 의 어느 job 에 보낼 것인지를 지정해 준다.
    • http://<jenkins_url>/gogs-webhook/?job=myfolder_name/myjob_name
    • ref.1 에서 보면, gogs-webhook 이라는 url 로 request 를 보내야 한다.
  • Secret
    • 암호를 적어준다. 이 암호는 jenkins 에서 ‘Gogs Webhook’ 설정시 사용하게 된다.
  • Trigger On
    • Push Events 를 선택(이것이 아마도 git push 가 발생할 때 webhook 을 보내겠다는 이야기일 것이다.)
  • Branch filter
    • 어떤 branch 의 push 가 발생했을 때 webhook 을 보낼지 정한다.
    • 예를 들어, master 로 하면 master branch 에 push 가 발생했을 때 webhook 을 jenkins 로 보낸다는 이야기다.
gittea 화면

Jenkins 설정

젠킨스에는 Gogs | Jenkins plugin 이 설치돼 있어야 한다.

그러면 job 을 생성할 때 ‘Gogs Webhook’ tab 이 보인다.

  • ‘Use Gogs secret’ 에 check 하고
  • Secret 에 gittea 에서 설정한 암호를 넣자
젠킨스 화면

test

이제 master branch 에 commit 을 하고 push 를 하면 jenkins 에 신호가 갈 것이다.

참고로, 여기까지는 trigger 를 보내는 것이지, 실제로 build 를 일으키거나 하지 않는다. trigger 가 발생된 이후 작업은 각자가 젠킨스(jenkins)에서 설정하면 된다. 그래서 현재 설정은 master branch 가 push 됐을 때 신호가 가지만, 그 시점에 build 는 develop 등 다른 branch 를 해도 상관없다. 그리고 아마도 Build Triggers 부분에서 'Build when a change is pushed to Gogs' 에 check 를 해줘야 build 가 될 것이다.

See Also

  1. 쿠…sal: [컴] jenkins pipeline 예시

References

  1. gitea and jenkins webhook - Stack Overflow

댓글 없음:

댓글 쓰기