์์คํฌ๋ฆฝํธ๋ ๋ํ๊ต ํ๋ถ์์ผ๋ก ๊ฐ์ ์๊ฐ์ ๋ง์ ธ๋ณธ ํ๋ก๋ ์ ํ ์์ ๋์ง ์์๋ ์์ญ์ธ๋ฐ์ ์ด๋ฒ์ ์ ํ๊ฒ ๋์์ต๋๋ค.
์์ฆ์๋ ๋ฐฐํฌํด๋ค์ด ์๋ ์ ๋์ค๊ณ ์ ๋์ด์๊ธฐ ๋๋ฌธ์ ์ด์๋๊ณ ์๋ ์๋น์ค๋ฅผ ์์ ํ๊ธฐ๊ฐ ์ฐธ ํธํ๋ฐ์ jenkins๋ฅผ ์ฌ์ฉํด์ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ์ item์ ๋ง๋ค์ด์ ํด๋น item์ ์์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ ๋ ๋ฐฐํฌ ์ ์ ์ฐํ๊ฒ ๋์์ํค๊ธฐ ์ํด์ ์์คํฌ๋ฆฝํธ์ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ์ ๊ณต๋ถํด์ผ๊ฒ ๋ค ์๊ฐ์ด ๋ค์๊ณ ์ด ํฌ์คํ ์์ ๋ค๋ค๋ณด๋ ค๊ณ ํฉ๋๋ค.
(์ด๋ฏธ ์์คํฌ๋ฆฝํธ๋ฅผ ์ ์์๊ฑฐ๋ ์ ๋ค๋ฃจ์๋ ๋ถ๋ค์ ์๋ฏธ ์๋ ํฌ์คํ ์ด ๋ ์ ์์ต๋๋ค)
์์คํฌ๋ฆฝํธ(Shell script)
์์คํฌ๋ฆฝํธ๋ ๋ฆฌ๋ ์ค๊ธฐ๋ฐ ์ด์์ฒด์ ์์ ๋์ํ๋ ์ฝ๊ฒ๋งํด ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค. ์๋์ฐ์์ ๋์ํ๋ ํ๋ก๊ทธ๋จ์ ํ์ฅ์๊ฐ .exeํ์ผ์ธ๊ฒ์ ๋น๊ตํด์ ์์คํฌ๋ฆฝํธ๋ shell์์ ์๊ธ์ 2๊ฐ๋ฅผ ๋ฐ์จ .shํ์ผ์ ๋๋ค.
๋ฆฌ๋ ์ค์ ๊ฐ์ด ๊ฝค ์ค๋์ ์ ๋ง๋ค์ด์ง ๋ฌธ๋ฒ์ด๊ธฐ ๋๋ฌธ์ ํ๋์ ์ธ์ด๋ค๊ณผ ๋น๊ตํ์ ๋ ๊ฐ๋ ์ฑ์ด ์ข์ง ์๋ค๊ณ ๋๋ ์ ์์ต๋๋ค.
์กฐ๊ฑด๋ฌธ ์ฌ์ฉ๋ฒ
์์คํฌ๋ฆฝํธ์์ ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ if๋ก ์์ํ๋ ๊ฒ์ ๋๊ฐ์ผ๋ ๋ณดํต์ ์ธ์ด๋ก๋ ๊ดํธ๋ก ๋ฌถ์ด์ ์กฐ๊ฑด์ ๋ฌถ์ด์ฃผ์๋ค๋ฉด ์์คํฌ๋ฆฝํธ์์๋๋ค์๊ณผ ๊ฐ์ด ๋๊ดํธ๋ก ๋ฌถ์ด์ค๋๋ค.
if ๋ฌธ๋ฒ
if [ ์กฐ๊ฑด ]; then
something do...
fi
์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์ if ๋ฌธ ๋ค์ ๋์ค๋ ๋๊ดํธ ๋ค์๋ ์คํ์ด์ค๋ฐ๋ฅผ ํ์นธ ๋์ด์ค์ผํ๋ ๊ฒ๊ณผ ์กฐ๊ฑด์ด ๋๋ ๋ค์๋ ์ธ๋ฏธ์ฝ๋ก ์ผ๋ก ๋ง๋ฌด๋ฆฌํ๊ณ SQL ์กฐ๊ฑด์์ฒ๋ผ then ๋ก ๋ง๋ฌด๋ฆฌํด์ฃผ์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์๋ if์ ๋ฐ๋์ธ fi๋ก ์กฐ๊ฑด๋ฌธ์ ๋๋ด์ฃผ๊ณ ๊ทธ ์์ ์ํ๋ ๋ก์ง์ ๊ตฌํํฉ๋๋ค.
๊ทธ ๋ค๋ก AND ๋๋ OR ์กฐ๊ฑด์ ์ถ๊ฐํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ๋ฉด ๋ฉ๋๋ค.
if ๋ฌธ๋ฒ AND
if [ ์กฐ๊ฑด ] && [ ์กฐ๊ฑด ]; then
something do...
fi
๋๋
if [ ์กฐ๊ฑด -a ์กฐ๊ฑด ]; then
something do...
fi
if ๋ฌธ๋ฒ OR
if [ ์กฐ๊ฑด ] || [ ์กฐ๊ฑด ]; then
something do...
fi
๋๋
if [ ์กฐ๊ฑด -o ์กฐ๊ฑด ]; then
something do...
fi
์กฐ๊ฑด๋ฌธ์ ๋ค์ด๊ฐ ์ ์๋ ์กฐ๊ฑด์
์กฐ๊ฑด์์ด๋ผ๊ณ ํ๋ฉด๋๋๊ฑด์ง ์ด์ํ๋ฐ์ ์นํ๋ก๊ทธ๋๋ฐ์ ๋น๋๋ฉด equals ๋ฉ์๋๊ฐ์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ํธํ๊ฒ ์ต๋๋ค.
์ข ๋ฅ๋ ์๋์ ๊ฐ์ต๋๋ค.
-eq : EQual
-ne : NEgative
-gt : Greater Than
-ge : Greater than Equal
-lt : Less Than
-le : Less than Equal
-d : Directory
-e : Exist
-L : symbolic Link
-r : Readable
-w : Writeable
-x : eXecute
-nt : Newer Than
-ot : Older Than
-ef : Equal File
์กฐ๊ฑด๋ฌธ ์์ ๋ค์ด๊ฐ ์ ์๋ ์
โป ๋น๊ต์
[ -z ${A} ] : A ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 0์ด๋ฉด TRUE (Zero)
[ -n ${A} ] : A ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 0์ด ์๋๋ฉด TRUE (Non zero)
[ ${A} -eq ${B} ] : A์ B๊ฐ์ด ๊ฐ์ผ๋ฉด TRUE (EQual)
[ ${A} -ne ${B} ] : A์ B๊ฐ์ด ๋ค๋ฅด๋ฉด TRUE (Not Equal)
[ ${A} -gt ${B} ] : A๊ฐ B๋ณด๋ค ํฌ๋ฉด TRUE (GreaTer)
[ ${A} -ge ${B} ] : A๊ฐ B๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉด TRUE (Greater or Equal)
[ ${A} -lt ${B} ] : A๊ฐ B๋ณด๋ค ์์ผ๋ฉด TRUE (LiTtle)
[ ${A} -le ${B} ] : A๊ฐ B๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด TRUE (Little or Equal)
[ ์กฐ๊ฑด์A -a ์กฐ๊ฑด์B ] : ์กฐ๊ฑด์ A์ B๊ฐ ๋ชจ๋ TRUE์ด๋ฉด TRUE (&& ์ ๋์ผ) (And)
[ ์กฐ๊ฑด์A -o ์กฐ๊ฑด์B ] : ์กฐ๊ฑด์ A๊ฐ TRUE๊ฑฐ๋ ์กฐ๊ฑด์B๊ฐ TRUE๋ฉด TRUE (|| ์ ๋์ผ) (Or)
โป ํ์ผ๊ด๋ จ
[ -d ${A} ] : A ํ์ผ์ด ๋๋ ํ ๋ฆฌ๋ฉด TRUE (Directory)
[ -e ${A} ] : A ํ์ผ์ด(๋
ธ๋, ๋๋ ํ ๋ฆฌ, ์์ผ ๋ฑ๋ฑ ๋ชจ๋) ์กด์ฌํ๋ฉด TRUE (Exist)
[ -L ${A} ] : A ํ์ผ์ด ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฉด TRUE (Link)
[ -r ${A} ] : A ํ์ผ์ด ์ฝ๊ธฐ ๊ฐ๋ฅํ๋ฉด TRUE (Readable)
[ -s ${A} ] : A ํ์ผ์ ํฌ๊ธฐ๊ฐ 0 ๋ณด๋ค ํฌ๋ฉด TRUE (Size)
[ -w ${A} ] : A ํ์ผ์ด ์ฐ๊ธฐ ๊ฐ๋ฅํ๋ฉด TRUE (Write)
[ -x ${A} ] : A ํ์ผ์ด ์คํ ๊ฐ๋ฅํ๋ฉด TRUE (eXecutable)
[ -c ${A} ] : A ํ์ผ์ด Special character file ์ด๋ฉด TRUE (Character file)
[ -f ${A} ] : A ํ์ผ์ด ๋๋ ํ ๋ฆฌ๊ฐ ์๋ ์ผ๋ฐ regular ํ์ผ์ด๋ฉด TRUE (File)
[ -S ${A} ] : A ํ์ผ์ด ์์ผ์ด๋ฉด TRUE (Socket)
[ ${A} -nt ${B} ] : A ํ์ผ B ํ์ผ๋ณด๋ค ์ต์ ํ์ผ์ด๋ฉด ์ฐธ (New Time)
[ ${A} -ot ${B} ] : A ํ์ผ์ด B ํ์ผ๋ณด๋ค ์ด์ ํ์ผ์ด๋ฉด ์ฐธ (Old Time)
[ ${A} -ef ${B} ] : A ํ์ผ๊ณผ B ํ์ผ์ด ๊ฐ์ ํ์ผ์ด๋ฉด ์ฐธ (Equal File)
์ ๋ ์๋ฒ์ ์์ค๋ฅผ ๋ฐฐํฌํ ๋ warํ์ผ์ด ์๋ ๊ฒฝ์ฐ์๋ง ๋ฐฐํฌ๋๋๋กํ๊ธฐ ์ํด์ ์ต์๋จ์ ๋ค์๊ณผ๊ฐ์ด ์กฐ๊ฑด๋ฌธ์ ๋ฃ์ด์ฃผ์์ต๋๋ค.
## ํ์ผ์ด ์๋ ๊ฒฝ์ฐ ์คํฌ๋ฆฝํธ ๋ก์ง ์ค๋จ
if [ ! -e ํ์ผ๊ฒฝ๋ก/public_source.war ] || [ ! -e ํ์ผ๊ฒฝ๋ก/admin_source.war ]; then
exit
fi
์ฐธ๊ณ