ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ïŒCIïŒ
CIïŒContinuous IntegrationïŒç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ïŒã¯ãå€æŽãèªåçã«çµ±åããŠãã¹ãããããœãããŠã§ã¢éçºã«äžå¯æ¬ ãªãã®ã§ããCIã¯ãéçºããã»ã¹ã®æ©æãã€é »ç¹ã«åé¡ãæ€åºããããšã«ãããé«å質ã®ã³ãŒããç¶æããããšãå¯èœã«ããŸããUltralytics ã§ã¯ãã³ãŒãããŒã¹ã®å質ãšå®å šæ§ãä¿èšŒããããã«ãããŸããŸãª CI ãã¹ãã䜿çšããŠããŸãã
CIã¢ã¯ã·ã§ã³
以äžã¯ãæã ã®CI掻åã®ç°¡åãªèª¬æã§ããïŒ
- CI:ããã¯ç§ãã¡ã®äž»èŠãªCIãã¹ãã§ããããŠããããã¹ãããªã³ãã£ã³ã°ãã§ãã¯ããããŠãªããžããªã«ãã£ãŠã¯ããå æ¬çãªãã¹ããå®è¡ããã
- Dockerãããã€ã¡ã³ãïŒãã®ãã¹ãã§ã¯ãDockerã䜿çšãããããžã§ã¯ãã®ãããã€ã¡ã³ãããã§ãã¯ããDockerãã¡ã€ã«ãšé¢é£ã¹ã¯ãªãããæ£ããåäœããŠããããšã確èªããŸãã
- ãªã³ã¯åãïŒãã®ãã¹ãã§ã¯ãmarkdown ã HTML ãã¡ã€ã«ã«ãªã³ã¯åãããªã³ã¯åãããªãããã³ãŒãããŒã¹ãã¹ãã£ã³ããŸãã
- CodeQLïŒCodeQLã¯GitHubã®ããŒã«ã§ãã³ãŒãã®ã»ãã³ãã£ãã¯åæãè¡ããæœåšçãªã»ãã¥ãªãã£è匱æ§ã®çºèŠãé«å質ãªã³ãŒãã®ç¶æã«åœ¹ç«ã¡ãŸãã
- PyPIå ¬é:ãã®ãã¹ãã§ã¯ããããžã§ã¯ãããšã©ãŒãªãããã±ãŒãžåãããPyPiã«å ¬éã§ãããã©ããã確èªããŸãã
CIçµæ
以äžã¯ãæã ã®äž»èŠãªããžããªã«å¯Ÿãããããã®CIãã¹ãã®ã¹ããŒã¿ã¹ã瀺ãè¡šã§ããïŒ
ãªããžã㪠| CI | Dockerã®ãããã€ã¡ã³ã | ãªã³ã¯åã | ã³ãŒãQL | PyPIãšDocsã®å ¬é |
---|---|---|---|---|---|
ãšãã3 | |||||
yolov5 | |||||
ultralytics | |||||
ããSDK | |||||
ãã | |||||
ãã¯ããã¯ã¹ | |||||
ã©ã | |||||
è¡å | |||||
諞泚æ | |||||
ãã³ããã㯠|
åãããžã¯ã察å¿ããCIãã¹ãã®æåŸã®å®è¡ã®ã¹ããŒã¿ã¹ã瀺ãã main
ãã©ã³ãã«è¿œå ããŸãããã¹ãã倱æããå Žåããããžã¯ "failure" ã¹ããŒã¿ã¹ã衚瀺ããåæ Œããå Žå㯠"passing" ã¹ããŒã¿ã¹ã衚瀺ããŸãã
ãã¹ãã倱æããŠããããšã«æ°ã¥ããããåãªããžããªã®GitHub issueã§å ±åããŠããã ãããšå©ãããŸãã
CIãã¹ããæåãããããšãã£ãŠããã¹ãŠãå®ç§ãšããããã§ã¯ãªãããšãå¿ããªãã§ã»ããããããã€ãå€æŽãããŒãžããåã«ãæåã§ã³ãŒããã¬ãã¥ãŒããããšãåžžã«æšå¥šããã
ã³ãŒãã»ã«ãã¬ããž
ã³ãŒãã«ãã¬ããžã¯ããã¹ããå®è¡ããããšãã«å®è¡ãããã³ãŒãããŒã¹ã®å²åãè¡šãææšã§ããã³ãŒãã«ãã¬ããžã¯ããã¹ããã³ãŒãã«å¯ŸããŠã©ã®çšåºŠæå¹ã§ãããã瀺ããã®ã§ããã ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ããããŠããªãéšåãç¹å®ããäžã§éåžžã«éèŠã§ããã³ãŒãã«ãã¬ããžã®å²åãé«ããšããã°ãçºçããå¯èœæ§ãäœããªããŸããããããã³ãŒãã«ãã¬ããžã¯ãäžå ·åããªãããšãä¿èšŒãããã®ã§ã¯ãªãããšãç解ããããšãéèŠã§ããåã«ãã³ãŒãã®ã©ã®éšåããã¹ãã«ãã£ãŠå®è¡ããããã瀺ãã ãã§ãã
codecov.ioãšã®çµ±å
Ultralytics ã§ã¯ãã³ãŒãã»ã«ãã¬ããžã枬å®ã»èŠèŠåãã人æ°ã®ãªã³ã©ã€ã³ã»ãã©ãããã©ãŒã ã§ããcodecov.io ãšãªããžããªãçµ±åããŸãããCodecovã¯ã詳现ãªæŽå¯ãã³ãããéã®ã«ãã¬ããžæ¯èŒãã©ã®è¡ãã«ããŒããããã瀺ãèŠèŠçãªãªãŒããŒã¬ã€ãã³ãŒãäžã«çŽæ¥è¡šç€ºããŸãã
Codecovãšçµ±åããããšã§ããšã©ãŒãçºçããããéšåããããªããã¹ããå¿ èŠãªéšåã«çŠç¹ãåœãŠãã³ãŒãã®å質ãç¶æã»åäžãããããšãç®æããŠããŸãã
åæçµæ
ã®ã³ãŒãã»ã«ãã¬ããžã»ã¹ããŒã¿ã¹ãçŽ æ©ãç¥ãã«ã¯ã次ã®ããã«ããã ultralytics
python ã®ãããžãšãµã³ããŒã¹ãã®ããžã¥ã¢ã«ãå梱ããã ultralytics
ã«ãã¬ããžã®çµæããããã®ç»åã¯ããã¹ãã«ãã£ãŠã«ããŒãããã³ãŒãã®ããŒã»ã³ããŒãžã瀺ãããã¹ããžã®åãçµã¿ãäžç®ã§ç€ºãææšãæäŸããŸãã詳现ã«ã€ããŠã¯ https://codecov.io/github/ultralytics/ultralytics.
ãªããžã㪠| ã³ãŒãã»ã«ãã¬ããž |
---|---|
ultralytics |
äžã®ãµã³ããŒã¹ãå³åœ¢ã§ã¯ãäžçªå åŽã®åã¯ãããžã§ã¯ãå šäœãäžå¿ããé¢ããã«ã€ããŠãã©ã«ããæåŸã«1ã€ã®ãã¡ã€ã«ã«ãªããåã¹ã©ã€ã¹ã®å€§ãããšè²ã¯ãããããã¹ããŒãã¡ã³ãã®æ°ãšã«ãã¬ããžãè¡šããŠããã
ããããã質å
Ultralytics ã«ãããç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ïŒCIïŒãšã¯ïŒ
Ultralytics ã«ãããç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ïŒCIïŒã¯ãé«å質ãªæšæºãä¿èšŒããããã«ãã³ãŒãã®å€æŽãèªåçã«çµ±åãããã¹ãããããšãå«ã¿ãŸããç§ãã¡ã®CIã»ããã¢ããã«ã¯ãåäœãã¹ãã®å®è¡ããªã³ãã£ã³ã°ãã§ãã¯ãå æ¬çãªãã¹ããå«ãŸããŸããããã«ãDockerã®ãããã€ããªã³ã¯åãã®ãã§ãã¯ãã»ãã¥ãªãã£è匱æ§ã®ããã®CodeQLåæããœãããŠã§ã¢ãããã±ãŒãžåããŠé åžããããã®PyPIå ¬éãè¡ã£ãŠããŸãã
Ultralytics ãããã¥ã¡ã³ããã³ãŒãã®ãªã³ã¯åããã©ã®ããã«ãã§ãã¯ããã®ã§ããïŒ
Ultralytics ã¯ãmarkdown ãš HTML ãã¡ã€ã«å ã®ãªã³ã¯åãããã§ãã¯ããç¹å®ã® CI ã¢ã¯ã·ã§ã³ã䜿çšããŠããŸããããã«ããããªã³ã¯åãããªã³ã¯åããã¹ãã£ã³ããŠç¹å®ããããšã§ãããã¥ã¡ã³ãã®å®å šæ§ãç¶æãããŠãŒã¶ãŒãåžžã«æ£ç¢ºã§çãããªãœãŒã¹ã«ã¢ã¯ã»ã¹ã§ããããã«ããŠããŸãã
ãªãCodeQLåæã¯Ultralytics' ã³ãŒãããŒã¹ã«ãšã£ãŠéèŠãªã®ãïŒ
CodeQL ã«ãã解æã¯ãUltralytics ã«ãšã£ãŠéåžžã«éèŠã§ããCodeQL ã¯ã»ãã³ãã£ãã¯ãªã³ãŒã解æãè¡ããæœåšçãªã»ãã¥ãªãã£è匱æ§ãçºèŠããé«å質ã®æšæºãç¶æããŸããCodeQL ã䜿çšããããšã§ãç§ãã¡ã¯ã³ãŒãå ã®ãªã¹ã¯ãããã¢ã¯ãã£ãã«ç¹å®ããŠè»œæžããããšãã§ããå ç¢ã§å®å šãªãœãããŠã§ã¢ ãœãªã¥ãŒã·ã§ã³ãæäŸããããšãã§ããŸãã
Ultralytics ããããã€ã«Dockerãã©ã®ããã«æŽ»çšããŠããŸããïŒ
Ultralytics ã¯Dockerãæ¡çšããå°çšã®CIã¢ã¯ã·ã§ã³ãéããŠãããžã§ã¯ãã®ãããã€ãæ€èšŒããŠããŸãããã®ããã»ã¹ã«ãããDockerãã¡ã€ã«ãšé¢é£ã¹ã¯ãªãããæ£ããæ©èœããŠããããšã確èªãããã¹ã±ãŒã©ãã«ã§ä¿¡é Œæ§ã®é«ãAIãœãªã¥ãŒã·ã§ã³ã«äžå¯æ¬ ãªãäžè²«æ§ãšåçŸæ§ã®ãããããã€ç°å¢ãå®çŸããŸãã
Ultralytics ã«ãããPyPIèªåå ¬éã®åœ¹å²ãšã¯ïŒ
èªååãããPyPIå ¬éã¯ãç§ãã¡ã®ãããžã§ã¯ãããšã©ãŒãªãããã±ãŒãžåãããå ¬éãããããšãä¿èšŒããŸãããã®ã¹ãããã¯Ultralytics'Python ããã±ãŒãžãé åžãããŠãŒã¶ãPython Package Index (PyPI) ãä»ããŠç§ãã¡ã®ããŒã«ãç°¡åã«ã€ã³ã¹ããŒã«ããŠäœ¿çšã§ããããã«ããããã«äžå¯æ¬ ã§ãã
Ultralytics ãã³ãŒãã»ã«ãã¬ããžãã©ã®ããã«æž¬å®ããŠããã®ãããããŠãªããããéèŠãªã®ãïŒ
Ultralytics ã¯ãCodecov ãšçµ±åããããšã§ã³ãŒãã«ãã¬ããžã枬å®ãããã¹ãäžã«ã³ãŒãããŒã¹ãã©ãã ãå®è¡ããããã«ã€ããŠã®æŽå¯ãæäŸããŸããé«ãã³ãŒãã«ãã¬ããžã¯ãååã«ãã¹ããããã³ãŒãã§ããããšã瀺ãããã°ãçºçããããæªãã¹ãã®é åãçºèŠããã®ã«åœ¹ç«ã¡ãŸãã詳现ãªã³ãŒãã«ãã¬ããžã¡ããªã¯ã¹ã¯ãã¡ã€ã³ãªããžããªã«è¡šç€ºããããããžããCodecoväžã§çŽæ¥ç¢ºèªããããšãã§ããŸãã