ç¶ç¶çãããã€ã¡ã³ãã¯ããœãããŠã§ã¢éçºã«ãããç¹å¥ãªã¢ãããŒãã§ããããœãããŠã§ã¢ã«ããŸããŸãªæ©èœãè¿
éãå®å
šãå¹ççã«å®è£
ããããã«äœ¿çšãããŸãã
äž»ãªã¢ã€ãã¢ã¯ãéçºè
ãæçµè£œåããŠãŒã¶ãŒã«è¿
éã«æäŸã§ãããä¿¡é Œæ§ã®é«ãèªååããã»ã¹ãäœæããããšã§ãã åæã«ãéçšç°å¢ã«å¯ŸããŠç¶ç¶çãªå€æŽãè¡ãããŸããããã¯ãç¶ç¶çããªããªãŒ ãã€ãã©ã€ã³ (CD ãã€ãã©ã€ã³) ãšåŒã°ããŸãã
ã¹ãã«ããã¯ã¹ã¯æ¬¡ã®ããšãæšå¥šããŸãã å®è·µã³ãŒã¹
ãã¢ãã€ã«ããããããŒPROã .ãªãã€ã³ããŒïŒ ãHabrãã®ãã¹ãŠã®èªè ã察象 - ãHabrãããã¢ãŒã·ã§ã³ ã³ãŒãã䜿çšããŠã¹ãã«ããã¯ã¹ ã³ãŒã¹ã«ç»é²ãããš 10 ã«ãŒãã«ã®å²åŒã
ãããŒãå¶åŸ¡ããã«ã¯ãææã®ãã®ãšå®å
šã«ç¡æã®ãã®ãå«ãå¹
åºãããŒã«ã䜿çšã§ããŸãã ãã®èšäºã§ã¯ããã¹ãŠã®ããã°ã©ããŒã«ãšã£ãŠåœ¹ç«ã€ãéçºè
ã®éã§æã人æ°ã®ãã XNUMX ã€ã®ãœãªã¥ãŒã·ã§ã³ã«ã€ããŠèª¬æããŸãã
ãžã§ã³ãã³ãº
å®å šã«èªå·±å®çµåã®ãªãŒãã³ãœãŒã¹ ãªãŒãã¡ãŒã·ã§ã³ ãµãŒããŒã ãœãããŠã§ã¢ã®æ§ç¯ããã¹ããåºè·ãå±éã«é¢é£ããããããçš®é¡ã®ã¿ã¹ã¯ãèªååããã«ã¯ãããã掻çšãã䟡å€ããããŸãã
PCã®æå°èŠä»¶ïŒ
- 256 MB RAMã1 GB ã®ãã¡ã€ã«ã¹ããŒã¹ã
æé©ãªïŒ
- 1 GB RAMã50 GB ããŒããã©ã€ãã
åäœããã«ã¯ãè¿œå ã®ãœãããŠã§ã¢ - Java Runtime Environment (JRE) ããŒãžã§ã³ 8 ãå¿ èŠã§ãã
ã¢ãŒããã¯ã㣠(åæ£ã³ã³ãã¥ãŒãã£ã³ã°) ã¯æ¬¡ã®ããã«ãªããŸãã
Jenkins Server ã¯ãGUI ãã¹ãã£ã³ã°ãšãã«ãå
šäœã®ç·šæãšå®è¡ãæ
åœããã€ã³ã¹ããŒã«ã§ãã
Jenkins ããŒã/ã¹ã¬ãŒã/ãã«ã ãµãŒã㌠- ãã¹ã¿ãŒ (ã¡ã€ã³ ããŒã) ã«ä»£ãã£ãŠãã«ãäœæ¥ãå®è¡ããããã«æ§æã§ããããã€ã¹ã
Linux çšã®ã€ã³ã¹ããŒã«
ãŸããJenkins ãªããžããªãã·ã¹ãã ã«è¿œå ããå¿ èŠããããŸãã
cd /tmp && wget -q -O â
ããã±ãŒãžãªããžããªãæŽæ°ããŸãã
sudo apt update
Jenkins ãã€ã³ã¹ããŒã«ããŸãã
sudo apt install jenkins
ãã以éãJenkins ã¯ããã©ã«ãã®ããŒã 8080 çµç±ã§ã·ã¹ãã ã§å©çšã§ããããã«ãªããŸãã
æ©èœã確èªããã«ã¯ããã©ãŠã¶ã§ã¢ãã¬ã¹ãéãå¿
èŠããããŸã
ããã§ãã¹ãŠã®æºåãæŽã£ãã®ã§ãCI/CD ãããŒã®äœæãéå§ã§ããŸãã ã¯ãŒã¯ãã³ãã®ã°ã©ãã£ã«ã« ã€ã³ã¿ãŒãã§ã€ã¹ã¯æ¬¡ã®ããã«ãªããŸãã
ãžã§ã³ãã³ã¹ã®åŒ·ã¿:
- ãã¹ã¿ãŒ/ã¹ã¬ãŒã ã¢ãŒããã¯ãã£ã«ãã£ãŠæäŸãããã¹ã±ãŒã©ããªãã£ã
- REST XML/JSON API ã®å©çšå¯èœæ§ã
- ãã©ã°ã€ã³ã®ãããã§å€æ°ã®æ¡åŒµæ©èœãæ¥ç¶ã§ããæ©èœã
- ã¢ã¯ãã£ãã§åžžã«é²åããã³ãã¥ããã£ã
çæïŒ
- åæãããã¯ã¯ãããŸããã
- ããŸããŠãŒã¶ãŒãã¬ã³ããªãŒãªã€ã³ã¿ãŒãã§ãŒã¹ã§ã¯ãããŸããã
TeamCity
JetBrains ã«ããåçšéçºã ãã®ãµãŒããŒã¯ãã»ããã¢ãããç°¡åã§ã€ã³ã¿ãŒãã§ã€ã¹ãåªããŠãããåªããŠããŸãã ããã©ã«ãèšå®ã«ã¯å€æ°ã®æ©èœããããå©çšå¯èœãªãã©ã°ã€ã³ã®æ°ã¯åžžã«å¢å ããŠããŸãã
Java ã©ã³ã¿ã€ã ç°å¢ (JRE) ããŒãžã§ã³ 8 ãå¿ èŠã§ãã
ãµãŒããŒã®ããŒããŠã§ã¢èŠä»¶ã¯éèŠã§ã¯ãããŸããã
- RAM - 3,2 GB;
- ããã»ããµ - ãã¥ã¢ã«ã³ã¢ã3,2 GHz;
- 1 Gb/ç§ã®å®¹éãæã€éä¿¡ãã£ãã«ã
ãµãŒããŒã䜿çšãããšã次ã®ãããªé«ãããã©ãŒãã³ã¹ãå®çŸã§ããŸãã
- 60 ã®ãã«ãæ§æãæ〠300 ã®ãããžã§ã¯ãã
- ãã«ããã°çšã« 2 MB ã®å²ãåœãŠã
- 50 ãã«ã ãšãŒãžã§ã³ãã
- Web ããŒãžã§ã³ã§ã¯ 50 ãŠãŒã¶ãŒãIDE ã§ã¯ 30 ãŠãŒã¶ãŒãšäœæ¥ããæ©èœã
- å€éš VCS ã® 100 æ¥ç¶ (é垞㯠Perforce ãš Subversion)ã å¹³åå€æŽæé㯠120 ç§ã§ãã
- 150 æ¥ããã XNUMX 件ãè¶ ããå€æŽã
- XNUMX ã€ã®ãµãŒããŒäžã§ããŒã¿ããŒã¹ãæäœããã
- JVM ãµãŒã㌠ããã»ã¹èšå®: -Xmx1100m -XX:MaxPermSize=120mã
ãšãŒãžã§ã³ãã®èŠä»¶ã¯ãå®è¡äžã®ã¢ã»ã³ããªã«åºã¥ããŠããŸãã ãµãŒããŒã®äž»ãªã¿ã¹ã¯ã¯ãæ¥ç¶ãããŠãããã¹ãŠã®ãšãŒãžã§ã³ããç£èŠããäºææ§èŠä»¶ã«åºã¥ããŠãã¥ãŒãããããã®ãšãŒãžã§ã³ãã«ã¢ã»ã³ããªãé åžããçµæãå ±åããããšã§ãã ãšãŒãžã§ã³ãã«ã¯ãããŸããŸãªãã©ãããã©ãŒã ãšãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã«å ããŠãäºåæ§æãããç°å¢ãçšæãããŠããŸãã
ãã«ãçµæã«é¢ãããã¹ãŠã®æ å ±ã¯ããŒã¿ããŒã¹ã«ä¿åãããŸãã ããã¯äž»ã«ãå±¥æŽããã®ä»ã®åæ§ã®ããŒã¿ãVCS ã®å€æŽããšãŒãžã§ã³ãããã«ã ãã¥ãŒããŠãŒã¶ãŒ ã¢ã«ãŠã³ããæš©éã§ãã ããŒã¿ããŒã¹ã«ã¯ãã«ã ãã°ãšã¢ãŒãã£ãã¡ã¯ãã ããå«ãŸããããã§ã¯ãããŸããã
Linux çšã®ã€ã³ã¹ããŒã«
Tomcat ãµãŒãã¬ãã ã³ã³ãããŒã䜿çšã㊠TeamCity ãæåã§ã€ã³ã¹ããŒã«ããã«ã¯ãTeamCity ã¢ãŒã«ã€ã (TeamCity .tar.gz) ã䜿çšããå¿
èŠããããŸãã ããŠã³ããŒã
tar -xfz TeamCity.tar.gz
/bin/runAll. sh [éå§|åæ¢]
æåã«éå§ãããšãã¯ãã¢ã»ã³ã㪠ããŒã¿ãä¿åããããŒã¿ããŒã¹ã®çš®é¡ãéžæããå¿ èŠããããŸãã
ããã©ã«ãèšå®ã¯ä»¥äžã§å®è¡ãããŸãã
TeamCity ã®åŒ·ã¿:
- ç°¡åãªã»ããã¢ããã
- ãŠãŒã¶ãŒãã¬ã³ããªãŒãªã€ã³ã¿ãŒãã§ã€ã¹ã
- å€æ°ã®çµã¿èŸŒã¿é¢æ°ã
- ãµããŒã;
- RESTful API ããããŸãã
- åªããããã¥ã¡ã³ãã
- è¯ãã»ãã¥ãªãã£ã
çæïŒ
- éå®çãªçµ±åã
- ããã¯ææããŒã«ã§ãã
- å°ããªã³ãã¥ããã£ã§ãïŒãã ããæé·ãç¶ããŠããŸãïŒã
GoCD
ã€ã³ã¹ããŒã«ãšæäœã« Java ã©ã³ã¿ã€ã ç°å¢ (JRE) ããŒãžã§ã³ 8 ãå¿ èŠãªãªãŒãã³ ãœãŒã¹ ãããžã§ã¯ãã
ã·ã¹ãã èŠä»¶
- RAM - æäœ 1 GBãå€ãã»ã©è¯ãã§ãã
- ããã»ããµ - ã³ã¢åšæ³¢æ° 2 GHz ã®ãã¥ã¢ã«ã³ã¢ã
- ããŒããã©ã€ã - å°ãªããšã 1 GB ã®ç©ºã容éã
ãšãŒãžã§ã³ãïŒ
- RAM - å°ãªããšã 128 MBãå€ãã»ã©è¯ãã§ãã
- ããã»ããµ - å°ãªããšã 2 GHzã
ãµãŒããŒã¯ãšãŒãžã§ã³ãã®åäœãä¿èšŒãããŠãŒã¶ãŒã«äŸ¿å©ãªã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããŸãã
ã¹ããŒãž/ãžã§ã/ã¿ã¹ã¯:
Linux çšã®ã€ã³ã¹ããŒã«
echo "deb
curl
add-apt-repository ppa:openjdk-r/ppa
apt-get updateãå®è¡ã
apt-get install -y openjdk-8-jre
apt-get ã€ã³ã¹ããŒã« go-server
apt-get install go-agent
/etc/init.d/go-server [éå§|åæ¢|ã¹ããŒã¿ã¹|åèµ·å]
/etc/init.d/go-agent [éå§|åæ¢|ã¹ããŒã¿ã¹|åèµ·å]
ããã©ã«ãã§ã¯ GoCd ã¯æ¬¡ã®ç°å¢ã§å®è¡ãããŸã
GoCd ã®åŒ·ã¿:
- ãªãŒãã³ãœãŒã¹;
- ç°¡åãªã€ã³ã¹ããŒã«ãšæ§æã
- åªããããã¥ã¡ã³ãã
- åªãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹:
- 段éç㪠GoCD å°å ¥ãã¹ã XNUMX ã€ã®ãã¥ãŒã§è¡šç€ºããæ©èœ:
- ãã€ãã©ã€ã³æ§é ã®åªãã衚瀺:
- GoCD ã¯ãDockerãAWS ãªã©ã®æãäžè¬çãªã¯ã©ãŠãç°å¢ã§ CD ã¯ãŒã¯ãããŒãæé©åããŸãã
- ãã®ããŒã«ã䜿çšãããšããã€ãã©ã€ã³å ã®åé¡ãä¿®æ£ã§ããããã«ãªããã³ããããããããã€ã¡ã³ããŸã§ã®ãã¹ãŠã®å€æŽããªã¢ã«ã¿ã€ã ã§è¿œè·¡ãããŸãã
çæïŒ
- å°ãªããšã XNUMX 人ã®ãšãŒãžã§ã³ããå¿ èŠã§ãã
- å®äºããã¿ã¹ã¯ããã¹ãŠè¡šç€ºããã³ã³ãœãŒã«ã¯ãããŸããã
- åã³ãã³ããå®è¡ããã«ã¯ããã€ãã©ã€ã³æ§æçšã®ã¿ã¹ã¯ã XNUMX ã€äœæããå¿ èŠããããŸãã
- ãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããã«ã¯ã.jar ãã¡ã€ã«ã次ã®å Žæã«ç§»åããå¿ èŠããããŸãã /plugins/external ã«ç§»åãããµãŒããŒãåèµ·åããŸãã
- æ¯èŒçå°ããªã³ãã¥ããã£ã
çµè«ãšããŠ
ããã㯠XNUMX ã€ã®ããŒã«ã«ããããå®éã«ã¯ããã«å€ãã®ããŒã«ããããŸãã éžæããã®ã¯é£ããã®ã§ãè¿œå ã®åŽé¢ã«æ³šæãæãå¿ èŠããããŸãã
ãã®ããŒã«ã®ãªãŒãã³ ãœãŒã¹ ã³ãŒãã«ãããããŒã«ãäœã§ããããç解ã§ããããã«æ°ããæ©èœãããè¿ éã«è¿œå ã§ããŸãã ããããäœããããŸããããªãå Žåã¯ãèªåèªèº«ãšã³ãã¥ããã£ã®å©ãã®ã¿ã«é Œãå¿ èŠããããŸãã ææããŒã«ã¯ãå Žåã«ãã£ãŠã¯éèŠãªãµããŒããæäŸããŸãã
ã»ãã¥ãªãã£ãæåªå äºé ã§ããå Žåã¯ãããŒã«ã« ããŒã«ã䜿çšãã䟡å€ããããŸãã ããã§ãªãå Žåã¯ãSaaS ãœãªã¥ãŒã·ã§ã³ãéžæããã®ãè¯ãéžæè¢ã§ãã
ãããŠæåŸã«ãçã«å¹æçãªç¶ç¶çå±éããã»ã¹ã確å®ã«è¡ãããã«ã¯ãå©çšå¯èœãªããŒã«ã®ç¯å²ãçµã蟌ãã詳现ãåããåºæºãäœæããå¿ èŠããããŸãã
ã¹ãã«ããã¯ã¹ã¯æ¬¡ã®ããšãæšå¥šããŸãã
- XNUMX幎éã®å®è·µã³ãŒã¹
ãç§ã¯ããã®ãŠã§ãéçºè ã§ãã .- ãªã³ã©ã€ã³ã³ãŒã¹
ãC#éçºè ã .- å®è·µäžå¹Žã³ãŒã¹
ã0ããPROãŸã§ã®PHPéçºè ã .
åºæïŒ habr.com