ð ãã±ã¢ã³ã§åŠã¶ïŒCI/CDã®åéºã¬ã€ã ïœäžåŠçã§ããããèªååã®äžçïœ
ãã±ã¢ã³ã®äžçãèå°ã«ãCI/CDïŒç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ïŒç¶ç¶çããªããªãŒïŒã®ä»çµã¿ãããžã æŠãåéºã«äŸããŠãããããã説æããŸãã
ð éåŒãç®æ¬¡ïŒãã±ã¢ã³ã§åŠã¶CI/CDïŒ
ð¯ ããããCI/CDã£ãŠãªã«ïŒ
CIïŒContinuous IntegrationïŒãšã¯âŠ
ã¿ããªã®ããã°ã©ã ãèªåã§ãŸãšããŠç¢ºèªããä»çµã¿ïŒ
ãã±ã¢ã³ã§èšããšããããã«åã«å šãã±ã¢ã³ããã±ã¢ã³ã»ã³ã¿ãŒã§å¥åº·ãã§ãã¯ãããããšïŒ
CDïŒContinuous Delivery/DeploymentïŒãšã¯âŠ
ãã°ããªããã°èªåã§ã¢ããªãåºè·ã»æŽæ°ããä»çµã¿ïŒ
ãã±ã¢ã³ã§èšããšããæºåäžç«¯ã«ãªã£ããèªåã§æ¬¡ã®åéºãžåºçºãããããšïŒ
ð§© ãã±ã¢ã³ã§èšããšããïŒ
ãã±ã¢ã³ã®äžç | éçºã®äžç |
---|---|
ãã±ã¢ã³ã»ã³ã¿ãŒã«ãã±ã¢ã³ãé ãã | Gitã«ã³ãŒããPushãã |
ãžã§ãŒã€ãããå¥åº·ãã§ãã¯ããã | CIããã¹ããå®è¡ |
åé¡ããªããã°ããã«åéºã«åºçºïŒ | CDã§èªåããã〠|
ç¶æ ç°åžžã ã£ãããäŒãŸããŠãããã | ãšã©ãŒãåºããéç¥ |
ðº ã¹ãããå¥ CI/CD åéºã¬ã€ã
1ïžâ£ ãã±ã¢ã³ãè²ãŠãïŒã³ãŒããæžãïŒ
- ãã¬ãŒããŒã¯ãã±ã¢ã³ã倧åã«è²ãŠãŸããæ¯æ¥äžç·ã«ããã«ããŠãçµéšå€ãç©ãŸããé²åãããããæãèŠãããããããŸãã
- ããã¯ã³ãŒããæžãäœæ¥ãšåãã§ãããã匷ãæïŒïŒæ°æ©èœïŒãèŠãããããã匱ç¹ïŒïŒãã°ïŒãå æãããããããªãã®ã§ãã
ð§ ãã¬ãŒããŒïŒæã®ååãèããïŒé¢æ°åãæ±ºããïŒ
𧪠æãã·ã³ã䜿ãïŒæ°æ©èœã远å ãã
ð ã¬ãã«ã¢ããïŒäœåºŠãç·Žç¿ããŠããã±ã¢ã³ãæé·ããã
2ïžâ£ ãã±ã¢ã³ã»ã³ã¿ãŒã«é ããïŒGitã«PushïŒ
- é ãããèªåã§å¥åº·èšºæãå§ãŸããŸããã³ãŒããGitHubã«PushãããšãCIããŒã«ãåãåºãã€ã¡ãŒãžã§ãã
3ïžâ£ ãžã§ãŒã€ãããå¥åº·ãã§ãã¯ïŒCIã§ãã¹ãïŒ
- æãæ£ããåããããã±ã¢ã³ãå æ°ãããã§ãã¯ããŠãããŸãã
# äŸïŒGitHub Actionsã®èšå®
name: Pokemon CI
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run tests
run: npm test
4ïžâ£ åéºãžåºçºïŒïŒCDã§ãããã€ïŒ
- æºåOKãªãã±ã¢ã³ã¯ãã®ãŸãŸãžã æŠãžïŒ
- ãã¹ãOKãªã³ãŒãããã®ãŸãŸæ¬çªç°å¢ãžåºçºïŒ
# äŸïŒæ¬çªãµãŒããŒãžãããã€
- name: Deploy to production
run: npm run deploy
ðŠ å®åã§äœ¿ãããããŒã«äŸ
ãã±ã¢ã³ã®äžç | ããŒã«äŸ | çšé |
---|---|---|
ãã±ã¢ã³ããã¯ã¹ïŒé ããïŒ | GitHub, GitLab | ãœãŒã¹ç®¡ç |
ãžã§ãŒã€ããïŒå¥åº·èšºæïŒ | GitHub Actions, CircleCI | CIããŒã« |
åéºã«éãåºãïŒåºçºïŒ | Vercel, Netlify, Firebase | ãããã€ããŒã« |
ð§ ãŸãšãïŒCI/CDã¯åéºãå éãããïŒ
- è²ãŠããã±ã¢ã³ãèªåã§ãžã ã«æãã§ãããïŒ
- ãã¬ãŒããŒãå¯ãŠãŠããèªåã§äœèª¿ç®¡çïŒåºçºããŠãããïŒ
- ç¶æ ç°åžžããã°ãããã°å³ã¡ãŒã«ã§ãç¥ããããŠãããïŒ
CI/CDãå°å ¥ãããšããŸãã§ããã±ã¢ã³ãèªåã§ãããžéãããŠãããããããªåéºå¹çåãã§ããã®ã§ãïŒ
ð ããããã®äžæ©
- GitHubã«ãµã€ã³ã¢ããããŠã¿ãã
-
actions/setup-node
ãactions/checkout
ã詊ããŠã¿ãã - èªåã®ãã±ã¢ã³ïŒã³ãŒãïŒãèªåã§åéºã«åºããŠã¿ããïŒ