๐Ÿ“™ AWS EC2์— Jenkins ์„œ๋ฒ„ ๊ตฌ์ถ• (velog.io)

CI๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? - ์ง€์†์  ํ†ตํ•ฉ ์„ค๋ช… - AWS (amazon.com)

  1. ์  ํ‚จ์Šค ์„ค์น˜
  2. ๊ด€๋ฆฌ์ž ์ƒ์„ฑ
  3. Credentials ์ƒ์„ฑ
  4. New Item โ†’ Pipeline โ†’ Configure โ†’ Pipeline Script ์ž‘์„ฑ (Groovy)
  5. ์›๊ฒฉ ์ €์žฅ์†Œ clone
  6. Jenkins ์„œ๋น„์Šค ํ™ˆํŽ˜์ด์ง€ ๊ณต๊ฐœ
  7. ์œ ์ € ๊ณ„์ •
  8. ๊ตฌ๋ถ„๋œ ๋ฐฐํฌ์™€ ์ถ”์ 
    1. git sparse-checkout init --no-cone

      .git/info/sparse-checkout

      /AppIcon/
      /Build/
      /Config/
      /Content/
      /Plugins/*/.vs/
      /Plugins/*/Resources/
      /Plugins/*/Intermediate/
      /Plugins/*/Source/
      /Plugins/*/*.uplugin
      /Source/
      /.editorconfig
      /.gitattributes
      /.gitignore
      /.vsconfig
      /SuperPlat.uproject
      /SuperPlat.uproject.DotSettings.user
      /shadertoolsconfig.json
      
    2. git config lfs.fetchexclude "Plugins/*/Binaries/Win64/*.dll, Binaries/Win64/*.dll"

    3. exclude ํŒŒ์ผ

      1. staged(or unstaged) ๋‹จ๊ณ„์—์„œ ์ œ๊ฑฐ๊ฐ€ ์•ˆ๋œ ๊ฒฝ์šฐ

        git update-index --assume-unchanged <ํŒŒ์ผ๋ช…> e.g. git update-index --assume-unchanged Plugins/*/Binaries/Win64/*.dll


Groovy Script ์ž‘์„ฑ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

echo !OID!>> OIDs.txt     // O
echo !OID! >> OIDs.txt    // X

!OID! ๋’ค์— ๊ณต๋ฐฑ์ด ์žˆ์œผ๋ฉด, ๊ณต๋ฐฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ OIDs.txt ํŒŒ์ผ์— ์“ฐ์—ฌ์ง„๋‹ค
for /f "tokens=* usebackq" %%F in (`git diff-tree --no-commit-id --name-only -r HEAD ^| findstr /ri "Plugins/.*/Binaries/Win64/.*\\\\.dll"`) do ()

findstr ๋’ค์— ๊ฒฝ๋กœ๋Š” '/'๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฝ๋กœ๋ฅผ ํ‘œํ˜„.
๋งˆ์ง€๋ง‰ dll ํŒŒ์ผ์„ ์ง€์ •ํ•  ๋•Œ๋Š” '\\\\'๋กœ ํ‘œํ˜„. -> ๋ช…๋ น์ด ์‹คํ–‰๋  ๋•Œ, '\\\\'์€ '\\'๋กœ ํ•ด์„๋จ

<aside>

git ๋ช…๋ น์—์„œ ๊ฒฝ๋กœ๊ฐ€ ์“ฐ์ผ ๋•Œ, ํ•ญ์ƒ โ€˜/โ€™์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

batch ์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” โ€˜\โ€™๋ฅผ ์‚ฌ์šฉ

</aside>