ã2026幎çãGitHub Actionsã®å§ãæ¹ â CI/CDãèªååããå®å šã¬ã€ã
GitHub Actionsã£ãŠããèããã©ãäœãã§ããã®ïŒ
ç°¡åã«èšããšãGitHubã«ã³ãŒããpushããããã«ãªã¯ãšã¹ããåºãããšãã«ããã¹ãããããã€ãèªåã§å®è¡ããŠãããä»çµã¿ã ãããããããããCI/CDãã€ãŸããç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ã»ç¶ç¶çããªããªãŒãã£ãŠãã€ã ãã
CI/CDã£ãŠé£ãããã ãã©ãå ·äœçã«ã¯ã©ãããããšãªã®ïŒ
CIã¯ãã³ãŒãã倿Žãããã³ã«èªåã§ãã¹ããèµ°ãããŠãå£ããŠãªãã確èªãããããšãCDã¯ããã¹ããéã£ããèªåã§æ¬çªç°å¢ã«ãããã€ãããããšãæäœæ¥ã§ãããšå¿ããããã¹ããããããã©ãGitHub Actionsã«ä»»ããã°pushããã ãã§å šéšãã£ãŠããããã ãã
䟿å©ã ãïŒã§ãã©ããã£ãŠèšå®ããã®ïŒ
ãªããžããªã®äžã«ã.github/workflowsããšãããã©ã«ããäœã£ãŠãããã«YAMLãã¡ã€ã«ã眮ãã ãã ãããã®YAMLãã¡ã€ã«ããã¯ãŒã¯ãããŒããšåŒã°ããŠããŠããã€ã»äœãã»ã©ã®é çªã§å®è¡ããããå®çŸ©ãããã ããã¡ã€ã«åã¯èªç±ã ãã©ãci.ymlãšãdeploy.ymlã¿ããã«åãããããååãä»ããã®ãããããã ãã
ã¯ãŒã¯ãããŒã®äžèº«ã£ãŠã©ããªæ§é ã«ãªã£ãŠããã®ïŒ
倧ãã3ã€ã®èŠçŽ ããããããŸããããªã¬ãŒãã§ããã€ã¯ãŒã¯ãããŒãåããããæ±ºãããpushãããšãããã«ãªã¯ãšã¹ããäœããããšããã¹ã±ãžã¥ãŒã«ã§å®æå®è¡ããªãããéžã¹ãããæ¬¡ã«ããžã§ããã§ãå®è¡ããäœæ¥ã®ãŸãšãŸãããããŠãžã§ãã®äžã«ãã¹ããããããã£ãŠãå ·äœçãªã³ãã³ãã1ã€ãã€æžããŠãããã ãã
ããªã¬ãŒã«ã¹ã±ãžã¥ãŒã«ããããã ãïŒæ¯æ¥æ±ºãŸã£ãæéã«ãã¹ããèµ°ãããããã§ããã®ïŒ
ãããããcron圢åŒã§æå®ã§ããããããšãã°æ¯æ¥æ9æã«äŸåããã±ãŒãžã®è匱æ§ãã§ãã¯ãèªåã§èµ°ããããã¿ãããªäœ¿ãæ¹ãã§ããããä»ã«ãç¹å®ã®ãã©ã³ããã¿ã°ãžã®pushã ããããªã¬ãŒã«ããããæåå®è¡ã®workflow_dispatchã£ãŠããããªã¬ãŒããããã
ãžã§ããšã¹ãããã®é¢ä¿ããŸã ã¡ãã£ãšåãããªãããªïŒ
ããšãã°ãã¹ããžã§ããšãããã€ãžã§ããåãããšããããããã¹ããžã§ãã®äžã«ã¯ãã³ãŒãããã§ãã¯ã¢ãŠãããããäŸåããã±ãŒãžãã€ã³ã¹ããŒã«ãããããã¹ããå®è¡ããããšãã3ã€ã®ã¹ããããããããããã€ãžã§ãã«ã¯ããã«ããããããµãŒããŒã«ã¢ããããŒãããããšããã¹ããããããããžã§ãå士ã¯äžŠåã§åããããããã¹ããéã£ãŠãããããã€ãããã¿ããã«é åºãæå®ããããã§ãããã ãã
å šéšèªåã§æžããªãããããªãã®ïŒå€§å€ããâŠ
ããã§äŸ¿å©ãªã®ãMarketplaceã ãïŒãã䜿ãåŠçã¯ãã¢ã¯ã·ã§ã³ããšããŠã³ãã¥ããã£ãå ¬éããŠããŠãããšãã°Node.jsã®ã»ããã¢ãããAWSãžã®ãããã€ãSlackãžã®éç¥ãªããã¯å ¬åŒããµãŒãããŒãã£ã®ã¢ã¯ã·ã§ã³ã1è¡æžãã ãã§äœ¿ãããã ãã¯ãŒã¯ãããŒã®ã¹ãããã§usesããŒã¯ãŒãã䜿ã£ãŠæå®ããã ãã ãã
APIããŒãšããã¹ã¯ãŒãã¯ã©ããã£ãŠç®¡çããã®ïŒã¯ãŒã¯ãããŒã«çŽæ¥æžãããå±ãªãããïŒ
ãã質åã ãïŒGitHubã«ã¯Secretsãšããæ©èœããã£ãŠããªããžããªã®èšå®ç»é¢ããæå·åãããç¶æ ã§ç»é²ã§ããããã¯ãŒã¯ãããŒã®äžã§ã¯secretsãšããç¹å¥ãªå€æ°ã§ã¢ã¯ã»ã¹ãããã ããã°ã«ã衚瀺ãããªããããã©ãŒã¯ãããªããžããªãããèŠããªãããã«èšèšãããŠããããå®å¿ã ããæ¬çªã®ãããã€ããŒãAPI ããŒã¯ã³ã¯å¿ ãSecretsã«å ¥ããããã
Node.js 18ãš20ã®äž¡æ¹ã§ãã¹ãããããšããšãã¯ã©ãããã®ïŒ
ããã¯ããããªã¯ã¹ãã«ããã®åºçªã ããstrategyã®matrixã§ãNode.jsã®ããŒãžã§ã³ãšãOSã®çš®é¡ãé åã§æå®ãããšãå šçµã¿åããã§èªåçã«ãžã§ãã䞊åå®è¡ããããã ããããšãã°Node.js 18ãš20ãUbuntu ãšWindowsã®çµã¿åãããªã4ã€ã®ãžã§ããåæã«èµ°ããã¯ãã¹ãã©ãããã©ãŒã ã®ã©ã€ãã©ãªéçºã§ã¯å¿ é ã®ãã¯ããã¯ã ãã
æ¯åããã±ãŒãžã€ã³ã¹ããŒã«ãããšæéããããããã ãã©ãäœã察çã¯ããã®ïŒ
ãã£ãã·ã¥ã掻çšãããšåçã«éããªãããactions/cacheãšããã¢ã¯ã·ã§ã³ã䜿ãã°ãnode_modulesãåçš®ããã±ãŒãžãããŒãžã£ã®ãã£ãã·ã¥ãä¿åããŠæ¬¡å以éã®ã¯ãŒã¯ãããŒã§åå©çšã§ãããã ãnpm ciã§æ¯å3åããã£ãŠããã®ããã£ãã·ã¥ãããã§10ç§ã«ãªãããªããŠããšãçãããªããã2026幎çŸåšã§ã¯actions/setup-nodeãªã©ã®ã»ããã¢ããç³»ã¢ã¯ã·ã§ã³ã«ãã£ãã·ã¥æ©èœãçµã¿èŸŒãŸããŠãããããããã«ç°¡åã«ãªã£ãŠãããã
å®éã«å§ãããšããããæåã«äœãã¯ãŒã¯ãããŒã¯ã©ããªãã®ããããããªã®ïŒ
ãŸãã¯pushãšãã«ãªã¯ãšã¹ããããªã¬ãŒã«ãããã¹ãèªåå®è¡ã¯ãŒã¯ãããŒãããããã ããã³ãŒãã®ãã§ãã¯ã¢ãŠããNode.jsã®ã»ããã¢ãããäŸåããã±ãŒãžã®ã€ã³ã¹ããŒã«ããã¹ãå®è¡ããšãã4ã¹ãããã ãã§ååå®çšçãªCIãçµãããã ãæ £ããŠããããªã³ã¿ãŒããã©ãŒããã¿ãŒã®ãã§ãã¯ãmainãã©ã³ããžã®ããŒãžæã«èªåãããã€ããšãã£ãå ·åã«ã¹ãããã远å ããŠããã°ããããå°ããå§ããŠè²ãŠãŠããã®ãã³ãã ãã