Jenkins Plugin에 의존하지 않고 쉘만으로 Job을 구축한다(github webhook편)
개요
github에서 push되면 Job을 시작하고 Push의 내용에 따라 다음 Job에 연결하는 처리를 쉘로 작성합니다.
쉘로 작성하는 이점은 명령 레벨에서 무엇을 하고 있는지 이해할 수 있다는 것입니다.
설치
jenkins
homebrew에 넣고 있습니다.
$ brew update
$ brew cask install java
$ brew install jenkins
설정은 인터넷에서 찾으면 바로 나오므로 할애.
jq
쉘에서 json을 다루는 도구입니다. github push를 구문 분석하는 데 사용됩니다.
$ brew install jq
Github
Github API를 활용하기 위해 토큰을 발행합니다.
토큰은 github 페이지 을 참고로 작성해 주세요.
push를 jenkins에 알리기 위해 github WebHook에서 설정합니다.Add Service
에서 Jenkins (GitHub plugin)
를 선택합니다.
Jenkins hook url
에서 다음을 입력하여 Active를 선택합니다.
http://:@<호스트 이름>:8080/job//buildWithParameters
가정 운영
Git에서 push를 한 후에 브랜치 당 Job을 호출합니다.
WIP인 Pull Request로 운용하기 때문에, feature 브랜치나 bugfix 브랜치의 경우는, 곧바로 리뷰를 해 주었으면 하므로, 채팅에 송신합니다. (이번에는 Chatwork에 보내고 있습니다)
모든 브랜치에서 단위 테스트를 실행하는 Job을 호출합니다.
Job
Jenkins GUI 설정
우선 GUI에서 작성하겠습니다.
빌드의 파라미터화를 체크해, 다음과 같이 합니다.
빌드 쉘 실행을 설명합니다.
최초의 if문으로, branch를 삭제했을 경우나 프로그램에 의해 push되어 왔다(github-bot-user는 프로그램으로 push할 때에 이용하고 있는 유저) 경우는 무시하도록(듯이) 하고 있습니다.
브랜치가 review
및 release
인 경우 빌드하고 Fabric으로 전송하는 Job을 호출합니다. ( 다른 기사 참조 )
또한 feature.*
또는 bugfix.*
브랜치의 경우 채팅으로 알려 드리겠습니다.
그리고는, 단위 테스트용의 Job를 호출하고 있습니다. (다른 기사 참조)
#!/bin/bash -l
set -eux
chatworkToken=XXXXXXXXXX
deleted=`echo $payload | jq -r '.deleted'`
author=`echo $payload | jq -r '.head_commit.author.name'`
if [[ $deleted != "true" ]] && [[ $author != "github-bot-user" ]]; then
GIT_BRANCH=`echo $payload | jq -r '.ref' | sed "s/refs\/heads\///"`
if [[ $GIT_BRANCH =~ review.* ]]; then
curl -X POST "http://<ホスト名>:8080/job/<Fabric転送するJOB名>/buildWithParameters?server=develop&branch=${GIT_BRANCH}"
elif [[ $GIT_BRANCH =~ release.* ]]; then
curl -X POST "http://<ホスト名>:8080/job/<Fabric転送するJOB名>/buildWithParameters?server=staging&branch=${GIT_BRANCH}"
elif [[ $GIT_BRANCH =~ (feature|bugfix).* ]]; then
pusher=`echo $payload | jq -r '.pusher.name'`
curl -X POST -H "X-ChatWorkToken: ${chatworkToken}" -d "body=${pusher}が${GIT_BRANCH}にPushしたのでレビューして。" "https://api.chatwork.com/v1/rooms/<ルームID>/messages"
fi
curl -X POST "http://<ホスト名>:8080/job/<単体テストのJOB名>/buildWithParameters?branch=${GIT_BRANCH}"
fi
Reference
이 문제에 관하여(Jenkins Plugin에 의존하지 않고 쉘만으로 Job을 구축한다(github webhook편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ko2ic/items/e6c9cd69690aba683e6f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
jenkins
homebrew에 넣고 있습니다.
$ brew update
$ brew cask install java
$ brew install jenkins
설정은 인터넷에서 찾으면 바로 나오므로 할애.
jq
쉘에서 json을 다루는 도구입니다. github push를 구문 분석하는 데 사용됩니다.
$ brew install jq
Github
Github API를 활용하기 위해 토큰을 발행합니다.
토큰은 github 페이지 을 참고로 작성해 주세요.
push를 jenkins에 알리기 위해 github WebHook에서 설정합니다.Add Service
에서 Jenkins (GitHub plugin)
를 선택합니다.
Jenkins hook url
에서 다음을 입력하여 Active를 선택합니다.
http://:@<호스트 이름>:8080/job//buildWithParameters
가정 운영
Git에서 push를 한 후에 브랜치 당 Job을 호출합니다.
WIP인 Pull Request로 운용하기 때문에, feature 브랜치나 bugfix 브랜치의 경우는, 곧바로 리뷰를 해 주었으면 하므로, 채팅에 송신합니다. (이번에는 Chatwork에 보내고 있습니다)
모든 브랜치에서 단위 테스트를 실행하는 Job을 호출합니다.
Job
Jenkins GUI 설정
우선 GUI에서 작성하겠습니다.
빌드의 파라미터화를 체크해, 다음과 같이 합니다.
빌드 쉘 실행을 설명합니다.
최초의 if문으로, branch를 삭제했을 경우나 프로그램에 의해 push되어 왔다(github-bot-user는 프로그램으로 push할 때에 이용하고 있는 유저) 경우는 무시하도록(듯이) 하고 있습니다.
브랜치가 review
및 release
인 경우 빌드하고 Fabric으로 전송하는 Job을 호출합니다. ( 다른 기사 참조 )
또한 feature.*
또는 bugfix.*
브랜치의 경우 채팅으로 알려 드리겠습니다.
그리고는, 단위 테스트용의 Job를 호출하고 있습니다. (다른 기사 참조)
#!/bin/bash -l
set -eux
chatworkToken=XXXXXXXXXX
deleted=`echo $payload | jq -r '.deleted'`
author=`echo $payload | jq -r '.head_commit.author.name'`
if [[ $deleted != "true" ]] && [[ $author != "github-bot-user" ]]; then
GIT_BRANCH=`echo $payload | jq -r '.ref' | sed "s/refs\/heads\///"`
if [[ $GIT_BRANCH =~ review.* ]]; then
curl -X POST "http://<ホスト名>:8080/job/<Fabric転送するJOB名>/buildWithParameters?server=develop&branch=${GIT_BRANCH}"
elif [[ $GIT_BRANCH =~ release.* ]]; then
curl -X POST "http://<ホスト名>:8080/job/<Fabric転送するJOB名>/buildWithParameters?server=staging&branch=${GIT_BRANCH}"
elif [[ $GIT_BRANCH =~ (feature|bugfix).* ]]; then
pusher=`echo $payload | jq -r '.pusher.name'`
curl -X POST -H "X-ChatWorkToken: ${chatworkToken}" -d "body=${pusher}が${GIT_BRANCH}にPushしたのでレビューして。" "https://api.chatwork.com/v1/rooms/<ルームID>/messages"
fi
curl -X POST "http://<ホスト名>:8080/job/<単体テストのJOB名>/buildWithParameters?branch=${GIT_BRANCH}"
fi
Reference
이 문제에 관하여(Jenkins Plugin에 의존하지 않고 쉘만으로 Job을 구축한다(github webhook편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ko2ic/items/e6c9cd69690aba683e6f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
가정 운영
Git에서 push를 한 후에 브랜치 당 Job을 호출합니다.
WIP인 Pull Request로 운용하기 때문에, feature 브랜치나 bugfix 브랜치의 경우는, 곧바로 리뷰를 해 주었으면 하므로, 채팅에 송신합니다. (이번에는 Chatwork에 보내고 있습니다)
모든 브랜치에서 단위 테스트를 실행하는 Job을 호출합니다.
Job
Jenkins GUI 설정
우선 GUI에서 작성하겠습니다.
Jenkins GUI 설정
우선 GUI에서 작성하겠습니다.
최초의 if문으로, branch를 삭제했을 경우나 프로그램에 의해 push되어 왔다(github-bot-user는 프로그램으로 push할 때에 이용하고 있는 유저) 경우는 무시하도록(듯이) 하고 있습니다.
브랜치가
review
및 release
인 경우 빌드하고 Fabric으로 전송하는 Job을 호출합니다. ( 다른 기사 참조 )또한
feature.*
또는 bugfix.*
브랜치의 경우 채팅으로 알려 드리겠습니다.그리고는, 단위 테스트용의 Job를 호출하고 있습니다. (다른 기사 참조)
#!/bin/bash -l
set -eux
chatworkToken=XXXXXXXXXX
deleted=`echo $payload | jq -r '.deleted'`
author=`echo $payload | jq -r '.head_commit.author.name'`
if [[ $deleted != "true" ]] && [[ $author != "github-bot-user" ]]; then
GIT_BRANCH=`echo $payload | jq -r '.ref' | sed "s/refs\/heads\///"`
if [[ $GIT_BRANCH =~ review.* ]]; then
curl -X POST "http://<ホスト名>:8080/job/<Fabric転送するJOB名>/buildWithParameters?server=develop&branch=${GIT_BRANCH}"
elif [[ $GIT_BRANCH =~ release.* ]]; then
curl -X POST "http://<ホスト名>:8080/job/<Fabric転送するJOB名>/buildWithParameters?server=staging&branch=${GIT_BRANCH}"
elif [[ $GIT_BRANCH =~ (feature|bugfix).* ]]; then
pusher=`echo $payload | jq -r '.pusher.name'`
curl -X POST -H "X-ChatWorkToken: ${chatworkToken}" -d "body=${pusher}が${GIT_BRANCH}にPushしたのでレビューして。" "https://api.chatwork.com/v1/rooms/<ルームID>/messages"
fi
curl -X POST "http://<ホスト名>:8080/job/<単体テストのJOB名>/buildWithParameters?branch=${GIT_BRANCH}"
fi
Reference
이 문제에 관하여(Jenkins Plugin에 의존하지 않고 쉘만으로 Job을 구축한다(github webhook편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ko2ic/items/e6c9cd69690aba683e6f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)