1幎åŸããã¹ãŠã®ã³ã³ããŒãã³ããã¡ã€ã³ã¢ã»ã³ããªã·ã§ããã«é éããããšã³ãžã³ãè»äœã«å ¥ããããã¹ããšã³ãžã³ã®å§åäžã§ãããºã«ã溶ãå§ããããšãããããŸããã
ãã®ãããªãŽãã®çºçãé²ãããã«ãå®éã®ãããžã§ã¯ãã«ã¯åžžã«èšç»ãšèšèšã®æ®µéããããéšåã®çžäºäœçšã®ä»æ§ãšãããããæã€ã¹ãç¹æ§ãåºå®ãããŠããŸãã
ãœãããŠã§ã¢ãéçºãããšããé·ãèšèšæ®µéãè¡ãäœè£ã¯ãããŸããããªããªãã ãã®éãç§ãã¡ãéçºããããšããŠãããã®ã®ããžãã¹äŸ¡å€ã¯å€±ãããŸã-ç§ãã¡ã¯ç«¶åä»ç€Ÿã«æãã«æã¡ã®ããããŸãã
ãã®ãããããã°ã©ã ã³ã³ããŒãã³ãïŒã¢ãžã¥ãŒã«ïŒãéçºããããŒã ã¯ãã¢ãžã¥ãŒã«ãä»ã®éšåãšã©ã®ããã«çžäºäœçšããããå®å šã«ç解ããã«äœæ¥ãäœåãªããããããšããããããŸãã
ãã±ããã®å Žåã®ããã«ãè€æ°ã®ããŒã ã«ãã£ãŠéšåçã«éçºãããã¢ããªã±ãŒã·ã§ã³ã®æ°ãããªãªãŒã¹ããªãªãŒã¹ããããšãããšãäžéšã®ã¢ãžã¥ãŒã«ã«äºææ§ããªãããšãå€æããå ŽåããããŸãã
1991幎ã Grady Butchã¯æããã«ãã®ãããªäžåèªã«ããããããŠããããããããžã§ã¯ãå šäœãæ¯æ¥çµã¿ç«ãŠãŠããªãªãŒã¹æ¥ã§ã¯ãªã以åã®éäºææ§ãèŠã€ããããšãææ¡ãããã®ã¢ãããŒããç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãšåŒã³ãŸããã
確ãã«ãããã°ã©ã ãã³ã³ãã€ã«ããããšã¯ããã±ãããæ§ç¯ãããããç°¡åã§ãïŒç¹ã«æªå®æã®ã³ã³ããŒãã³ãããïŒã1æ¥ã«1åãããå§ããŠã¿ãŸãããïŒ ãšã¯ã¹ããªãŒã ããã°ã©ãã³ã°ã§ã¯ããã®ãããã¯ãæªåããã1æ¥ã«æ°åã¢ã»ã³ããªãé 眮ããããšã«ããŸããã
ã¢ã»ã³ããªãšã¯äœã§ããïŒ
ããšãã°ãã¢ãžã¥ãŒã«ã1ãæã«ã³ããŒããŠãããã°ã©ã ã®ã³ã³ãã€ã«ãéå§ããå¿ èŠããããŸãã
ãã¹ãŠãããŸããã£ãå Žåãã¢ã»ã³ããªã¯æåãããšèŠãªãããšãã§ããããã§ãªãå ŽåãããŒã ã¯è©³çŽ°ãæŽçãããã¹ãŠãè¡ãéãã«ãªããŸã§åé¡ã解決ããæ©äŒããããŸãã
PHPãPythonãRubyãªã©ã®ã€ã³ã¿ãŒããªã¿ãŒèšèªã§ã³ã³ãã€ã«ãããã®ã¯ãããŸããã ãããã®ã¢ã»ã³ããªã¯ãåäœãã¹ãã®éå§ããã¹ããµãŒããŒãžã®Webã¢ããªã±ãŒã·ã§ã³ã®å±éãããã³ãã®ãã¹ããµãŒããŒã§ã®åãå ¥ããã¹ãã®å®è¡ã§ãã
ãããã£ãŠãç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ã¯å®è·µã§ãã ãã®ãã©ã¯ãã£ã¹ã®ç®çã¯ãçµ±åfakapsã®æ°ãæžãããçæããããœãããŠã§ã¢ã®å質ãåäžãããããšã§ãã ãã®æ¹æ³ã¯ããããžã§ã¯ãã®ã¢ã»ã³ããªã1æ¥ã«æ°åèµ·åããããšã§ãã
å€ãããGrad Butchã¯äžè¬çã«æäœæ¥ã§CIãç·Žç¿ãå§ããäŒç€Ÿã®éšçœ²ãé§ãåã£ãŠãå šå¡ã«ææ°ããŒãžã§ã³ã®ã¢ãžã¥ãŒã«ããããããŒãã£ã¹ã¯ã«å ¥ãããããã®åŸèšèªã§ãã¹ãŠæåã§ã³ã³ãã€ã«ã§ããããã«ããŸãã:)
2018幎ã«ã¯ãCIã®ããã»ã¹ãã·ã¹ãã ã®å±±ã§èªååãããŠããã®ã§ãããå°ãç°¡åã«ãªããŸããã奜ã¿ã«åãããŠãããããéžæããŠãã ããã
CIã·ã¹ãã ã«ã€ããŠ
ãããããããŸã ã 圌ãã¯éããŸãã ç¹å®ã®ããã°ã©ãã³ã°èšèªã«ç¹åããŠããŸãã IDEçšã«éçºãããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ããã«ãã€ã³IDEãGUIãä»ããèšå®ããªããžããªå ã®æ§æãã¡ã€ã«ãä»ããèšå®ããããŸãã äžéšã¯ã¯ã©ãŠãã§ã®ã¿åäœããäžéšã¯ãµãŒããŒã«ã€ã³ã¹ããŒã«ã§ããŸãã
ãããããã¹ãŠã«ããŒããã€ããã¯ãããŸããã Webã¢ããªã±ãŒã·ã§ã³ã§ããææ°ã®æ±çšã·ã¹ãã ã®ã¿ãåãäžããŸãããã
ææ°ã®éçºã¯ãããŒãžã§ã³ç®¡çã·ã¹ãã ã䜿çšããŠããããšãæå³ããŸãã
ããŒãžã§ã³ç®¡çã¯ã»ãšãã©ã®å Žågitã§ãã
Gitã¯ã»ãšãã©ã®å ŽåGitHubãŸãã¯åæ§ã®ãµãŒãã¹ã§ãã
ã¢ãã³ãªãã¶ã€ã³ã®ãã¹ããã©ã¯ãã£ã¹-æ©èœãã©ã³ããšãã«ãªã¯ãšã¹ãã
CIã¯pullrequestã®ã¹ããŒãªãŒã«å®å šã«é©åããŸãã
ãã¹ãŠã®å€æŽã衚瀺ãããã ãã§ãªããç¹å®ã®æ©èœã®éçºã«ã€ããŠ1ãæã§è©±ãåãã ãã§ãªãã察å¿ããCIã¢ã»ã³ããªã®ã¹ããŒã¿ã¹ãããã«è¡šç€ºãããŸãã
ïŒããã§ã¢ã»ã³ããªã倱æããŸãã-詳现ã«ç§»åããã©ãã§å£ããããèŠã€ããŠä¿®åŸ©ããå¿ èŠããããŸãïŒ
ãããä¿®æ£ããã³ãããããéå§ããããã»ã¹ãæ°ãããã®ãéå§ããŸã-CIã·ã¹ãã ã¯ãã©ã³ãäžã®æ°ããå€æŽãæ€åºããæ°ããã¢ã»ã³ããªãéå§ããŸãã
ã¢ã»ã³ããªã¯ããã€ãã®æ®µéã§æ§æãããŸãã æãå žåçãªã®ã¯ããã¹ããã³ã³ãã€ã«ãå±éã§ãã
åœç¶ãCIã·ã¹ãã ã¯ãããã®ã¹ããããäœã§ãããã説æããå¿ èŠããããŸãã
CIã·ã¹ãã ã®æ§æ
CIã·ã¹ãã ã®æ瀺ããããžã§ã¯ãã®ãªããžããªå ã®å¥ã®ãã¡ã€ã«ã§ããå Žåããã¹ãŠã®æ£ããCIã·ã¹ãã ã¯ã³ãŒããšããŠã®æ§æã®ååã«åŸããŸãã ãã®ãããã»ãšãã©ã®ã·ã¹ãã ã§ã¯ãåœä»€ã§YAML圢åŒã䜿çšãããŠããŸãã
GitLab CIã®æãåçŽãªæ瀺ãã¡ã€ã«ã¯æ¬¡ã®ããã«ãªããŸãã
test_job: script: - ls -l
å°ãè€éãªæ瀺ïŒCircle CIïŒïŒ
version: 2 jobs: test: docker: - image: circleci/ruby:2.4-node steps: - checkout - run: rspec deploy: docker: - image: circleci/ruby:2.4-node steps: - checkout - run: cap deploy
ãããŠãããã§ããããã¹ãŠã®æ瀺ã¯ã©ããã§èµ·åãããã¹ãã§ããããšãæãåºããŸãã
å éšã®CIã·ã¹ãã ã®å 容
ãªããžããªãžã®ããã·ã¥ããšã«ãCIã·ã¹ãã ã¯ãå éšã§æ瀺ãèµ·åããäœæ¥ã®çµæãååŸãããã·ã³ãæ¶æ» ãããä»®æ³ãã·ã³ãäœæããŸãã
ã¢ã»ã³ããªã«å¯Ÿããå€éšèŠå ã®åœ±é¿ãå¶éããããã«ãã¯ãªãŒã³ãªã·ã¹ãã ãå¿ èŠã«ãªããã³ã«ã
äžéšã®CIã·ã¹ãã ã¯ããã«dockerã䜿çšããŸãããäžéšã®CIã·ã¹ãã ã¯ãããªãã§åºãŸãã ãã³ãïŒDockerã䜿çšããŠãã ãã;ïŒ
ïŒå®éã«ã¯ããã¹ãŠãããè€éã§ãããã»ãšãã©ã®CIã·ã¹ãã ã¯ããŸããŸãªã¢ãŒãã§åäœããŸãããããã©ã«ãã¢ãŒãããéå§ããæ¹ãããã§ããããããã«ãŒã³ã³ãããŒå ã§ã¿ã¹ã¯ãéå§ããã ãã§ãïŒ
ãªããããæ®éã®éçºè ã«ãšã£ãŠãã¹ãŠãªã®ã§ããããïŒ
- ã¯ããŒãºã§ããéçºã®åŽé¢ãå€ãã»ã©ã䟡å€ãé«ããªããŸãã ã³ãŒããäœæããŠéå§ããèãæé·ããªããŠããããã¯1ã€ã®ããšã§ãã ãã¹ããšã¢ããªã±ãŒã·ã§ã³ã®å±éãåæã«è¡ããšããŸã£ããç°ãªããŸãã CIã§ããããã¹ãŠèªååããå Žå-3çªç®:)
- æéãããŠã°ãCIã¯ããŒãžã§ã³ç®¡çãšåãããã©ã«ãã«ãªãããšãç解ããŠãã ããã
ç·Žç¿ããããã€ãã®ç¶æ³ã説æããŸãã 次ã®ããããã«ã¢ã¯ã»ã¹ããå¯èœæ§ããããŸãã
ç¶æ³çªå·1
2人ã®éçºè ãç°ãªããã©ã³ãã§éçºããŸãã ãããã®åãã¹ãã¯ããã¹ã¿ãŒãšã®ããŒãžåŸãå«ããæ£åžžã«åæ ŒããŸãã
ããããäž¡æ¹ã®ãã©ã³ãããã¹ã¿ãŒã«ããŒãžããããšããã«ããã¹ãã¯å€±æãå§ããŸãã åé¡ã¯ãCIããªããã°ããã®ãããªã³ãŒãã¯ç°¡åã«æ¬çªç°å¢ã«å ¥ãããšã©ãŒã®ååšã¯ããã ãã§çºèŠãããããšã§ãã
ç¶æ³çªå·2
15人ã®ããŒã ãWebã¢ããªã±ãŒã·ã§ã³ãéçºããŠããŸãã ãŽã¡ã·ãªãŒã¯éŒ»ã«å®¶æã®äŒæ¥ãæã£ãŠããŸãã 圌ã¯åœå±ã«æ©ãã«åºãŠè¡ã£ãŠãã³ãŒããããŸã泚ææ·±ããã§ãã¯ãããã³ãã³ãã©ã€ã³ã§ãããã€ãéå§ããã³ã³ãã¥ãŒã¿ãŒãã·ã£ããããŠã³ããåæã«é»è©±ãåæããŠä»äºãèŸããŸãã-家æã¯ä»äºãããéèŠã§ãïŒ
ãã®çµæãçç£ãäžæããå±éãã°ãããã¯ãããã³ã³ãã¥ãŒã¿ãŒã«æ®ããæ®ãã®éçºè ã¯ãäœã蟱ãããå±éããã»ã¹ã§äœãééã£ãŠããã®ãã誰ã責任ãè² ãã®ããç解ããããšããŠé«ªãåŒãè£ããŸããã
ããŒã ãCIã·ã¹ãã ã䜿çšããŠããå Žåããã¹ãŠã®å±éãã°ïŒããã³ãã®ä»ã®ã¿ã¹ã¯ïŒãCIã·ã¹ãã ã«ä¿åããããããäœãåé¡ã§ãã£ãããåžžã«ç¢ºèªã§ããŸãã
ã©ã®CIã·ã¹ãã ããå§ããŸããïŒ
Githubã¯è¯ãæããããäžããŠãããŸãïŒ
GitHubã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã¯ãã»ãšãã©ã®å ŽåTravis CIã§ãã¹ããå®è¡ããŸãã ããªãã¯ããã«çŽé¢ããããšã¯ã§ããŸããã ããããŸãããTravis CIãã¡ã¢ããŸãããGoogleãå®è¡ããŠå®è¡ãããŸã§ããã¥ã¢ã«ãèªã¿ãŸãã
The Forrester Waveã«ããç¶ç¶ççµ±åããŒã«ã«é¢ããæè¿ã®èª¿æ»çµæãèŠãŠã¿ãŸãããã
äžèšã§èšãã°ãCIã·ã¹ãã ã®çŸåšã®æ©èœãéçºã®å¯èœæ§ãçŸåšã®åžå ŽèŠæš¡ã調ã¹ãŸããã
ãã¹ãæ¹æ³è«ã«èå³ããã人ã¯ãç 究èªäœãèªãã§ãã ããã çµè«ã«èå³ããããŸãã
ãªãŒããŒã¯æ¬¡ã®ãšããã§ãã
4ïŒ CloudBeesã¯Jenkinsã®èåŸã«ããäŒç€Ÿã§ãã ããã¯æãå€ããªãŒãã³ãœãŒã¹CIã·ã¹ãã ã®1ã€ã§ãããããããå é ã«ç«ããªãã®ã¯å¥åŠã§ãã
3ïŒãã§ã«2çªç®ã®ãœãŒã¹ã«ãããµãŒã¯ã«CIããªãŒãããŠããŸããã ãŸãã泚æãå¿ èŠã§ãã
2ïŒ Microsoft-ã³ã¡ã³ããªãã 倧ããªåœ±é¿åãæã€å·šå€§äŒæ¥ã Windowsçšã®ãœãããŠã§ã¢ãéçºããŠããå Žåãã»ãšãã©ã®å Žåãéžæè¢ãããããŸããã äŒç€ŸãTFSãšãã®CIã·ã¹ãã ãåããMicrosoftã®éçºããŒã«ã¹ã¿ãã¯ã®ã©ã€ã»ã³ã¹ãè³Œå ¥ããå Žåãå®éã«èŠåãã®ã§ã¯ãªãã圌ããæäŸãããã®ã ããæã«ãã
1ïŒ GitLabãæåã«ç»å ŽããŸãã éå»æ°å¹ŽéäŒç€Ÿããã©ããŒããŠããªã人ã«ãšã£ãŠãããã¯å®å šãªé©ããšããŠæ¥ããããããŸããã ããã«ã€ããŠãã£ãšè©³ãã話ããŸãããã
Gitlab
èè ã¯Gitlabã§1幎éãDeveloper AdvocateãšããŠåããŠããã®ã§ã次ã®æ®µèœãèªããšããããªãã¯ç§ãåèŠãæã¡ãæç䞻矩ã®ãããæ°åããŒã»ã³ãç·©ããããšãèãããã¹ãŠã®æš©å©ãæã£ãŠããŸãã ããã§ããGitlabã«ã€ããŠå€ãã®ããšãç¥ãå¿ èŠããããšæããŸãã
Gitlabãããèªäœãåã«Githubã®ã¯ããŒã³ãšèŠãªãããšãæåŠããããšãéèŠã§ãããäŒç€Ÿã¯Gitlabãéçºè åãã®ãã¯ã³ã¹ãããã·ã¹ãã ãã«åããŠéçºããããšã決å®ããŸããã Gitlabã¯ãã§ã«ãªã¹ãã®GithubãTrelloãCIã·ã¹ãã ãªã©ã«çœ®ãæããããšãã§ããŸãã ãã¹ãŠã®ããŒã«ã¯ãã§ã«æ§æãããŠãããäºãã«çµ±åãããŠããŸãã éçºè ã«ãšã£ãŠã®çµæã¯ãèšå®ã«é¢ããæå°éã®éšãã§ãã
Gitlabã®ãœãŒã¹ã³ãŒãã¯å ¬éãããŠãããå¿ èŠã«å¿ããŠèªåã®ãµãŒããŒã§ç¡æã§äœ¿çšã§ããŸãã ããããç§ãã¡ã¯ãã®ã¹ããŒãªãŒã§ãã¯ã©ãŠãããŒãžã§ã³-GitLab.comãšãããããããå¯èœæ§ã«æãèå³ãæã£ãŠããŸãã
- ãã©ã€ããŒããããžã§ã¯ããç¡å¶éã«ãã¹ããã
- ãã«ãã€ã³CIãç¡æã§äœ¿çšããå Žåã1ãæããã2000ãã«ãå
æ¯åãããã ãŸããçµæãšããŠãå人çãªãããžã§ã¯ãã«äœ¿çšããŠãåŠã¶æ©äŒã
èŠããã«ãããªãã¯ç§ã®å人çãªæšå¥šäºé ãGitLab CIã§ãããšãã§ã«æšæž¬ããŸããã Gitlabã«ã¯ãå°æ¥çã«æ¬¡ã®å€§ããªãã®ã«ãªãå¯èœæ§ããã¹ãŠãããŸãã ãããŠãçªç¶ãã¡ãã·ã§ããã«ãªãã®ã«ãªãçµéšè±å¯ãªã¹ãã·ã£ãªã¹ãã«ãªãããšã¯ã人æ°ã®ã¹ãã·ã£ãªã¹ãã«ãªãããšã§ã;ïŒ
githubãé¢ããæºåãã§ããŠããªãå Žåã¯ã Circle CIãŸãã¯Travis CIãè©ŠããŠãã ããã
CIãç解ããåæ段éã§ã¯ã JenkinsãšTeamCityãé¿ããŠãã ãã ã ãããã®æ§åŒã®ã·ã¹ãã ã«ã¯ãªãŒããŒããããå€ããããããCIèªäœãããã·ã¹ãã ã®æ©èœãå€ãæ±ãå¿ èŠããããŸãã
ããªãã¯ãžã§ã³ãã³ã¹ãCIã ãšèãå§ããŸãããããŠãããã¯æãã§ãã å¯èœæ§ã®ããäŸå€ã¯ãããªãããžã£ãã¹ããããã¯ãã³ããŸãã¯ã³ããªãã¹ãã§ãããããã§ãã¹ãŠãç®±ããåºããŠåäœããããšã§ãã
Windowsã§ããã°ã©ã ããããã«ããªãã®çš®é¡ã«æžãããŠããå Žåãããªãã¯ééããªãMicrosoftã¹ã¿ãã¯ãè¿œãè¶ããŸããããç§ã¯èªåã®èªç±æå¿ã§ããã䜿çšããŸããã
ã§ã¯ãå ã«é²ã¿ãŸããã...
éå§ããã¿ã¹ã¯
è¯ããã¥ãŒã¹ã¯ãããã«CIã®å°é家ã«ãªãå¿ èŠããªãããšã§ãã æå§ãã«ãåçŽãªã被åäœã«ãããã ãã§ååã§ãã 軜ããã®ããå§ããŸãããïŒ
- ããšãã°ããã¹ã¿ãŒã«ããã·ã¥ãããšãã«å人çšãµã€ããå±éããæ¹æ³ãåŠã³ãŸãã
- å人çšWebãµã€ãã®ããã¹ãçšã«yaspellerã§ã¹ãã«ãã§ãã¯ãåã蟌ã
- ãã€ããŒã¯ãŒãã³ã°ãã©ããã®CIã§ããã€ãã®ãªã³ã¿ãŒãèµ·åããŸãã
CIå ã§ã®æåã®ãã«ãã®èµ·åã¯2åéã®ã¿ã¹ã¯ã§ãã æçšãªãã®ãéå§ããã«ã¯ãããå°ãæéãè²»ããå¿ èŠããããŸãã ã¹ã¯ãªããã®äœæ¥ç°å¢ãã»ããã¢ããããå¿ èŠããããŸãã
ããã§ã¯ãããã«ã€ããŠè©³ãã説æããŸããã èå³ã®ããæ¹ã®ããã«-èšäºã®æåŸã«ãããªã³ã¯ã
ãããŸã§ã®éã倧èŠæš¡ãªãããžã§ã¯ãã§CIãã©ã®ããã«äœ¿çšãããŠãããããããŠãããããªãã«äžããåãèŠãŠã¿ãŸãããã
倧èŠæš¡ãããžã§ã¯ãã§CIãæäŸãããã®
倧èŠæš¡ãªãããžã§ã¯ã-æ·±å»ãªèŠä»¶ã ããã§ã¯ã1ã€ãŸãã¯2ã€ã®ããŒã ã®ç«ã¡äžãã ããè¡ãããšã¯ã§ããŸããã ãã®ãããªããžãã¯ã¯ç°¡åã«æ³åã§ããŸãã1ïŒç¹å®ã®ãã©ã³ãã«ã³ãããããå Žåã«ã®ã¿ã¿ã¹ã¯ãå®äºããã2ïŒæ¬¡ã®ã¿ã¹ã¯ãæ£åžžã«å®äºããã3ïŒç¹å®ã®ã¿ã¹ã¯ãå®è¡ãããšãã«ãšã©ãŒãç¡èŠããã4ïŒãã³ããã«ãä¿¡å·ããã¹ãŠãå®äºããã®ãåŸ ã€
ç§ã®ãæ°ã«å ¥ãã®äŸã¯GitLabèªäœã§ãã
äœæ¥ã¯åžžã«æ¬æ Œçã§ãããCIã®åäœããªã¢ã«ã¿ã€ã ã§ç¢ºèªã§ããŸãïŒ https : //gitlab.com/gitlab-org/gitlab-ce/pipelines
ããã¯å€§ããªãããžã§ã¯ãã§ãããäºåã®æºåãªãã«CI-configãç£èŠããããšã¯ãå§ãããŸããã
代ããã«ãCIã¿ã¹ã¯ãã§ãŒã³ã®èŠèŠåãèŠãŠãã ããã
https://gitlab.com/gitlab-org/gitlab-ce/pipelines/20201164
1ïŒããã¯ããã¹ãŠã®CIã·ã¹ãã ã«æ±ºããŠãããŸããã ãããã©ãã«ãã-ããã¯ããŒã ã«CIã§äœãèµ·ãã£ãŠããããèŠèŠçã«è¡šçŸããããã¯äŸ¡å€ããããšæããŸãã
2ïŒããã«ãCIã·ã¹ãã èšå®ãã¡ã€ã«ã¯ãã³ãã³ãã®ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ããã»ã¹ã®äœæ¥çšããã¥ã¡ã³ãã«ãªããŸãã éçºè ã¯ãç®çã®å€æŽãå«ããã«ãªã¯ãšã¹ããäœæããããšã§ãããã«äœããè¿œå ãŸãã¯å€æŽã§ããŸãã
3ïŒæåŸã«ãCIã·ã¹ãã ã¯ãå±éãŸãã¯ãã¹ãå®è¡äžã«ã©ãã§äœãåé¡ã«ãªã£ããã確èªã§ããäžå¿çãªå Žæã«ãªããŸãã
éçºããã»ã¹ã®é«éåãä¿¡é Œæ§ã®åäžãããã³ãªã¹ã¯ã®åæžã«ã€ããŠãããããã¹ãŠã®äŒçµ±çãªäœãšãäœãšããããªãã®å¥œã¿ã«å ããŠãã ããã
ããã«æãå Žæ
ïŒããå°ãæ·±ãå匷ãããå ŽåïŒ
1ïŒGitLab CIã䜿çšããŠS3ããã³Herokuã§ãããã€ãå®è¡ããæ¹æ³ã®äŸãå«ãã¹ã¯ãªãŒã³ãã£ã¹ããã芧ãã ããã
2ïŒ GitLab CIã®æŠèŠãšå±éã¬ã€ãããèªã¿ãã ãã ã
3ïŒ ããã¥ã¡ã³ããã¹ã¢ãŒã¯ããŸã ã
4ïŒ1ã€ã®CIã·ã¹ãã ã«æ £ããããææãªCIã·ã¹ãã ããä»ã®ã·ã¹ãã ãéžæããŠéãã§ãååãã©ãã«ã§ãå ±éããŠããããšã確èªããèªä¿¡ãé«ããŸãã