ç§ãã¡ã¯ãSonarQube ã³ãŒãã®å質ãç¶ç¶çã«åæããã³æž¬å®ããããã®ãã©ãããã©ãŒã ããNational Settlement Depository ã® DPO ã·ã¹ãã (Alameda é èšããã³æž ç®äŒèšã·ã¹ãã ãžã®è¿œå ) éçºã®æ¢åã®ããã»ã¹ã«å®è£ ããçµéšãå ±æããããšæããŸãã
National Settlement Depository (ã¢ã¹ã¯ã¯ååŒæã°ã«ãŒãäŒæ¥) ã¯ã50 å ã«ãŒãã«ä»¥äžã®äŸ¡å€ããããã·ã¢ããã³å€åœã®çºè¡äœã®èšŒåžãä¿ç®¡ããã³èšé²ããäž»èŠãªéèã€ã³ãã©äŒæ¥ã® XNUMX ã€ã§ãã ã·ã¹ãã ã«ãã£ãŠå®è¡ãããæäœéã®å¢å ãšæ©èœã®ç¶ç¶çãªå¢å ã«ãããã·ã¹ãã ã®ãœãŒã¹ ã³ãŒãã®é«å質ãç¶æããå¿ èŠããããŸãã ãã®ç®æšãéæããããã®ããŒã«ã® XNUMX ã€ã¯ãSonarQube éçã¢ãã©ã€ã¶ãŒã§ãã ãã®èšäºã§ã¯ãSonarQube éçã¢ãã©ã€ã¶ãŒãéšéã®æ¢åã®éçºããã»ã¹ã«ã·ãŒã ã¬ã¹ã«å®è£ ããæåäœéšã«ã€ããŠèª¬æããŸãã
éšéã«ã€ããŠç°¡åã«èª¬æãããš
åœç€Ÿã®èœåã«ã¯ãNSD ã¯ã©ã€ã¢ã³ããžã®æ¯æããé»åææžç®¡ç (EDF)ãååŒãªããžã㪠ã¡ãã»ãŒãžã®åŠç (ååŒæå€ååŒã®ç»é²)ãã¯ã©ã€ã¢ã³ããš NSD éã®é»å察話ãã£ãã«ãªã©ã®ã¢ãžã¥ãŒã«ãå«ãŸããŸãã äžè¬ã«ãéçšã®æè¡é¢ã§ã®å€§ããªäœæ¥ãè¡ãããŸãã ç§ãã¡ã¯ã¢ããªã±ãŒã·ã§ã³ã«åºã¥ããŠäœæ¥ãè¡ããŸãã çªå£ã®ç³è«ã¯ã¢ããªã¹ãã«ãã£ãŠåŠçãããŸããã¢ããªã¹ãã¯é¡§å®¢ã®èŠä»¶ãåéãããããããã°ã©ã ã«ã©ã®ããã«çµã¿èŸŒãã¹ãããšããããžã§ã³ãç§ãã¡ã«æ瀺ããŸãã ããã«ãæšæºçãªã¹ããŒã : ã³ãŒãéçº - ãã¹ã - è©Šè¡éçš - çç£åè·¯ãžã®ã³ãŒãã®çŽæ¥é¡§å®¢ãžã®é ä¿¡ã
SonarQube ãéžã¶çç±
ç§ãã¡ã®éšéã«ãšã£ãŠãã³ãŒãå質管ççšã®ãã©ãããã©ãŒã ãå®è£ ããã®ã¯ãããåããŠã®çµéšã§ãã以åã¯ã³ãŒã ã¬ãã¥ãŒã®ã¿ã§æåã§è¡ã£ãŠããŸããã ããããäœæ¥éãå¢å€§ããã«ã€ãããã®ããã»ã¹ã®èªååãå¿ èŠã«ãªããŸãã ããã«ãããŒã ã«ã¯ç€Ÿå ã®éçºèŠå®ã«è©³ãããªãçµéšã®æµ ãåŸæ¥å¡ãããããã¹ãå€ããªãåŸåããããŸãã ã³ãŒãã®å質ã管çããããã«ãéçã¢ãã©ã€ã¶ãŒãå®è£ ããããšã決å®ãããŸããã SonarQube ã¯ãã§ã«äžéšã® NSD ã·ã¹ãã ã§äœ¿çšãããŠãããããéžæã«ããã»ã©æéã¯ããããŸããã§ããã 以åã¯ãä»ã®éšéã®ååãããã䜿çšããŠãAlameda ã·ã¹ãã (NSD ç¬èªã®ä¿ç®¡ããã³æž ç®äŒèšã·ã¹ãã )ãCFT (äŒèšãæ®é«ãå¿ é å ±åæžããã³å éšå ±åæžã®äœæã®ããã®æ å ±ã·ã¹ãã ) ãªã©ã®ãã€ã¯ããµãŒãã¹ã®ã³ãŒããåæããŠããŸãããã·ã¹ãã ã å®éšã®ããã«ãSonarQube ã®ç¡æããŒãžã§ã³ããå§ããããšã«ããŸããã ããã§ã¯ãç§ãã¡ã®ã±ãŒã¹ã«ç§»ããŸãããã
å®è£ ããã»ã¹
æã ã¯æã£ãŠãã:
- TeamCity ã§ã®ã·ã¹ãã ã®èªåçµã¿ç«ãŠã
- GitLab ã®ãã£ãŒãã£ãŒ ãã©ã³ããããã¹ã¿ãŒ ãã©ã³ãã« MergeRequest çµç±ã§ã³ãŒããã¢ããããŒãããããã»ã¹ãã»ããã¢ããããŸã (GitHub Flow ã«åŸã£ãéçºããã»ã¹)ã
- SonarQube ã¯ãã¹ã±ãžã¥ãŒã«ã«åŸã£ãŠ DPO ã·ã¹ãã ã®ã³ãŒããåæããããã«æ§æãããŠããŸãã
ç§ãã¡ã®ç®ç: AVE ã® CI/CD ããã»ã¹ã«èªåã³ãŒãåæãå®è£ ããŸãã
ã«ã¹ã¿ãã€ãºãå¿ èŠ: ã¡ã€ã³ ãã©ã³ããžã® MergeRequest ããšã«éçã¢ãã©ã€ã¶ãŒã«ãã£ãŠã³ãŒããèªåçã«ãã§ãã¯ããããã»ã¹ã
ãããã®ã ã¿ãŒã²ããã®å³ã¯æ¬¡ã®ãšããã§ããéçºè ãå€æŽãæ©èœãã©ã³ãã«ã¢ããããŒããããšããã«ãã³ãŒãå ã®æ°ãããšã©ãŒã®èªåãã§ãã¯ãéå§ãããŸãã ãšã©ãŒããªãå Žåã¯å€æŽãåãå ¥ããããšãã§ããŸãããããã§ãªãå Žåã¯ãšã©ãŒãä¿®æ£ããå¿ èŠããããŸãã ãã§ã«åæ段éã§ãã³ãŒãå ã®äžå®æ°ã®ãšã©ãŒãç¹å®ããããšãã§ããŸããã ãã®ã·ã¹ãã ã«ã¯éåžžã«æè»ãªèšå®ããããã·ã¹ãã ãããã°ã©ãã³ã° ã¹ã¿ã€ã«ããšã«ãéçºè ã®ç¹å®ã®ã¿ã¹ã¯ã«åãããŠæ©èœããããã«æ§æã§ããŸãã
SonarQube ã§ã® QualityGate ã®æ§æ
QualityGate åæã¯ãã€ã³ã¿ãŒãããã®å¥¥æ·±ãã§èªãŸããŠãããã®ã§ãã åœåãç§ãã¡ã¯å¥ã®ã¢ãããŒãã䜿çšããŠããŸããããããè€éã§ãããæå³å®å šã«æ£ãããšã¯èšããŸããã§ããã ãŸããSonarQube ã§ã¹ãã£ã³ã XNUMX åå®è¡ããŸãããæ©èœãã©ã³ããšãã®æ©èœãã©ã³ããããŒãžãããã©ã³ããã¹ãã£ã³ãããšã©ãŒã®æ°ãæ¯èŒããŸããã ãã®æ¹æ³ã¯å®å®ããŠããããåžžã«æ£ããçµæãåŸããããšã¯éããŸããã§ããã ãããŠãSonarQube ã XNUMX åå®è¡ãã代ããã«ãçºçãããšã©ãŒã®æ°ã«å¶éãèšå®ã (QualityGate)ãã¢ããããŒãããŠæ¯èŒãããã©ã³ãã®ã¿ãåæã§ããããšãããããŸããã
ä»ã®ãšããããŸã ããªãåå§çãªã³ãŒããã§ãã¯ã䜿çšããŠããŸãã SonarQube ã¯ãDelphi ãªã©ã®äžéšã®ããã°ã©ãã³ã°èšèªãšäºææ§ããªãããšã«æ³šæããŠãã ããã çŸæç¹ã§ã¯ãç§ãã¡ã®ã·ã¹ãã ã§ã¯ PLSql ã³ãŒãã®ã¿ãåæããŠããŸãã
次ã®ããã«æ©èœããŸãã
- ãããžã§ã¯ãã® PL/SQL ã³ãŒãã®ã¿ãåæããŸãã
- QualityGate ã¯ãã³ãããã«ãã£ãŠãšã©ãŒã®æ°ãå¢å ããªãããã« SonarQube ã§èšå®ãããŠããŸãã
- æåã®å®è¡æã®ãšã©ãŒã®æ°ã¯ 229 ã§ãããã³ãããäžã«ããã«ãšã©ãŒãçºçããå ŽåãããŒãžã¯èš±å¯ãããŸããã
- ããã«ããšã©ãŒãä¿®æ£ããã°ãQualityGate ãåæ§æããããšãå¯èœã«ãªããŸãã
- ãã¹ãã«ããã³ãŒã ã«ãã¬ããžãªã©ãåæçšã®æ°ããé ç®ãè¿œå ããããšãã§ããŸãã
äœæ¥ã¹ããŒã ïŒ
ã¹ã¯ãªããã®ã³ã¡ã³ããèŠããšãæ©èœãã©ã³ãã®ãšã©ãŒæ°ãå¢å ããŠããªãããšãããããŸãã ããã§ãã¹ãŠOKã§ãã
ãçµåããã¿ã³ã䜿çšå¯èœã«ãªããŸãã
ã¹ã¯ãªããã®ã³ã¡ã³ããèŠããšãæ©èœãã©ã³ãã®ãšã©ãŒæ°ã蚱容å€ãè¶ ããŠããããšãããããŸãã ã€ãŸãããã¹ãŠãæªãã®ã§ãã
ãçµåããã¿ã³ã¯èµ€è²ã§ãã çŸæç¹ã§ã¯ã誀ã£ãã³ãŒããžã®å€æŽãã¢ããããŒãããããšã¯çŠæ¢ãããŠããŸããããããã¯è²¬ä»»ã®ããéçºè ã®è£éã§è¡ãããŸãã å°æ¥çã«ã¯ããã®ãããªã³ããããã¡ã€ã³ ãã©ã³ãã«å¯ŸããŠè¡ãããªãããã«ããããšãã§ããŸãã
ãã°ã«èªåã§å¯ŸåŠãã
次ã«ãSonarQube ã¯å³æ Œãªåºæºã«åŸã£ãŠåæãããããã·ã¹ãã ã«ãã£ãŠæ€åºããããã¹ãŠã®ãšã©ãŒã確èªããå¿ èŠããããŸãã 圌ããšã©ãŒã ãšèããŠãããã®ã¯ãå®éã«ã¯ç§ãã¡ã®ã³ãŒãå ã®ãšã©ãŒã§ã¯ãªãå¯èœæ§ããããŸãã ãããã£ãŠããããæ¬åœã«ééãã§ãããããŸãã¯æ¡ä»¶ãç·šéããå¿ èŠããªããã©ããã確èªããŠã¡ã¢ããå¿ èŠããããŸãã ãããã£ãŠããšã©ãŒã®æ°ãæžããŸãã æéãçµã€ã«ã€ããŠãã·ã¹ãã ã¯ãããã®ãã¥ã¢ã³ã¹ãç解ã§ããããã«ãªããŸãã
ç§ãã¡ã¯äœã«æ¥ãã®ã§ãã
ç§ãã¡ã®ç®æšã¯ããã®å Žåãã³ãŒãæ€èšŒãèªååã«ç§»è¡ããããšãé©åãã©ãããç解ããããšã§ããã ãããŠçµæã¯æåŸ ã«å¿ããŸããã SonarQube ã䜿çšãããšãå¿ èŠãªèšèªãæäœã§ããããªãæèœãªåæãè¡ãããšãã§ããéçºè ã®ãã³ãããåŠã¶ããšãã§ããå¯èœæ§ããããŸãã å šäœãšããŠãç§ãã¡ã¯ SonarQube ã§ã®æåã®çµéšã«æºè¶³ããŠããããã®æ¹åã«ããã«éçºããäºå®ã§ãã å°æ¥çã«ã¯ãã³ãŒãã¬ãã¥ãŒã«ãããæéãšåŽåãããã«ç¯çŽãã人çèŠå ãæé€ããããšã§ã³ãŒãã¬ãã¥ãŒãæ¹åã§ããããã«ãªããšæåŸ ããŠããŸãã ãããããã®éçšã§ããã©ãããã©ãŒã ã®æ¬ ç¹ãçºèŠããããšã«ãªãã§ãããããããã¯ãéã«ãããã倧ããªå¯èœæ§ãç§ããçŽ æŽããããã®ã§ããããšãæ¹ããŠç¢ºèªããããšã«ãªãã§ãããã
ãã®æŠèŠèšäºã§ã¯ãSonarQube éçã¢ãã©ã€ã¶ãŒã«ã€ããŠèª¬æããŸããã ã質åãããããŸããããã³ã¡ã³ãã«ãèšå ¥ãã ããã ãã®ãããã¯ã«èå³ãããå Žåã¯ãæ°ããåºçç©ã§ããã¹ãŠãæ£ããèšå®ãããã®ãããªãã§ãã¯ãè¡ãã³ãŒããèšè¿°ããæ¹æ³ãããã«è©³ãã説æããŸãã
ããã¹ãã®äœè
ïŒ
åºæïŒ habr.com