์ง์์ ํตํฉ(CI)
์ง์์ ํตํฉ(CI)์ ๋ณ๊ฒฝ ์ฌํญ์ ํตํฉํ๊ณ ์๋์ผ๋ก ํ ์คํธํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ํ์์ ์ธ ์ธก๋ฉด์ ๋๋ค. CI๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ ๊ณผ์ ์์ ๋ฌธ์ ๋ฅผ ์กฐ๊ธฐ์ ์์ฃผ ๋ฐ๊ฒฌํ์ฌ ๊ณ ํ์ง ์ฝ๋๋ฅผ ์ ์งํ ์ ์์ต๋๋ค. Ultralytics ์์๋ ์ฝ๋๋ฒ ์ด์ค์ ํ์ง๊ณผ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ค์ํ CI ํ ์คํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
CI ์ก์
๋ค์์ CI ํ๋์ ๋ํ ๊ฐ๋ตํ ์ค๋ช ์ ๋๋ค:
- CI: ๋จ์ ํ ์คํธ, ๋ฆฐํ ๊ฒ์ฌ, ๋๋ก๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ฐ๋ผ ๋ ํฌ๊ด์ ์ธ ํ ์คํธ๋ฅผ ์คํํ๋ ๊ธฐ๋ณธ CI ํ ์คํธ์ ๋๋ค.
- Docker ๋ฐฐํฌ: ์ด ํ ์คํธ๋ Docker๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ์ ๋ฐฐํฌ๋ฅผ ํ์ธํ์ฌ Dockerํ์ผ ๋ฐ ๊ด๋ จ ์คํฌ๋ฆฝํธ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋์ง ํ์ธํฉ๋๋ค.
- ๋์ด์ง ๋งํฌ: ์ด ํ ์คํธ๋ ์ฝ๋๋ฒ ์ด์ค์์ markdown ๋๋ HTML ํ์ผ์ ๋์ด์ง๊ฑฐ๋ ์ฃฝ์ ๋งํฌ๊ฐ ์๋์ง ๊ฒ์ฌํฉ๋๋ค.
- CodeQL: CodeQL์ ์ฝ๋์ ๋ํ ์๋ฏธ ๋ถ์์ ์ํํ์ฌ ์ ์ฌ์ ์ธ ๋ณด์ ์ทจ์ฝ์ ์ ์ฐพ์๋ด๊ณ ๊ณ ํ์ง ์ฝ๋๋ฅผ ์ ์งํ๋๋ก ๋์์ฃผ๋ GitHub์ ๋๊ตฌ์ ๋๋ค.
- PyPI ๊ฒ์: ์ด ํ ์คํธ๋ ํ๋ก์ ํธ๋ฅผ ํจํค์งํ๊ณ ์ค๋ฅ ์์ด PyPi์ ๊ฒ์ํ ์ ์๋์ง ํ์ธํฉ๋๋ค.
CI ๊ฒฐ๊ณผ
์๋๋ ์ฃผ์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํ ์ด๋ฌํ CI ํ ์คํธ์ ์ํ๋ฅผ ๋ณด์ฌ์ฃผ๋ ํ์ ๋๋ค:
๋ฆฌํฌ์งํ ๋ฆฌ | CI | ๋์ปค ๋ฐฐํฌ | ๋์ด์ง ๋งํฌ | CodeQL | PyPI ๋ฐ ๋ฌธ์ ๊ฒ์ |
---|---|---|---|---|---|
yolov3 | |||||
yolov5 | |||||
ultralytics | |||||
hub-sdk | |||||
ํ๋ธ | |||||
mkdocs | |||||
thop | |||||
์์ | |||||
๋ฌธ์ | |||||
ํธ๋๋ถ |
๊ฐ ๋ฐฐ์ง์๋ ํด๋น CI ํ
์คํธ์ ๋ง์ง๋ง ์คํ ์ํ๊ฐ ํ์๋ฉ๋๋ค. main
๋ธ๋์น๋ก ์ด๋ํฉ๋๋ค. ํ
์คํธ์ ์คํจํ๋ฉด ๋ฐฐ์ง์ '์คํจ' ์ํ๊ฐ ํ์๋๊ณ , ํต๊ณผํ๋ฉด 'ํฉ๊ฒฉ' ์ํ๊ฐ ํ์๋ฉ๋๋ค.
ํ ์คํธ๊ฐ ์คํจํ๋ ๊ฒ์ ๋ฐ๊ฒฌํ๋ฉด ํด๋น ๋ฆฌํฌ์งํ ๋ฆฌ์ GitHub ์ด์๋ฅผ ํตํด ๋ณด๊ณ ํด ์ฃผ์๋ฉด ํฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
์ฑ๊ณต์ ์ธ CI ํ ์คํธ๊ฐ ๋ชจ๋ ๊ฒ์ด ์๋ฒฝํ๋ค๋ ๊ฒ์ ์๋ฏธํ์ง๋ ์์ต๋๋ค. ๋ฐฐํฌํ๊ฑฐ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ณํฉํ๊ธฐ ์ ์ ํญ์ ์ฝ๋๋ฅผ ์๋์ผ๋ก ๊ฒํ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ฝ๋ ์ ์ฉ ๋ฒ์
์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง๋ ํ ์คํธ๊ฐ ์คํ๋ ๋ ์คํ๋๋ ์ฝ๋๋ฒ ์ด์ค์ ๋น์จ์ ๋ํ๋ด๋ ๋ฉํธ๋ฆญ์ ๋๋ค. ํ ์คํธ๊ฐ ์ฝ๋๋ฅผ ์ผ๋ง๋ ์ ์คํํ๋์ง์ ๋ํ ์ธ์ฌ์ดํธ๋ฅผ ์ ๊ณตํ๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํ ์คํธ๋์ง ์์ ๋ถ๋ถ์ ์๋ณํ๋ ๋ฐ ์ค์ํ ์ ์์ต๋๋ค. ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง ๋น์จ์ด ๋์์๋ก ๋ฒ๊ทธ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ๋ฎ์ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ํ์ง๋ง ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง๊ฐ ๊ฒฐํจ์ ๋ถ์ฌ๋ฅผ ๋ณด์ฅํ์ง๋ ์๋๋ค๋ ์ ์ ์ดํดํด์ผ ํฉ๋๋ค. ๋จ์ง ์ฝ๋์ ์ด๋ ๋ถ๋ถ์ด ํ ์คํธ์ ์ํด ์คํ๋์๋์ง๋ฅผ ๋ํ๋ผ ๋ฟ์ ๋๋ค.
codecov.io์ ํตํฉ
Ultralytics ์์ ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ์ธก์ ํ๊ณ ์๊ฐํํ ์ ์๋ ์ธ๊ธฐ ์๋ ์จ๋ผ์ธ ํ๋ซํผ์ธ codecov.io์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ํตํฉํ์ต๋๋ค. Codecov๋ ์์ธํ ์ธ์ฌ์ดํธ, ์ปค๋ฐ ๊ฐ์ ์ปค๋ฒ๋ฆฌ์ง ๋น๊ต, ์ฝ๋์ ์ง์ ์๊ฐ์ ์ค๋ฒ๋ ์ด๋ฅผ ์ ๊ณตํ์ฌ ์ด๋ค ์ค์ด ์ปค๋ฒ๋์๋์ง ์๋ ค์ค๋๋ค.
์ฝ๋ฐ์ฝ๋ธ์์ ํตํฉ์ ํตํด ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ๊ฑฐ๋ ์ถ๊ฐ ํ ์คํธ๊ฐ ํ์ํ ์์ญ์ ์ง์คํ์ฌ ์ฝ๋์ ํ์ง์ ์ ์งํ๊ณ ๊ฐ์ ํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
์ปค๋ฒ๋ฆฌ์ง ๊ฒฐ๊ณผ
์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง ์ํ๋ฅผ ๋น ๋ฅด๊ฒ ํ์
ํ๋ ค๋ฉด ultralytics
python ํจํค์ง์๋ ๋ฐฐ์ง์ ์ ๋ฒ์คํธ ๋น์ฃผ์ผ์ด ํฌํจ๋์ด ์์ต๋๋ค. ultralytics
์ปค๋ฒ๋ฆฌ์ง ๊ฒฐ๊ณผ. ์ด ์ด๋ฏธ์ง๋ ํ
์คํธ๊ฐ ์ปค๋ฒํ๋ ์ฝ๋์ ๋น์จ์ ๋ณด์ฌ ์ฃผ๋ฉฐ, ํ
์คํธ ๋
ธ๋ ฅ์ ํ๋์ ํ์
ํ ์ ์๋ ์งํ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ค์์ ์ฐธ์กฐํ์ธ์. https://codecov.io/github/ultralytics/ultralytics.
๋ฆฌํฌ์งํ ๋ฆฌ | ์ฝ๋ ์ ์ฉ ๋ฒ์ |
---|---|
ultralytics |
์๋ ํด๋ฐ๋ผ๊ธฐ ๊ทธ๋ํฝ์์ ๊ฐ์ฅ ์์ชฝ ์์ ์ ์ฒด ํ๋ก์ ํธ์ด๊ณ , ๊ฐ์ด๋ฐ์์ ๋ฉ์ด์ง์๋ก ํด๋, ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก ๋จ์ผ ํ์ผ์ ๋๋ค. ๊ฐ ์ฌ๋ผ์ด์ค์ ํฌ๊ธฐ์ ์์์ ๊ฐ๊ฐ ๋ช ๋ น๋ฌธ์ ์์ ๋ฒ์๋ฅผ ๋ํ๋ ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
Ultralytics ์์ ์ง์์ ํตํฉ(CI)์ด๋ ๋ฌด์์ธ๊ฐ์?
Ultralytics ์ ์ง์์ ํตํฉ(CI)์ ๊ณ ํ์ง ํ์ค์ ๋ณด์ฅํ๊ธฐ ์ํด ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์๋์ผ๋ก ํตํฉํ๊ณ ํ ์คํธํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ ํฌ์ CI ์ค์ ์๋ ๋จ์ ํ ์คํธ ์คํ , ๋ฆฐํ ๊ฒ์ฌ, ์ข ํฉ ํ ์คํธ๊ฐ ํฌํจ๋ฉ๋๋ค. ๋ํ, Docker ๋ฐฐํฌ, ๊นจ์ง ๋งํฌ ๊ฒ์ฌ, ๋ณด์ ์ทจ์ฝ์ ์ ๋ํ CodeQL ๋ถ์, ์ํํธ์จ์ด ํจํค์ง ๋ฐ ๋ฐฐํฌ๋ฅผ ์ํ PyPI ํผ๋ธ๋ฆฌ์ฑ์ ์ํํฉ๋๋ค.
Ultralytics ์์๋ ๋ฌธ์์ ์ฝ๋์์ ๋์ด์ง ๋งํฌ๋ฅผ ์ด๋ป๊ฒ ํ์ธํ๋์?
Ultralytics ๋ ํน์ CI ์์ ์ ์ฌ์ฉํ์ฌ markdown ๋ฐ HTML ํ์ผ ๋ด์์ ๋์ด์ง ๋งํฌ๋ฅผ ํ์ธํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฃฝ์ ๋งํฌ๋ ๋์ด์ง ๋งํฌ๋ฅผ ์ค์บํ๊ณ ์๋ณํ์ฌ ์ฌ์ฉ์๊ฐ ํญ์ ์ ํํ ๋ผ์ด๋ธ ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์๋๋ก ํจ์ผ๋ก์จ ๋ฌธ์์ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
CodeQL ๋ถ์์ด Ultralytics' ์ฝ๋๋ฒ ์ด์ค์ ์ค์ํ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
CodeQL ๋ถ์์ ์๋งจํฑ ์ฝ๋ ๋ถ์์ ์ํํ์ฌ ์ ์ฌ์ ์ธ ๋ณด์ ์ทจ์ฝ์ ์ ์ฐพ์๋ด๊ณ ๊ณ ํ์ง ํ์ค์ ์ ์งํ๊ธฐ ๋๋ฌธ์ Ultralytics ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. CodeQL์ ์ฌ์ฉํ๋ฉด ์ฝ๋์ ์ํ์ ์ฌ์ ์ ์๋ณํ๊ณ ์ํํ์ฌ ๊ฐ๋ ฅํ๊ณ ์์ ํ ์ํํธ์จ์ด ์๋ฃจ์ ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
Ultralytics ๋ฐฐํฌ์ Docker๋ฅผ ์ด๋ป๊ฒ ํ์ฉํ๋์?
Ultralytics ๋ ์ ์ฉ CI ์์ ์ ํตํด ํ๋ก์ ํธ ๋ฐฐํฌ๋ฅผ ๊ฒ์ฆํ๊ธฐ ์ํด Docker๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ํ๋ก์ธ์ค๋ฅผ ํตํด Dockerํ์ผ๊ณผ ๊ด๋ จ ์คํฌ๋ฆฝํธ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋์ง ํ์ธํ์ฌ ํ์ฅ ๊ฐ๋ฅํ๊ณ ์์ ์ ์ธ AI ์๋ฃจ์ ์ ํ์์ ์ธ ์ผ๊ด๋๊ณ ์ฌํ ๊ฐ๋ฅํ ๋ฐฐํฌ ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
Ultralytics ์์ ์๋ํ๋ PyPI ํผ๋ธ๋ฆฌ์ฑ์ ์ญํ ์ ๋ฌด์์ธ๊ฐ์?
์๋ํ๋ PyPI ๊ฒ์๋ฅผ ํตํด ํ๋ก์ ํธ๋ฅผ ์ค๋ฅ ์์ด ํจํค์งํ๊ณ ๊ฒ์ํ ์ ์์ต๋๋ค. ์ด ๋จ๊ณ๋ Ultralytics' Python ํจํค์ง๋ฅผ ๋ฐฐํฌํ๋ ๋ฐ ํ์์ ์ด๋ฉฐ, ์ฌ์ฉ์๊ฐ Python ํจํค์ง ์ธ๋ฑ์ค(PyPI)๋ฅผ ํตํด ์ฝ๊ฒ ๋๊ตฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ ์ ์๋๋ก ํฉ๋๋ค.
Ultralytics ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ์ด๋ป๊ฒ ์ธก์ ํ๋ฉฐ ์ ์ค์ํ๊ฐ์?
Ultralytics ๋ Codecov์ ํตํฉํ์ฌ ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ์ธก์ ํ์ฌ ํ ์คํธ ์ค์ ์ฝ๋๋ฒ ์ด์ค๊ฐ ์ผ๋ง๋ ์คํ๋๋์ง์ ๋ํ ์ธ์ฌ์ดํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง๊ฐ ๋์ผ๋ฉด ํ ์คํธ๊ฐ ์๋ ์ฝ๋๋ฅผ ์๋ฏธํ๋ฉฐ, ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๊ธฐ ์ฌ์ด ํ ์คํธ๋์ง ์์ ์์ญ์ ๋ฐ๊ฒฌํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์์ธํ ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง ๋ฉํธ๋ฆญ์ ์ฃผ์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ํ์๋๋ ๋ฐฐ์ง ๋๋ Codecov์์ ์ง์ ์ดํด๋ณผ ์ ์์ต๋๋ค.