๋น๋ ์คํ
์ด์ ์์ ์์ธ ์ค์ ์ด ๋๋ฌ๋ค๋ฉด ์ข์ธก์ "Jenkins" ๋ฅผ ํด๋ฆญํ์ฌ ๋์ฌ๋ณด๋๋ก ์ด๋ํด ๋ณด์.
๋์ฌ๋ณด๋๋ ๋ฑ๋ก๋ ํ๋ก์ ํธ์ ๋น๋ ์คํ ์ํ, ๋น๋ ๋๊ธฐ ๋ชฉ๋ก์ ํ์ํ ๊ฒ์ด๋ค.
ย
ย
์์ ๋์๋ณด๋
์ด์ ๋์ฌ๋ณด๋์์ ์์ ์ด๋ฆ(lib-hello)์ ํด๋ฆญํ์ฌ ์์ ์ ๋ณด ํ๋ฉด์ผ๋ก ์ด๋ํด ๋ณด์.
ย
ํ์ฌ ์์ ์ ๋ํด ๋ค์ํ ์ ๋ณด๋ฅผ ๋ณผ ์ ์๋ ์์ ๋์๋ณด๋๊ฐ ํ์๋๋ค. ์ค์ ๋ถ๋ถ์ "Workspace" ์์๋ ์ฒดํฌ์์ํ ๋น๋ ์์ ๊ณต๊ฐ์ ํ์ธํ ์ ์์ผ๋ฉฐ "Recent Changes" ์์๋ ์์ค์ ๋ณ๊ฒฝ ๋ด์ญ์ ํ์ธํ ์ ์๋ค.
๊ทธ ์๋ "ํ์ ํ๋ก์ ํธ" ๋ ํ์ฌ ์์ ์ ์์กดํ๋ ์์ ๋ชฉ๋ก์ ํ์ํ๋ค. hello-webapp ๋ lib-hello ์ ์์กดํ๋ฏ๋ก ํ์๋์ด ์๋ค.
์ข์ธก์ ๋ฉ๋ด๋ณ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ๋ค.
ย
๋์๋ณด๋๋ก ๋์๊ฐ๊ธฐ
์ ํจ์ค์ ๋ฉ์ธ ๋์๋ณด๋๋ก ์ด๋ํ๋ค.
ย
์ํ
์์์ ์ค๋ช ํ ์์ ย ๋์๋ณด๋๋ก ์ด๋ํ๋ค.
๋ณ๊ฒฝ ์ฌํญ
์์ ๋์๋ณด๋์ย "Recent Changes" ๋ฉ๋ด์ ๋์ผํ ๊ธฐ๋ฅ์ ์ํํ๋ค.
์์ ๊ณต๊ฐ
์์ ๋์๋ณด๋์ย "Workspace" ๋ฉ๋ด์ ๋์ผํย ๊ธฐ๋ฅ์ ์ํํ๋ค.
Build now
์ค์ ์ ๋ฐ๋ผ ํ์ฌ ์์ ์ ๋น๋ํ๋ค. ์์์ ์ผ๋ก ๋น๋๋ฅผ ์ํํ ๋ ์ด ๋ฉ๋ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
Maven project ์ญ์
ํ์ฌ ์์ ์ ์ญ์ ํ๋ ๋ฉ๋ด์ด๋ค. ๊ทธ๋์ ๋น๋ํ ์ด๋ ฅ๊ณผ ์ํฐํฉํธ๋ ๋ชจ๋ ์ญ์ ํ๋ฏ๋ก ์คํ์ ์ฃผ์ํด์ผ ํ๋ค.ย
๊ตฌ์ฑ
์ ์ ์์ ์ค๋ช ํ ์์ ์์ธ ์ค์ ์ ํ ์ ์๋ ๋ฉ๋ด์ด๋ค. ๋น๋ ์ค์ ์ ์์ ํด์ผ ํ ๊ฒฝ์ฐ ์ด ๋ฉ๋ด๋ฅผ ํตํด ์ค์ ์ ๋ณ๊ฒฝํ์.
Modules
๋ฉ์ด๋ธ ํ๋ก์ ํธ์ผ๋๋ง ํ์๋๋ ๋ฉ๋ด์ด๋ค. ๋ฉ์ด๋ธ ํ๋ก์ ํธ๋ฅผ ๋ฉํฐ ๋ชจ๋๋ก ๊ตฌ์ฑํ์ ๊ฒฝ์ฐ ์ด ๋ฉ๋ด๋ฅผ ํตํด์ ๊ฐ ๋ชจ๋๋ณ ๋น๋ ํํฉ ๋ฐ ์ํ๋ฅผ ๋ณผ ์ ์๋ค.
๋ณต์กํ๊ณ ํฐ ํ๋ก์ ํธ์ผ ๊ฒฝ์ฐ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
ย
๋ฉ๋ด์ ๋ํ ์ดํด๊ฐ ๋๋ฌ๋ค๋ฉด ๋น๋๋ฅผ ์คํํด ๋ณด์. ย ์ข์ธก์ ๋ฉ๋ด์์ "Build Now" ๋ฅผ ํด๋ฆญํ๋ฉด ์๋์ผ๋ก ๋น๋๋ฅผ ์งํํ ์ ์๋ค.
๋น๋๊ฐ ์์๋๋ฉด "Build history" ์ ํ์ฌ ๋น๋๊ฐ ์ถ๊ฐ๋๋ฉฐ ์งํ ๋ด์ญ์ด ํ์๊ฐ ๋๋ค.
๋น๋ ํ์คํ ๋ฆฌ์์ ๋น๋ ๋ฒํธ๋ฅผ ํด๋ฆญํ์ฌ ๋น๋์ ์์ธ ๋ด์ญ์ ํ์ธํ ์ ์๋ค.
ย
๋น๋ ๋์๋ณด๋
ํ๋ฉด์ ์์ ๊ฐ์ด ๊ฐ๋ณ ๋น๋์ ๋ํ ๋์๋ณด๋๋ก ๋ณ๊ฒฝ์ด ๋์ด ์ค์ํ ์ ๋ณด๋ฅผ ํ ๋์ ์ดํด๋ณผ ์ ์๋ค.
์ฐ์ธก ์๋จ์ "์ด๋ฒ ๋น๋ ์๊ตฌ ๋ณด๊ดํ๊ธฐ" ๋ฅผ ๋ฒํผ์ ๋ณด์. ์ ํจ์ค๋ ๊ฐ๋ณ ๋น๋๋ฅผ ์ญ์ ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ข์ธก์ "์ด ๋น๋๋ฅผ ์ญ์ " ๋ฉ๋ด๋ฅผ ํตํด ์ ๊ณตํ๊ณ ์๋ค.
๋ฆด๋ฆฌ์ค ๋น๋๋ฑ ์ค์ํ ๋น๋์ผ ๊ฒฝ์ฐ "์ด๋ฒ ๋น๋ ์๊ตฌ ๋ณด๊ดํ๊ธฐ" ๋ฅผ ํด๋ฆญํ๋ฉด ๋ฒํผ์ด "Don't keep this build forever" ๋ก ์ด๋ฆ์ด ๋ณ๊ฒฝ๋๋ฉฐ ์ข์ธก์ย "์ด ๋น๋๋ฅผ ์ญ์ "๋ฅผ ํตํด์๋ ์ญ์ ํ ์ ์๋ค.
๋น๋๋ฅผ ์ญ์ ๊ฐ๋ฅ ์ํ๋ก ๋ณ๊ฒฝํ๋ ค๋ฉดย "Don't keep this build forever" ๋ฅผ ๋๋ฌ์ผ ํ๋ค.
์ด์ ์ข์ธก์ ๊ฐ๋ณ ๋ฉ๋ด์ ๊ธฐ๋ฅ์ ์ดํด ๋ณด์.
ย
์ํ
๋น๋ ๋์๋ณด๋๋ก ์ด๋ํ๋ ๋ฉ๋ด์ด๋ค.
๋ฐ๋์
ํ์ฌ ๋น๋์ ์์ค ๋ฆฌ๋น์ ๋ฐ ๋ณ๊ฒฝ ๋ก๊ทธ๋ฅผ ํ์ธํ ์ ์๋ค.
Console output
์ ํจ์ค๋ ๋ฉ์ด๋ธ์ด๋ ์คํธ๋ฑ ์ธ๋ถ ๋น๋ํด์ ์ฌ์ฉํ์ฌ ๋น๋๋ฅผ ์ํํ๋ค. ๋น๋ ํด์ ๋น๋ ๊ณผ์ ์ ๋ณดํต ์ฝ์๋ก ์ถ๋ ฅํ๋ฏ๋ก ์ด ๋ฉ๋ด๋ฅผ ํตํด์ ๋น๋ ํด์ด ์ํ๋๋ ๊ณผ์ ๊ณผ ๋ก๊ทธ๋ฅผ ํ์ธํ ์ ์๋ค.
๋น๋ ์ ๋ณด ์์
๋น๋ ํ์คํ ๋ฆฌ์ ๋น๋ ๋ชฉ๋ก์ ๋น๋ ๋ฒํธ๋ก ํ์ํ๊ฒ ๋๋ค. ๋ง์ผ์คํค์ด๋ ๋ฆด๋ฆฌ์ค ๋น๋๋ฑ ์๋ฏธ์๋ ๋น๋์ผ ๊ฒฝ์ฐ ์ด ๋ฉ๋ด๋ฅผ ํตํด์ ์๋ฏธ์๋ ์ด๋ฆ์ ์ค์ ํ ์ ์๋ค. ์ค์ ๋ ๋น๋๋ ํ์คํ ๋ฆฌ์์ ๋น๋ ๋ฒํธ๊ฐ ์๋ ์ด๋ฆ์ผ๋ก ํ์๋๋ค.
๊ด๋ฆฌ๊ฐ ํ์ํ ๋น๋์ผ ๊ฒฝ์ฐ ๊ผญ ์์์ ์ค๋ช ํ "์ด๋ฒ ๋น๋ ์๊ตฌ ๋ณด๊ดํ๊ธฐ" ๋ฅผ ํด๋ฆญํ์ฌ ์ญ์ ๋ฅผ ๋ฐฉ์งํ์.
์ด ๋น๋๋ฅผ ์ญ์
ํ์ฌ ๋น๋๋ฅผ ์ญ์ ํ๋ ๋ฉ๋ด์ด๋ค. ๋น๋ ๋ด์ญ๊ณผ ์ฐ์ถ๋ฌผ๋ ๊ฐ์ด ์ญ์ ๋๋ค.
Git Build Data
๋น๋ํ git์ ๋ฆฌ๋น์ ํด์ ์ ๋ณด์ ๋ธ๋์น๋ฅผ ํ์ธํ ์ ์๋ ๋ฉ๋ด์ด๋ค.
No tags
๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ํ๊น ์ ํ ์ ์๋ ๋ฉ๋ด์ด๋ค. ๋ฆด๋ฆฌ์ค ๋น๋๋ฑ ํน๋ณํ ์๋ฏธ์๊ณ ๊ด๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์์ ์ ์ผ๋ก ํตํฉ์ด ๋๋ฌ๋ค๋ฉด ๋ฐ๋ก ๋ฒ์ ๊ด๋ฆฌ์ ํ๊น ํ์ฌ ๊ด๋ฆฌํ ์ ์๋ค.
Test Result
jUnit ์ด๋ TestNG ๋ฑ์ผ๋ก ์๋ํ๋ ํ ์คํธ๋ฅผ ๊ตฌ์ฑํ๊ณ ๋น๋์ ์ด๋ฅผ ์คํํ๋ค๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์๋ค.ย
Redeploy Artifacts
๋น๋์ ๊ฒฐ๊ณผ๋ฌผ์ธ ์ํฐํฉํธ๋ฅผ ์ ์ฅ์์ ๋ํ๋ก์ดํ ์ ์๋ ๋ฉ๋ด์ด๋ค. ์ฐ์ธก์ "๊ณ ๊ธ" ๋ฉ๋ด๋ฅผ ๋๋ฌ์ ์ ์ฅ์ URL ๊ณผ ID ๋ฅผ ์ค์ ํ๊ณ ๋ฐ๋ก ๋ํ๋ก์ดํ ์ ์๋ค.
์ ์ฅ์ ID ์ ์ผ์นํ๋ ์ธ์ฆ ์ ๋ณด๊ฐ ์ ํจ์ค๋ฅผ ์คํํ ๊ณ์ ์ .m2/settings.xml ์ ์ค์ ๋์ด ์์ด์ผ ์ ์ ๋์ํ๋ค.
See Fingerprints
์ํฐํฉํธ์ MD5 ํด์ฌ๊ฐ์ ํ์ธํ ์ ์๋ค.