å·»ç©ãæ¢ã
15ä»¶ã®å·»ç©
GitHub Actions ã®èª²éåã宿ž¬ããŒã¹ã§åã
Actions ã®è«æ±ãæšæž¬ã§ãªã宿ž¬ããåãæé ããžã§ãåäœã®ååãäžããšããèª²éæ§é ãã¹ãããå¥ã«æéãå²ã API ã®å©ãæ¹ãçæéé«é »åºŠã¯çµ±åã»é·æé㯠per-row åŸåŸ©ã®äžæ¬åãšããæã¡åãã䞊å床ãäžããŠãå¹ããªãã±ãŒã¹ã®èŠåãæ¹ããããŠãé ãã¹ããããå®ã¯åãããŒã¿ãæ¯ååŠçãçŽããŠããæ¬ é¥ãã®èŠã€ãæ¹ãŸã§ãæ¬çªã®å€éãžã§ãã宿ž¬ç®çã§åå®è¡ããŠéè€ã¬ã³ãŒãã倧éçæãã倱æäŸãšããã®å·»ãæ»ãã®äœæ³ãå«ãã
GitHub Actions ã®èª²éåã宿ž¬ããŠåãæé ïŒcron çµ±åãã€ãšããïŒ
GHA ã¯ãžã§ãããšã«ååäœã§åãäžã課éãããããæ°ç§Ãé«é »åºŠã® cron ãæãå²é«ã«ãªãã/timing API ã§å šã¯ãŒã¯ãããŒã®èª²éåã宿ž¬ããcron åŒãå®å šäžèŽããã¯ãŒã¯ãããŒã®ã¹ããããžçµ±åããŠé »åºŠãåŠçãå€ããã«åãæé ãschedule ã¯å€§éã«éåŒãããããåã²ãŒãã§ã®éåŒããæç«ããªãããšãçµ±åãããšåã¹ãããã®å€±æã§åŸç¶ã silent skip ãããããšãäºç®äžéã§ãžã§ãæªèµ·åã«ãªã£ãæã®èŠåãæ¹ãŸã§å«ãã
ãã°ã€ã³ã§ããªãGitHubã¢ã«ãŠã³ãã«çžãããéçºããæ¢ããã«åãžé²ãã
ãã¹ã¯ãŒãäžæã»2FAã§å ¥ããªãGitHubã¢ã«ãŠã³ãã®PATã«workflowã¹ã³ãŒããç¡ããã¯ãŒã¯ãããŒãpushã§ããªãè©°ã¿ã®è§£ãæ¹ã埩æ§ã«èµ°ãåã«æœ°ãã¹ã5ã€ã®çµè·¯ïŒæå ã¢ã«ãŠã³ãã®ã¹ã³ãŒã確èªïŒäŸåã確èªããŠçœ®ãæãïŒã³ãããauthorããç»é²ã¡ãŒã«ç¹å®ïŒæåŸ ã®APIå諟ã§Webãã°ã€ã³åé¿ïŒsecretsç»é²ã¯repo+adminã§è¶³ããåæ ïŒãæé åã
ãããŒãžããã®ã«çŽããªããâ ãããã€å ãšå®æå®è¡ã®ãã©ã³ããéãçœ ã®æ€åºãšå¯ŸåŠ
GitHub Actions ã® schedule ã¯åžžã«ããã©ã«ããã©ã³ãã§èµ°ããæ¬çªãããã€å ãå¥ãã©ã³ãã ãšãåãã¹ã¯ãªããã®çã2ã€ååšããããŒãžããŠãããã€ããã®ã«æ¯æ©ã®ãããã ãå€ããŸãŸãã«ãªããæ€åºã³ãã³ããbase ã®éžã³æ¹ããããŠããããã€å®äºã¯èšŒæ ã«ãªããªããããšã®ç¢ºããæ¹ãŸã§ã
ããã·ã¥ããŒãããartifact ãèŠã€ãããªããã§çã£èµ€ã«ãªãã®ãå¡ã
GitHub Actions ã®ææç©ãç»é¢ã«åºãæ§æã no valid artifacts found ã§èœã¡ãçå ïŒpreflight skip ãã run ã success ã ã artifact ç¡ãïŒãšãartifact å®åšç¢ºèªïŒçŽè¿æåãžã®ãã©ãŒã«ããã¯ã§ç»é¢ã殺ããªãçŽãæ¹ãåžžé§ããã»ã¹ã®äžä»£ç¢ºèªãšå®ãã©ãŠã¶æç»ãŸã§ã®æ€èšŒæé ã€ãã
宿å®è¡ããæåãªãåãããŸãŸäœé±éãæ¢ãŸã£ãŠããã®ãèŠæããŠçŽã
GitHub Actions ã® schedule ã ãã 403 ã§å šæ» ããŠãæåå®è¡ã¯æåãç¶ããããæ°ä»ããªãã--event=schedule ã§ã®çåå€å®ãactions:read ã®ä»äžãçŽããåŸã«é²åºããæ¬¡ã®å±€ã®æœ°ãæ¹ãæ»æŽ»ç£èŠã®ä»çµã¿åãŸã§ãæé åããã
CI ãå šéš green ãªã®ã« auto-merge ãããªã PR ãåå ããç¹å®ããŠèªåããŒãžã«ä¹ãã
GitHub ã® auto-merge ãå¹ããªãåå ã¯æš©éã§ã¯ãªã fork ã§ããããšãå€ããåãåãã³ãã³ããã¯ãŒã¯ãããŒã®5æ¡ä»¶ã®èªã¿æ¹ãæ£ããæåºçµè·¯ãã©ãã«å¿ããæåã«èŠããèœãšã穎ãGraphQL ãš REST ã®2系統ã宿ž¬ä»ãã§ç€ºã
ç¡äººãããã®ãé»ã£ã空æ¯ãããçºèŠããŠæ¢ããïŒåªçå蟌ã®èšèšïŒ
宿ãããããšã©ãŒãåºããªããŸãŸæ¯ååãä»äºãããçŽããŠããç¶æ ã®æ€åºæ³ã»å žåçãªçå ïŒå蟌æžã¿éåãå®äœã®åäžã«ã©ã ã§æã€ïŒã»å°åž³ã«ããä¿®æ£ã»æã¡åãä»ãå詊è¡ã»CI課éã§ã®å¹æå®æž¬ãŸã§ã
ç¡äººå®è¡ãžã§ãããåããã®ã«äœãæ®ããªãããæœ°ãèšèš
cron/ã¿ã¹ã¯ã¹ã±ãžã¥ãŒã©ããAIãšãŒãžã§ã³ããé·æéåŠçãç¡äººã§èµ°ãããéã®2å€§äºæ ïŒã¿ã€ã ã¢ãŠãkillã§åºåãäžžããšæ¶ããïŒå®è¡ãããã³ãŒãããã®ç¬éã®HEADã§æ±ºãŸãïŒãæ§é çã«æœ°ãå®è£ æç€ºæžã鿬¡é²æãã¡ã€ã«ã»åŸ æ©æéã®äžéã»äœææå»ããã®å®è¡ID埩å ã»åºå®worktreeãžã®pinã»å®èµ°åã ãã®åŸçä»ããŸã§ããã¹ã芳ç¹ãšå®äºæ¡ä»¶ä»ãã
ãããã€/UI倿Žãå¿ ã2段æ€èšŒããŠããå®äºå ±å
ã³ãŒãã»ãããã€ã»cronã»envã»UI倿ŽåŸã«ãããžãã¯å±€(NodeåçŸ)ãšãã©ãŠã¶å±€(Playwright)ã®2段ã§assertæ€èšŒããæ€èšŒæžã¿ã ããå®äºå ±åãããæé ããç»é¢ã§ç¢ºèªããŠãã®äžžæããçŠæ¢ã
ã¢ããªå ãã£ãŒãããã¯â責任è DMâIssueâèªåä¿®æ£PRâ1ã¿ããæ¿èª
瀟å ã¢ããªã®äžå ·åå ±åãã責任è ã®åå¥DMã«å±ããIssueã«ããŠå€éã«ä¿®æ£PRãŸã§èªåã§äœããæ¿èªã¯æ¢åã®PRç»é¢ã®Mergeãã¿ã³1ã¿ããã§æžãŸããèšèšãéç¥å ãäžç¶1ç®æã«éçŽããŠããŒã¯ã³æ¡æ£ãé²ããæ¢èªã¯éç¥ã®ãªã¢ã¯ã·ã§ã³ã§æã¡ãçµµæåã§èªåã®éç¥ãæŸãç¡éã«ãŒããæã€ã
é åžãã PowerShell ã€ã³ã¹ããŒã©ã CI ã§æ€æ»ããïŒPS5.1ã»BOM ã®çœ ïŒ
瀟å ã«1è¡ã³ãã³ãã§é ã .ps1 ããJSã®ãã¹ãç·ã®ãŸãŸæ§æãšã©ãŒã§å šPCãžå±ã穎ãå¡ããããŒã¹+BOMæ€æ»ã¹ã¯ãªãããšãwindows-latest ã®æ¢å® pwsh ã§ã¯æ€åºã§ããªãçç±ãæ éæ³šå ¥ã§ã®åãå ¥ã確èªãŸã§ã
ãã£ãš skipped ã ã£ã CI ãžã§ããæãèµ·ãããŠç·ã«ãã
CI ãé·æéèµ€ããš needs: ã®åŸæ®µãžã§ã㯠skipped ã®ãŸãŸæ¬ é¥ãé ãããéå»å®è¡ã®ç¢ºèªæ¹æ³ãããã±ãŒãžãããŒãžã£ã®äºéæå®ã»éçããªã¬ã³ããŒã® DB æ¥ç¶ã»Playwright ã® webServer æªèµ·åãšããå žå4段ããCI ããŒã«ã«åçŸã§åŸåŸ©ãæžãããªããé ã«æœ°ãæé æžã
CIããèªãã¹ããžpushãã飿ºããå±ããªãæ¥ãããartifactããã®pullã§åãã
èªå® /瀟å PCããã³ãã«å ¬éå ãžCIããPOSTãã飿ºãå°éã§ããèœã¡ãåé¡ããé éå ããartifactãåãã«è¡ãpullçµè·¯ã§åããæé ãçæãšé éã®åãåããå€å®è¡šã®èšèšãCIã®å®æé å»¶ã«ããäºéçæã®åé¿ãread-backãç£èŠææšã®ä»ãæ¿ããèšæž¬ããŒã«èªèº«ã®åœéœæ§ã®æœ°ãæ¹ãŸã§ã
ã¹ãã¬ããã·ãŒãéèšæ¥åãNext.js+Supabaseã¢ããªãžæ®µéç§»è¡ããèšèšæç€ºæž
éçšäžã®Sheetsæ¥åãæ¢ããã«Webã¢ããª(DBæ£)ãžæ®µéç§»è¡ãåæ¹ååæã®ãšã³ãŒã«ãŒãæ ¹çµ¶ã»ç§»è¡6ååã»ã³ãŒãå è¡/ã¹ããŒãåŸè¿œããªãªãŒã¹ã»ãã¬ãŒã¹ãã«ãåã®æ°Žå¢ã鲿¢ã»worktreeéé¢ãŸã§å®æŠç¥èŠãååã