AWS jenkins gitHub webhook ์—ฐ๋™

์ฒญํฌ๋„๋ด‰๋ด‰์ดยท2023๋…„ 10์›” 3์ผ
0

AWS

๋ชฉ๋ก ๋ณด๊ธฐ
8/14
post-thumbnail

๐Ÿšฉ ๊ฐœ์š”

GitHub webhook์„ Jenkins์™€ ์—ฐ๋™ํ•˜๋Š” ๊ฒƒ์€ GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ Jenkins์—๊ฒŒ ์•Œ๋ฆฌ๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์†Œ์Šค ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด๋‚˜ ๋‹ค๋ฅธ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ Jenkins์—์„œ ์ž๋™์œผ๋กœ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ๋“ฑ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ github repository์˜ main branch์— push๊ฐ€ ๊ฐ์ง€๋˜๋ฉด jenkins์—์„œ ์ž๋™์œผ๋กœ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด์ค„ ๊ฒƒ์ด๋‹ค.

๐Ÿšฉ Jenkins ์„ค์ •

๐Ÿ‘‰ ์ƒˆ๋กœ์šด Item ์ƒ์„ฑ

FreeStyle project๋กœ ์ƒ์„ฑํ•œ๋‹ค.

Project Url์—” ์—ฐ๊ฒฐํ•  Repository Url์„ ์ ์–ด์ค€๋‹ค.

Repository Url: Repository Url์„ ์ ์–ด์ค€๋‹ค.

Credentials

  • Domain : Global credentials (unrestricted)
  • Kind : Username with password
  • Scope : Global(Jenkins, nodes, items, all child items, etc)
  • Username : GitHub ์•„์ด๋””
  • password : GitHub ํŒจ์Šค์›Œ๋“œ
  • ID : Credential์˜ ์ด๋ฆ„ (๋ณธ์ธ์ด ์•Œ์•„๋ณด๊ธฐ ํŽธํ•˜๊ฒŒ ์ž‘์„ฑ)

Tasks

clean build -x test # test๋Š” ์ œ์™ธํ•˜๊ณ  ๋นŒ๋“œ

jenkins์—์„œ test๋ฅผ ํฌํ•จํ•˜๊ณ  ๋นŒ๋“œ๋ฅผ ํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์–ด์„œ ์ œ์™ธ์‹œ์ผฐ๋‹ค.




๐Ÿšฉ GitHub ์„ค์ •

๐Ÿ‘‰ WeboHook ์„ค์ •

URL์„ ์œ„์™€ ๊ฐ™์ด EC2 ์ธ์Šคํ„ด์Šค์˜ IP์™€ ์  ํ‚จ์Šค๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ํฌํŠธ๋ฅผ ์„ค์ •ํ•˜๊ณ  /github-webhook/ ์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

Example

http://IP:PORT/github-webhook/

์ด๋ ‡๊ฒŒ๊นŒ์ง€ ์„ค์ •ํ•˜์…จ๋‹ค๋ฉด ํ•ด๋‹น repository๋ฅผ push ํ•˜๋ฉด jenkins์—์„œ build๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.

profile
์„œ๋ฒ„ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž

0๊ฐœ์˜ ๋Œ“๊ธ€