æè¿è©±é¡ã®CI as a Serviceãå°å ¥ãã¹ã調æ»ãã¦ã¿ã¾ãããJenkinsããããããããã®ã§ããAWS smallã¤ã³ã¹ã¿ã³ã¹ã«ä¹ãã¦ããã¨ãã£ã±ãæ¬æ¥ã®åãçºæ®ã§ããªãæããããã®ã§ã
CircleCIã£ã¦ä»¥åã¯ãä¸çªå®ãå¥ç´ã ã¨1Private Repositoryããæ±ããªãã¦ä½¿ãã¥ããããªå°è±¡ã ã£ãã®ã§ããã4ææ«é ã«Private Repositoryæ°ã¯ç¡å¶éãåæå®è¡ã¸ã§ãæ°ã§èª²éã¨ããPlanã«å¤æ´ã«ãªã£ãããã§ããã
Simple and Transparent Pricing | The Circle Blog http://blog.circleci.com/simple-and-transparent-pricing/
èªåã®é¢ãã£ã¦ããããã¸ã§ã¯ãã§ã¯ã
- ãªãã¸ããªã¯ããããã®å½¹å²ãã¨ã«ããã¤ãåãã¦ãã
- éçºè æ°ã¯å°ãªãã®ã§ã³ãããé »åº¦ã¯ãããªã«é«ããªã
ã¨ããç¶æ³ã ã£ãã®ã§ã¾ãã«èªåãã¡ã«ããããã夿´ã§ãæ©é試ãã¦ã¿ã¾ããã
CircleCI
é·æ
- ãããªãã«æ¥æ¬ã§ã使ããã¦ãã¦æ å ±ãå¤ã
- privateãªãã¸ããªããã«ãããã¨ããç¹ãã¡ã¤ã³ã«èãã¦ããUX
- éã(AWS m1.smallã§Jenkinsãåãããããæ°åéãã§ã)
- ç°¡åã
- Jenkinsã®ããã«Web UIããå®è¡ãããã³ãã³ãå ¥ããããããæ £ããã"circle.yml"ã«å ¥ãã¦æ§æç®¡çã§ãã
- ãã¹ããè½ã¡ãæãªã©ãä½ã£ãã¤ã¡ã¼ã¸ã«30åãããsshããæ©è½ããããããã§åå ç©¶æãæãã
- ãµãã¼ãéãããã¡ã®ãã¹ãåããªããã¼ã£ã¦åãåãããã忥ãããã§åçãæ¥ãã
çæ
* sudoã§ããªã
2014/10/04追è¨
ã³ã¡ã³ãã§æ å ±æä¾é ãã¾ãããsudoå¯è½ã«ãªã£ãããã§ãã
Continuous Integration and Deployment
CircleCIã¾ã¨ã
é·æåããçæãè´å½çã«ãªãã±ã¼ã¹ã¯è´å½çãã¡ãªã¿ã«ãæ¥æ¬èªãå
¥ã£ã¦ãªãã®ã§æ¥æ¬éè²¨ãæ¥æ¬èªã使ã£ã¦ãããã¹ããè½ã¡ã¾ãããããå
¥ããããã®apt-get
ãã§ããªããã¨ããè¨ãæãã§ãã
ã§ããµãã¼ãã«é£çµ¡ããã°å ¥ãã¦ãããã¾ãã"ja-JP.utf8"ãå ¥ã£ã¦ãªãããå ¥ãã¦ãï½ã£ã¦ã¡ãã»ã¼ã¸éã£ãã忥ãããã§å¯¾å¿ãã¦ããã¾ãããã§ãå ¥ããã¤ã³ã¹ã¿ã³ã¹ééããã¨ãããè¶ç®ã£ã·ããããããã®ã§ééãã¦ããã£ã¦éã£ãããã忥å¾ã«å ¥ãã¾ãããã¾ããããªæãã®ããªã§ãã
wercker試ããçµç·¯
ãã®æããµãã¼ãã«é£çµ¡ããåã«apt-get
ã§ããããªãã£ã¦ã¤ã¶ããã¦ãã @chiastolite ããã«werckerã©ããã£ã¦è¨ãããã®ã§è©¦ãã¦ã¿ããã¨ã«ãã¾ããã
@ryonext werckerã§ã¯ã³ãã£ã³
— Hiroyuki Morita (@chiastolite) 2014, 5æ 9
wercker
èªã¿æ¹ã¯"ã¦ã§ã«ã«ã¼"ãããã§ãã
-- ããããè¿½è¨ --
"ã¯ã¼ã«ã¼"ãããã§ãããã¿ã¾ããã
@ijinããã«ã½ã¼ã¹ä»ãã§æ å ±æä¾é ãã¾ããããããã¨ããããã¾ãï¼
@kawasy glad you asked! ;-) we pronounce it as "worker"
— wercker (@Wercker) 2014, 3æ 27
-- ããã¾ã§è¿½è¨ --
yokohama.rb ã®ã¨ãã«èª¿æ»ãããã¨æã£ããã @1syo ãããwerckerããªã触ã£ã¦ã¦ãè²ã ã¨ãã«ãé ãã¾ãããæè¬ã
é·æ
- sudoå¯è½
- ã³ã³ãããåå®è¡ã³ãã³ãããã©ã¬ãã«ã«ãªã£ã¦ãããå人ã®éçºè
ãè¿½å æ©è½ãæç¨¿å¯è½ããããã伸ã³ã¦ããæããããã
- å®éããã©ã°ã¤ã³ä¸è¦§ãè¦ã¦ãã㨠@1syo ããã®ã¢ã¤ã³ã³ãè¦ãããããã¾ãã
- ã¾ã ãã¼ã¿ãªã®ã§ç¡æ
çæ
- ã¾ã æ¥æ¬èªã®æ å ±ãå°ãªã
- Googleå
ççãªå¢ãã§ãã«ãããã¸ã§ã¯ããéããã°publicã«ãããã¨ãã¦ãã
- éããã°ãã¨ããã¨èªå¼ããããã©publicã«ããå°ç·ããããªãã«æ¼ããããªå ´æã«ãã
- åºæ¬ã¯OSSãæ³å®ãã¦ãæããªã®ããªï¼
- Googleå çã¯publicã«ããã¨ããããã¯ãããã¤ããPrivateã ã¨é¯è¦ãã¦ããï¼ããªè½åãªã®ã§ã¾ãã¡ãã£ã¨æ ¼ãéããã
- ãããªãã«ãµã¤ãèªä½ãæ°åè½ã¡ããYokohama.rbã®ã¨ãã«3æéããã試ãã¦ã¦2,3åè½ã¡ã
- ãã¼ã¿ã ãããã
- DBçã¯localhostã«ã¯ãªãã®ã§ãæ¥ç¶å
ãlocalhostã¨æ¸ãã¦ãããã®ã¯å
¨ã¦æ¸ãç´ããå¿
è¦ãç°å¢å¤æ°ã«æ¥ç¶å
DBã®IPã¢ãã¬ã¹ãå²ãå½ã¦ããã¦ãã
- herokuã¿ãããªæãã§ãã
- ãããã¤å ãherokuã¨èãã¦ãããªãããã¯çæã«ãªããªãã¯ã
- Railsãªããã®è¾ºããããªã«è§£æ±ºãã¦ããããã©ã°ã¤ã³ãããã¾ãã
- ãããã俺ã調ã¹ã¦ãã®Djangoãªãã ã»ã»ã»
- å®è¡ã³ãã³ã㯠yml ãã¡ã¤ã«ã«æ¸ããããããç¬èªDSLå
¥ã£ã¦ã¦è¦ããªãã¨ãããªã
- ã¡ãã£ã¨è©³ããæ¸ã
ãã¨ãã°ãbundle install
ãããªã
build: steps: - bundle-install
ã«ãªããCircleCIã¯ã³ãã³ãããã®ã¾ãã¾æ¸ãã®ã§ã
test: override: - bundle install
ã«ãªãããã¤ãã³ããã ããããã¼ãï¼ã£ã¦ããã³ãæ¥ããã§ãããã·ã§ã«ããå©ãã¦åãã³ãã³ãã¨åãã§æ¸ãæ¹ã§å®è¡ã§ããã®ãå¦ç¿ã³ã¹ãå°ãªãã¦ããã¨æãã¾ããï¼(â»ChefãAnsibleãå¦å®ãã¦ããããããããã¾ãã><) pythonã§ãpip install -r [pip freezeãããã¡ã¤ã«]
ããpip-install
ã«ãªã£ã¦ãããã¾ãããã¡ã¤ã«åã¯ç°å¢å¤æ°ã§è¨å®ãã¦ãããã¤ã使ãåæã«ãªã£ã¦ã¾ãããããããã¨ããã§èªåã®ç¥ã£ã¦ãç¥èã ãã§ãããªã使ãå§ããããªãã¨ããã®ã¯ã¡ãã£ã¨ã¤ããããªã¨ã
ãªããwerckerã
script: code:
ã¨æ¸ããã¨ã§ãã®ã¾ã¾ã·ã§ã«ã³ãã³ããæ¸ãã¾ãã
werckerã¾ã¨ã
CircleCIã¨ã¯ã¿ã¼ã²ããã¨ãã¦ããã®ãéã£ã¦ã¦ããã¹ãTravisçãªãã®ãç®æãã¦ããã®ããªããã¨ããå°è±¡ãDBã®æ¥ç¶æ å ±ãªã©ãéè¦ãªæ å ±ããã·ã³ã®ç°å¢å¤æ°ã§ç®¡çããå©ç¨å´ã¯è¨å®ãã¡ã¤ã«ã«ç°å¢å¤æ°ãèªã¿è¾¼ãã³ã¼ããæ¸ãã¦å©ç¨ãããã¨ããã®ã¯herokuã¨åãã¹ã¿ã¤ã«ã ã¨æãã¾ãã
ã¾ã çºå±éä¸ãªæãã§ãã©ã°ã¤ã³ãæ¸ãã¦contributeããã¿ãããªæ´»åãçããªã®ã§ãOSSæ´»åããã人ã«ã¯ããããã§ãã
å ¨ä½ã®ã¾ã¨ãã¨ãCircleCIã«è³ã£ãçµç·¯ã¨ã
ä¼ç¤¾ã§ä½¿ãã®ã§ãAWS small instanceç¨åº¦ã®æéã§ããã°CIç¨ã«åºãã¦ãããã¦ããã¤AWSããéãã¦å¿«é©ãªã®ã§CircleCIã«ãã¾ãããæ¥æ¬èªã®ãã¹ããåããªãã¦apt-getãã§ããªãæç¹ã§å³ããããªããã¨æã£ããã§ããããµãã¼ãã«é£çµ¡ããããã£ãã解決ããã®ã§ä»å¾ããããªã«ä½¿ã£ã¦ãããããªå°è±¡ã§ããã
werckerã¯ãã©ã°ã¤ã³ãDocker対å¿ãªã©ä»é¢¨ã®ä½ããåãå ¥ãã¦ãã¦ããã®ã§ãä»å¾OSSçéã§ä¼¸ã³ã¦ãããããªé°å²æ°ã¯ãããããã¾ãããTravisã§CIåãã¦ãã人ã¯ããã¡ãã§ãåããã¦ã¿ã¦è¶³ããªãæ©è½ãåãããã©ã°ã¤ã³ãæç¨¿ãã¦ããã¨é¢ç½ãããããªãã§ããããã
werckerãä»ã«ããããã¨ãããããï¼ã¿ãããªããã³ããã£ãããã²ãã ãããã