Note
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãµã€ã³ã€ã³ãŸãã¯ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
ãã³ã
ãã®ã³ã³ãã³ãã¯ãAzure çšã®ã¯ã©ãŠã ãã€ãã£ã .NET ã¢ããªã±ãŒã·ã§ã³ã®èšèšã«é¢ããé»åããã¯ããã®æç²ã§ããã.NET Docs ãŸãã¯ãªãã©ã€ã³ã§èªã¿åãããšãã§ããç¡æã®ããŠã³ããŒãå¯èœãª PDF ãšããŠå ¥æã§ããŸãã
ãœãããŠã§ã¢ã³ã³ãµã«ã¿ã³ãã®ãæ°ã«å ¥ãã®ãã³ãã©ã¯ãã©ããªè³ªåã«ããäŸåããããšçããäºã§ãã ãœãããŠã§ã¢ã³ã³ãµã«ã¿ã³ããããžã·ã§ã³ãåããªãã®ã奜ãã ããã§ã¯ãããŸããã ãœãããŠã§ã¢ã«é¢ãã質åã«å¯Ÿããçã®çãã¯èª°ãããªãããã§ãã 絶察çãªæš©å©ãšééãã¯ãªãããããå察ã®ãã©ã³ã¹ããããŸãã
ããšãã°ãWeb ã¢ããªã±ãŒã·ã§ã³ãéçºãã 2 ã€ã®äž»èŠãªåŠæ ¡ã§ãããã·ã³ã°ã« ããŒãž ã¢ããªã±ãŒã·ã§ã³ (SPA) ãšãµãŒããŒåŽã¢ããªã±ãŒã·ã§ã³ã® 2 ã€ã®äž»èŠãªåŠæ ¡ãåããŸãã äžæ¹ã§ããŠãŒã¶ãŒ ãšã¯ã¹ããªãšã³ã¹ã¯ SPA ã®æ¹ãåªããåŸåããããWeb ãµãŒããŒãžã®ãã©ãã£ãã¯éãæå°éã«æããéçãã¹ãã£ã³ã°ã®ãããªåçŽãªãã¹ãã§ãã¹ãã§ããŸãã äžæ¹ãSPA ã®éçºãé ããªãããã¹ããå°é£ã«ãªãåŸåããããŸãã ã©ã¡ããé©åãªéžæã§ãã? ããŠãããã¯ããªãã®ç¶æ³ã«ãã£ãŠç°ãªããŸãã
ã¯ã©ãŠããã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ã¯ãåãäºåæ³ã«å¯ŸããŠå ç«ãæã£ãŠããŸããã éçºé床ãå®å®æ§ãã¹ã±ãŒã©ããªãã£ã®ç¹ã§æç¢ºãªå©ç¹ããããŸããã管çãéåžžã«å°é£ã«ãªãå¯èœæ§ããããŸãã
äœå¹Žãåã¯ãã¢ããªã±ãŒã·ã§ã³ãéçºããéçšã«ç§»è¡ããããã»ã¹ã 1 ãæä»¥äžãããã®ã¯çããããšã§ã¯ãããŸããã§ããã äŒæ¥ã¯ã6 ãæãŸãã¯æ¯å¹Žã®åšæã§ãœãããŠã§ã¢ããªãªãŒã¹ããŸããã Windows 10 ãžã®ç¶ç¶çãªã¢ããããŒããå§ãŸã以åã®ãªãªãŒã¹ã®åšæã«ã€ããŠã¯ãMicrosoft Windows ãèŠãã°ååçè§£ã§ããŸãã Windows XP ãš Vista ã®éã§ 5 幎ãçµéããVista ãš Windows 7 ã®éã§ããã« 3 幎ãçµéããŸããã
ãœãããŠã§ã¢ãè¿ éã«ãªãªãŒã¹ã§ããããšã¯ãæ¥éã«åãäŒæ¥ã«ãããããã±ã¢ãã®ãããªç«¶åä»ç€Ÿããã倧ããªåžå Žåªäœæ§ãäžãããšããããªããã確ç«ãããŠããŸãã ãã®ãããWindows 10 ã®äž»èŠãªæŽæ°ããã°ã©ã ã¯çŽ 6 ãæããšã«æŽæ°ãããŸãã
ããé«éã§ä¿¡é Œæ§ã®é«ããªãªãŒã¹ãå¯èœã«ããŠããžãã¹ã«äŸ¡å€ãæäŸãããã¿ãŒã³ãšãã©ã¯ãã£ã¹ã¯ãç·ç§°ã㊠DevOps ãšåŒã°ããŸãã ãããã¯ãã¢ããªã±ãŒã·ã§ã³ã®æå®ããããã®ã¢ããªã±ãŒã·ã§ã³ã®æäŸãšéçšãŸã§ããœãããŠã§ã¢éçºã©ã€ããµã€ã¯ã«å šäœã«ãããå¹ åºãã¢ã€ãã¢ã§æ§æãããŠããŸãã
DevOps ã¯ãã€ã¯ããµãŒãã¹ã®åã«åºçŸããDevOps ã䜿çšããªããšã1 ã€ã ãã§ãªããéçšç°å¢ã®å€ãã®ã¢ããªã±ãŒã·ã§ã³ã®ãªãªãŒã¹ãšéçšã容æã«ããããã«ãããå°ãããç®çã«åã£ããµãŒãã¹ãžã®ç§»è¡ãäžå¯èœã«ãªãå¯èœæ§ããããŸãã
å³ 10-1 - DevOps ãšãã€ã¯ããµãŒãã¹ã
åªãã DevOps ãã©ã¯ãã£ã¹ãéããŠãå®éã«ã¢ããªã±ãŒã·ã§ã³ãéçšããäœæ¥ã®å±±ã®äžã§æ¯ãã®ãããšãªããã¯ã©ãŠããã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ã®å©ç¹ãå®çŸã§ããŸãã
DevOps ã«é¢ããŠã¯ããŽãŒã«ãã³ ãã³ããŒã¯ãããŸããã 誰ãé«å質ã®ã¢ããªã±ãŒã·ã§ã³ããªãªãŒã¹ããŠéçšããããã®å®å šã§å æ¬çãªãœãªã¥ãŒã·ã§ã³ã販売ããããšã¯ã§ããŸããã ããã¯ãåã¢ããªã±ãŒã·ã§ã³ãä»ã®ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ãšå€§ããç°ãªãããã§ãã ãã®äžæ¹ã§ãDevOpsãããæ°è»œãªãã®ã«ããããŒã«ããããŸãã ãããã®ããŒã«ã® 1 ã€ã¯ Azure DevOps ãšåŒã°ããŸãã
Azure DevOps
Azure DevOps ã«ã¯é·ãè¡çµ±ããããŸãã ãã®èµ·æºã¯ãTeam Foundation Server ãæåã«ãªã³ã©ã€ã³ã«ç§»è¡ãããã®åŸãVisual Studio Online ã Visual Studio Team Services ãšããããŸããŸãªåå倿ŽãçµãŠãã©ãããšãã§ããŸãã ããããé·å¹Žã«ããããããã¯åä»»è ãããã¯ããã«å€ããªã£ãŠããŸãã
Azure DevOps ã¯ã次㮠5 ã€ã®äž»èŠãªã³ã³ããŒãã³ãã«åãããŠããŸãã
å³ 10-2 - Azure DevOpsã
Azure Repos - åŸæ¥ã® Team Foundation ããŒãžã§ã³ç®¡ç (TFVC) ãšæ¥çã§äººæ°ã®ãã Git ããµããŒããããœãŒã¹ ã³ãŒã管çã ãã«èŠæ±ã¯ã倿Žãè¡ããããšãã®ãã£ã¹ã«ãã·ã§ã³ãä¿é²ããããšã§ããœãŒã·ã£ã« ã³ãŒãã£ã³ã°ãæå¹ã«ããæ¹æ³ãæäŸããŸãã
Azure Boards - ãŠãŒã¶ãŒãæé©ã«åäœããã¯ãŒã¯ãããŒãéžæã§ããããã«åªããåé¡ãšäœæ¥é ç®è¿œè·¡ããŒã«ãæäŸããŸãã ããã¯ãéçºã®SCRUMãšããã°ãã¹ã¿ã€ã«ããµããŒããããã®ãå«ãäºåã«æ§æããããã³ãã¬ãŒãã®æ°ãä»å±ããŠããŸãã
Azure Pipelines - Azure ãšã®ç·å¯ãªçµ±åããµããŒããããã«ãããã³ãªãªãŒã¹ç®¡çã·ã¹ãã ã ãã«ãã¯ãWindows ãã LinuxãmacOS ãŸã§ãããŸããŸãªãã©ãããã©ãŒã ã§å®è¡ã§ããŸãã ãã«ã ãšãŒãžã§ã³ãã¯ãã¯ã©ãŠããŸãã¯ãªã³ãã¬ãã¹ã§ããããžã§ãã³ã°ã§ããŸãã
Azure Test Plans - ãã¹ãèšç»æ©èœã«ãã£ãŠæäŸããããã¹ã管çãšæ¢çŽ¢çãã¹ãã®ãµããŒãã«ãã£ãŠãQA æ åœè ã¯åãæ®ãããŸããã
Azure Artifacts - äŒæ¥ãç¬èªã®å éšããŒãžã§ã³ã® NuGetãnpm ãªã©ãäœæã§ããããã«ããã¢ãŒãã£ãã¡ã¯ã ãã£ãŒãã ããã¯ãäžå åããããªããžããªã®é害ãçºçããå Žåã«ã¢ããã¹ããªãŒã ããã±ãŒãžã®ãã£ãã·ã¥ãšããŠæ©èœããäºéã®ç®çãæãããŸãã
Azure DevOps ã®æäžäœã®çµç¹åäœã¯ããããžã§ã¯ããšåŒã°ããŸãã åãããžã§ã¯ãå ã§ãAzure Artifacts ãªã©ã®ããŸããŸãªã³ã³ããŒãã³ãã®ãªã³ãšãªããåãæ¿ããããšãã§ããŸãã ãããã®åã³ã³ããŒãã³ãã¯ãã¯ã©ãŠããã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ã«å¯ŸããŠç°ãªãå©ç¹ãæäŸããŸãã æã䟿å©ãª 3 ã€ã®æ¹æ³ã¯ããªããžããªãããŒãããã€ãã©ã€ã³ã§ãã ãŠãŒã¶ãŒã GitHub ãªã©ã®å¥ã®ãªããžã㪠ã¹ã¿ãã¯ã§ãœãŒã¹ ã³ãŒãã管çãããããããã§ã Azure Pipelines ããã®ä»ã®ã³ã³ããŒãã³ããå©çšãããå Žåã¯ãããã¯å®å šã«å¯èœã§ãã
ãããããéçºããŒã ã«ã¯ãªããžããªãéžæããéã«å€ãã®ãªãã·ã§ã³ããããŸãã ãã®ãã¡ã® 1 ã€ã GitHub ã§ãã
GitHub ã®ã¢ã¯ã·ã§ã³
2009 幎ã«èšç«ããã GitHub ã¯ããããžã§ã¯ããããã¥ã¡ã³ããã³ãŒãããã¹ãããããã®åºãæ®åããŠãã Web ããŒã¹ã®ãªããžããªã§ãã AppleãAmazonãGoogleãã¡ã€ã³ã¹ããªãŒã äŒæ¥ãªã©ãå€ãã®å€§äŒæ¥ã GitHub ã䜿çšããŠããŸãã GitHub ã§ã¯ãGit ãšããååã®ãªãŒãã³ ãœãŒã¹ã®åæ£ããŒãžã§ã³ç®¡çã·ã¹ãã ãåºç€ãšããŠäœ¿çšããŸãã ããã«ãæ¬ é¥è¿œè·¡ãæ©èœãšãã«èŠæ±ãã¿ã¹ã¯ç®¡çãåã³ãŒã ããŒã¹ã® Wiki ãªã©ãç¬èªã®æ©èœã»ããã远å ããŸãã
GitHub ãé²åããã«ã€ããŠãDevOps æ©èœã远å ãããŸãã ããšãã°ãGitHub ã«ã¯ã GitHub ActionsãšåŒã°ããç¬èªã®ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³/ç¶ç¶çããªããªãŒ (CI/CD) ãã€ãã©ã€ã³ããããŸãã GitHub Actions ã¯ãã³ãã¥ããã£ãå©çšããã¯ãŒã¯ãããŒèªååããŒã«ã§ãã ããã«ãããDevOps ããŒã ã¯æ¢åã®ããŒã«ãšçµ±åããæ°è£œåãçµã¿åãããæ¢åã® CI/CD ããŒãããŒãå«ããœãããŠã§ã¢ ã©ã€ããµã€ã¯ã«ã«ããã¯ã§ããŸãã
GitHub ã«ã¯ 4,000 äžäººãè¶ ãããŠãŒã¶ãŒãããŠãäžçæå€§ã®ãœãŒã¹ ã³ãŒã ãã¹ããšãªã£ãŠããŸãã 2018 幎 10 æãMicrosoft 㯠GitHub ãè³Œå ¥ããŸããã Microsoft ã¯ãGitHub ã¯ãéçºè ããã©ã°ã€ã³ããŠæ¡åŒµã§ãã ãªãŒãã³ ãã©ãããã©ãŒã ã§ããç¶ããããšãçŽæããŠããŸãã ç¬ç«äŒæ¥ãšããŠæŽ»åãç¶ããã GitHub ã«ã¯ããšã³ã¿ãŒãã©ã€ãº ã¢ã«ãŠã³ããããŒã ã¢ã«ãŠã³ãããããã§ãã·ã§ãã« ã¢ã«ãŠã³ããç¡æã¢ã«ãŠã³ãã®ãã©ã³ãçšæãããŠããŸãã
ãœãŒã¹ç®¡ç
ã¯ã©ãŠããã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒããæŽçããã®ã¯å°é£ãªå ŽåããããŸãã ã¯ã©ãŠããã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ã¯ãåäžã®å·šå€§ãªã¢ããªã±ãŒã·ã§ã³ã§ã¯ãªããäºãã«éä¿¡ããå°èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ã® Web ã§æ§æãããåŸåããããŸãã ã³ã³ãã¥ãŒãã£ã³ã°ã®ãã¹ãŠã®ããšãšåæ§ã«ãã³ãŒãã®æé©ãªé çœ®ã¯æªè§£æ±ºã®è³ªåã®ãŸãŸã§ãã ããŸããŸãªçš®é¡ã®ã¬ã€ã¢ãŠãã䜿çšããæåããã¢ããªã±ãŒã·ã§ã³ã®äŸããããŸããã2 ã€ã®ããªãšãŒã·ã§ã³ãæã人æ°ãããããã§ãã
å®éã®ãœãŒã¹ç®¡çèªäœã«å ¥ãåã«ãé©åãªãããžã§ã¯ãã®æ°ã決å®ããå¿ èŠããããŸãã 1 ã€ã®ãããžã§ã¯ãå ã«ã¯ãè€æ°ã®ãªããžããªãšãã«ã ãã€ãã©ã€ã³ããµããŒããããŠããŸãã ããŒãã¯ããå°ãè€éã§ããã1 ã€ã®ãããžã§ã¯ãå ã®è€æ°ã®ããŒã ã«ã¿ã¹ã¯ãç°¡åã«å²ãåœãŠãããšãã§ããŸãã 1 ã€ã® Azure DevOps ãããžã§ã¯ãããæ°çŸãæ°å人ã®éçºè ããµããŒãã§ããŸãã ããã¯ããã¹ãŠã®éçºè ãäœæ¥ã§ãã 1 ã€ã®å ŽæãæäŸããéçºè ãååšãããããžã§ã¯ããããããªãå Žåã« 1 ã€ã®ã¢ããªã±ãŒã·ã§ã³ãèŠã€ãããšããæ··ä¹±ã軜æžãããããæè¯ã®ã¢ãããŒãã§ããå¯èœæ§ããããŸãã
Azure DevOps ãããžã§ã¯ãå ã§ãã€ã¯ããµãŒãã¹ã®ã³ãŒããåå²ããããšã¯ãå°ãé£ããå ŽåããããŸãã
å³ 10-3 - äžã€ã®ãªããžããªãšå€æ°ã®ãªããžããªã
ãã€ã¯ããµãŒãã¹ããšã®ãªããžããª
äžèŠãããšããã®ã¢ãããŒãã¯ããã€ã¯ããµãŒãã¹ã®ãœãŒã¹ ã³ãŒããåå²ããããã®æãè«ççãªã¢ãããŒããšæãããŸãã åãªããžããªã«ã¯ã1 ã€ã®ãã€ã¯ããµãŒãã¹ãæ§ç¯ããããã«å¿ èŠãªã³ãŒããå«ããããšãã§ããŸãã ãã®ã¢ãããŒãã®å©ç¹ã¯ãããã«ç¢ºèªã§ããŸãã
- ã¢ããªã±ãŒã·ã§ã³ã®ãã«ããšä¿å®ã®æé ã¯ãåãªããžããªã®ã«ãŒãã«ãã README ãã¡ã€ã«ã«è¿œå ã§ããŸãã ãªããžããªãå転ãããšããããã®æé ãç°¡åã«èŠã€ããéçºè ã®ã¹ãã³ã¢ããæéãççž®ã§ããŸãã
- ãã¹ãŠã®ãµãŒãã¹ã¯è«ççãªå Žæã«ããããµãŒãã¹ã®ååãç¥ãããšã§ç°¡åã«èŠã€ããããšãã§ããŸãã
- ãã«ãã¯ãææãããªããžããªã«å€æŽãå ãããããšãã«ã®ã¿ããªã¬ãŒãããããã«ç°¡åã«èšå®ã§ããŸãã
- ãªããžããªã«å ãã倿Žã®æ°ã¯ããããžã§ã¯ãã«åãçµãã§ããå°æ°ã®éçºè ã«å¶éãããŸãã
- éçºè ãèªã¿åããšæžã蟌ã¿ã®ã¢ã¯ã»ã¹èš±å¯ãæã€ãªããžããªãå¶éããããšã§ãã»ãã¥ãªãã£ãç°¡åã«èšå®ã§ããŸãã
- ãªããžã㪠ã¬ãã«ã®èšå®ã¯ãææããŒã ãä»ã®ã¡ã³ããŒãšæäœéã®è©±ãåãã§å€æŽã§ããŸãã
ãã€ã¯ããµãŒãã¹ã®èåŸã«ããéèŠãªèãæ¹ã® 1 ã€ã¯ããµãŒãã¹ããµã€ãåããäºãã«åé¢ããå¿ èŠããããšããããšã§ãã ãã¡ã€ã³ é§åèšèšã䜿çšããŠãµãŒãã¹ã®å¢çãæ±ºå®ããå ŽåããµãŒãã¹ã¯ãã©ã³ã¶ã¯ã·ã§ã³å¢çãšããŠæ©èœããŸãã ããŒã¿ããŒã¹ã®æŽæ°ã¯ãè€æ°ã®ãµãŒãã¹ã«ãŸãããã¹ãã§ã¯ãããŸããã ãã®é¢é£ããŒã¿ã®ã³ã¬ã¯ã·ã§ã³ã¯ãå¢çä»ãã³ã³ããã¹ããšåŒã°ããŸãã ãã®ã¢ã€ãã¢ã¯ããµãŒãã¹ã®æ®ãã®éšåãšã¯å¥ã®èªåŸçãªããŒã¿ããŒã¹ãžã®ãã€ã¯ããµãŒãã¹ ããŒã¿ã®åé¢ã«ãã£ãŠåæ ãããŸãã ãã®ã¢ã€ãã¢ããœãŒã¹ ã³ãŒãã«è³ãæãŸã§äŒéããããšã¯éåžžã«çã«ããªã£ãŠããŸãã
ãã ãããã®æ¹æ³ã«ã¯åé¡ã¯ãããŸããã ç§ãã¡ã®æä»£ã®ãããããããããéçºã®åé¡ã®1ã€ã¯ãäŸåé¢ä¿ã®ç®¡çã§ãã å¹³å node_modules ãã£ã¬ã¯ããªãæ§æãããã¡ã€ã«ã®æ°ãæ€èšããŠãã ããã
create-react-appã®ãããªãã®ãæ°ããã€ã³ã¹ããŒã«ãããšãäœåãã®ããã±ãŒãžãä»å±ããå¯èœæ§ããããŸãã ãããã®äŸåé¢ä¿ã管çããæ¹æ³ã®åé¡ã¯é£ããåé¡ã§ãã
äŸåé¢ä¿ãæŽæ°ãããå ŽåãããŠã³ã¹ããªãŒã ããã±ãŒãžã§ããã®äŸåé¢ä¿ãæŽæ°ããå¿
èŠããããŸãã æ®å¿µãªãããéçºäœæ¥ãå¿
èŠãªã®ã§ãå¿
ãã node_modules ãã£ã¬ã¯ããªã¯ 1 ã€ã®ããã±ãŒãžã®è€æ°ã®ããŒãžã§ã³ã§çµããããããããå°ãç°ãªãåšæã§ããŒãžã§ã³ç®¡çãããŠããä»ã®ããã±ãŒãžã®äŸåé¢ä¿ã«ãªããŸãã ã¢ããªã±ãŒã·ã§ã³ããããã€ãããšãã¯ãã©ã®ããŒãžã§ã³ã®äŸåé¢ä¿ã䜿çšããå¿
èŠããããŸãã? çŸåšéçšç°å¢ã«ããããŒãžã§ã³ã¯? çŸåšããŒã¿çã§ãããã³ã³ã·ã¥ãŒããŒãéçšç°å¢ã«ç§»è¡ããæç¹ãŸã§ã«éçšç°å¢ã«ååšããå¯èœæ§ãé«ãããŒãžã§ã³ã ãã€ã¯ããµãŒãã¹ã䜿çšããã ãã§ã¯è§£æ±ºãããªãå°é£ãªåé¡ã
ããŸããŸãªãããžã§ã¯ãã«äŸåããã©ã€ãã©ãªããããŸãã ãã€ã¯ããµãŒãã¹ãåãªããžããªã® 1 ã€ã«åå²ããããšã§ãå éšãªããžããªã§ãã Azure Artifacts ã䜿çšããŠå éšäŸåé¢ä¿ã解決ããã®ãæé©ã§ãã ã©ã€ãã©ãªçšã®ãã«ãã§ã¯ãå éšäœ¿çšã®ããã«ææ°ããŒãžã§ã³ã Azure Artifacts ã«ããã·ã¥ãããŸãã æ°ããæŽæ°ãããããã±ãŒãžãžã®äŸåé¢ä¿ãååŸããã«ã¯ãããŠã³ã¹ããªãŒã ãããžã§ã¯ããæåã§æŽæ°ããå¿ èŠããããŸãã
ãµãŒãã¹éã§ã³ãŒããç§»åããå Žåããã 1 ã€ã®æ¬ ç¹ããããŸãã ãã€ã¯ããµãŒãã¹ãžã®ã¢ããªã±ãŒã·ã§ã³ã®æåã®åå²ã 100% æ£ãããšä¿¡ããã®ã¯è¯ãã§ããããããµãŒãã¹åå²ã®ééããç¯ããªãã»ã©åªããŠããã®ã¯ãã£ãã«ãããŸããã ãããã£ãŠãæ©èœãšãããé§åããã³ãŒãã¯ããµãŒãã¹ãããµãŒãã¹ã«ç§»åããå¿ èŠããããŸã: ãªããžããªãããªããžããªã«ã ãããªããžããªããå¥ã®ãªããžããªã«ãžã£ã³ããããšãã³ãŒãã®å±¥æŽã倱ãããŸãã å€ãã®å Žå(ç¹ã«ç£æ»ã®å Žå)ãã³ãŒãã®å®å šãªå±¥æŽãæã€ããšã¯éåžžã«è²Žéã§ãã
æçµçãã€æãéèŠãªæ¬ ç¹ã¯ã倿Žã®èª¿æŽã§ãã çã®ãã€ã¯ããµãŒãã¹ ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããµãŒãã¹éã«ãããã€ã®äŸåé¢ä¿ããªãã¯ãã§ãã ççµåãããããããµãŒãã¹ AãBãC ãä»»æã®é åºã§ãããã€ã§ããå¿ èŠããããŸãã ãã ããå®éã«ã¯ãè€æ°ã®ãªããžããªãåæã«ãŸããã倿Žãè¡ãã®ãæãŸããå ŽåããããŸãã ããšãã°ãã©ã€ãã©ãªãæŽæ°ããŠã»ãã¥ãªã㣠ããŒã«ãéãããããã¹ãŠã®ãµãŒãã¹ã§äœ¿çšãããéä¿¡ãããã³ã«ã倿Žãããã§ããŸãã
ã¯ãã¹ãªããžããªã®å€æŽãè¡ãã«ã¯ãåãªããžããªãžã®ã³ããããé£ç¶ããŠè¡ãå¿ èŠããããŸãã åãªããžããªã®å倿Žã¯ããã«èŠæ±ãšã¬ãã¥ãŒãåå¥ã«è¡ãå¿ èŠããããŸãã ãã®ã¢ã¯ãã£ããã£ã®èª¿æŽãå°é£ãªå ŽåããããŸãã
å€ãã®ãªããžããªã䜿çšãã代ããã«ããã¹ãŠã®ãœãŒã¹ ã³ãŒãã巚倧ãªåäžã®ãªããžããªã«ãŸãšããæ¹æ³ããããŸãã
åäžãªããžããª
ãã®ã¢ãããŒãã§ã¯ã monorepository ãšãåŒã°ãããã¹ãŠã®ãµãŒãã¹ã®ãã¹ãŠã®ãœãŒã¹ ã³ãŒããåããªããžããªã«é 眮ãããŸãã æåã¯ããã®ã¢ãããŒãã¯ãœãŒã¹ ã³ãŒããæ±ãã«ããããæãããèãã®ããã§ãã ãã ãããã®æ¹æ³ã§äœæ¥ããå©ç¹ã¯é¡èã§ãã
1 ã€ç®ã®å©ç¹ã¯ããããžã§ã¯ãéã®äŸåé¢ä¿ãããç°¡åã«ç®¡çã§ããç¹ã§ãã å€éšææç©ãã£ãŒãã«äŸåãã代ããã«ããããžã§ã¯ãã¯äºãã«çŽæ¥ã€ã³ããŒãã§ããŸãã ã€ãŸããæŽæ°ãããã«è¡ãããç«¶åããããŒãžã§ã³ãéçºè ã®ã¯ãŒã¯ã¹ããŒã·ã§ã³ã§ã³ã³ãã€ã«æã«èŠã€ããå¯èœæ§ãé«ããªããŸãã å®éã«ã¯ãçµ±åãã¹ãã®äžéšãå·Šã«ã·ããããŸãã
ãããžã§ã¯ãéã§ã³ãŒããç§»åãããšãã«ããã¡ã€ã«ãæžãæããããã®ã§ã¯ãªãç§»åãããããšãæ€åºããããããå±¥æŽãä¿æããæ¹ãç°¡åã«ãªããŸããã
ãã 1 ã€ã®å©ç¹ã¯ããµãŒãã¹å¢çãè¶ããåºç¯ãªå€æŽã 1 åã®ã³ãããã§è¡ãããšãã§ãããšããããšã§ãã ãã®ã¢ã¯ãã£ããã£ã«ãããåå¥ã«ç¢ºèªããããã«æ°åã®å€æŽãå ããå¯èœæ§ããããªãŒããŒããããåæžãããŸãã
å®å šã§ãªãããã°ã©ãã³ã°ãã©ã¯ãã£ã¹ã API ã®åé¡ã®ãã䜿çšãæ€åºããããã«ãã³ãŒãã®éçåæãå®è¡ã§ããããŒã«ã¯å€æ°ãããŸãã ãã«ããªããžããªã®äžçã§ã¯ãåãªããžããªãå埩åŠçããŠåé¡ãèŠã€ããå¿ èŠããããŸãã 1 ã€ã®ãªããžããªã䜿çšãããšããã¹ãŠã®åæã 1 ãæã§å®è¡ã§ããŸãã
ãŸããåäžãªããžããªã¢ãããŒãã«ã¯å€ãã®æ¬ ç¹ããããŸãã æãå¿é ãªç¹ã® 1 ã€ã¯ãåäžã®ãªããžããªãæã€ããšã§ã»ãã¥ãªãã£äžã®åé¡ãçºçãããšããããšã§ãã ãµãŒãã¹ ã¢ãã«ããšã«ãªããžããªå ã®ãªããžããªã®å 容ããªãŒã¯ãããå Žåã倱ãããã³ãŒãã®éã¯æå°éã§ãã 1 ã€ã®ãªããžããªã䜿çšãããšãäŒç€Ÿãææãããã¹ãŠã®ãã®ã倱ãããå¯èœæ§ããããŸãã éå»ã«ã¯å€ãã®äŸããããã²ãŒã éçºã®åãçµã¿å šäœãè±ç·ããŠããŸãã è€æ°ã®ãªããžããªã䜿çšãããšãããå°ãªãé åãå ¬éãããŸããããã¯ãã»ãšãã©ã®ã»ãã¥ãªã㣠ãã©ã¯ãã£ã¹ã§æãŸããç¹æ§ã§ãã
åäžãªããžããªã®ãµã€ãºã¯ãæ¥éã«ç®¡çäžèœã«ãªãå¯èœæ§ããããŸãã ããã¯ãããã€ãã®è峿·±ãããã©ãŒãã³ã¹ãžã®åœ±é¿ã瀺ããŸãã ããšããš Windows ããŒã ã®éçºè ã®ãšã¯ã¹ããªãšã³ã¹ãåäžãããããã«èšèšããã ãGit çšã®ä»®æ³ãã¡ã€ã« ã·ã¹ãã ãªã©ã®ç¹æ®ãªããŒã«ã䜿çšããããšãå¿ èŠã«ãªãå ŽåããããŸãã
1 ã€ã®ãªããžããªã䜿çšããããã®åŒæ°ã¯ãFacebook ãŸã㯠Google ããœãŒã¹ ã³ãŒãã®é 眮ã«ãã®ã¡ãœããã䜿çšããåŒæ°ã«åããããŸãã ãããã®äŒæ¥ã«ãšã£ãŠååãªã¢ãããŒãã§ããã°ãããã¯ãã¹ãŠã®äŒæ¥ã«ãšã£ãŠæ£ããã¢ãããŒãã§ãã åé¡ã®çå®ã¯ãå°æ°ã®äŒæ¥ãFacebookãGoogleã®èŠæš¡ã®ãããªãã®ãéå¶ããŠãããšããããšã§ãã ãããã®ã¹ã±ãŒã«ã§çºçããåé¡ã¯ãã»ãšãã©ã®éçºè ãçŽé¢ããåé¡ãšã¯ç°ãªããŸãã 鎚ã«è¯ãããšãéã«ãšã£ãŠå¿ ãããè¯ããšã¯éããŸããã
æçµçã«ã¯ãã©ã¡ãã®ãœãªã¥ãŒã·ã§ã³ããã€ã¯ããµãŒãã¹ã®ãœãŒã¹ ã³ãŒãããã¹ãããããã«äœ¿çšã§ããŸãã ãã ããã»ãšãã©ã®å Žåã1 ã€ã®ãªããžããªã§éçšããå Žåã®ç®¡çãšãšã³ãžãã¢ãªã³ã°ã®ãªãŒããŒãããã¯ã倧ããªå©ç¹ã§ã¯ãããŸããã è€æ°ã®ãªããžããªã«ã³ãŒããåå²ãããšãæžå¿µäºé ã®åé¢ãåäžããéçºããŒã éã®èªåŸæ§ãä¿é²ãããŸãã
æšæºãã£ã¬ã¯ããªæ§é
1 ã€ã®ãªããžããªãšè€æ°ã®ãªããžããªã«é¢ä¿ãªããåãµãŒãã¹ã«ã¯ç¬èªã®ãã£ã¬ã¯ããªããããŸãã éçºè ããããžã§ã¯ãéããã°ããã¯ãã¹ã§ããããã«ããæé©ãªæé©åã® 1 ã€ã¯ãæšæºã®ãã£ã¬ã¯ããªæ§é ãç¶æããããšã§ãã
å³ 10-4 - æšæºãã£ã¬ã¯ããªæ§é ã
æ°ãããããžã§ã¯ããäœæããããã³ã«ãé©åãªæ§é ãé
眮ãããã³ãã¬ãŒãã䜿çšããå¿
èŠããããŸãã ãã®ãã³ãã¬ãŒãã«ã¯ãã¹ã±ã«ãã³ README ãã¡ã€ã«ã azure-pipelines.ymlãªã©ã®äŸ¿å©ãªé
ç®ãå«ããããšãã§ããŸãã ã©ã®ãã€ã¯ããµãŒãã¹ ã¢ãŒããã¯ãã£ã§ãããããžã§ã¯ãéã®åæ£åºŠãé«ãããããµãŒãã¹ã«å¯Ÿããäžæ¬æäœãããå°é£ã«ãªããŸãã
è€æ°ã®ãœãŒã¹ ã³ãŒã ãã£ã¬ã¯ããªãå«ããã£ã¬ã¯ããªå šäœã«ãã³ãã¬ãŒããæäŸã§ããããŒã«ã¯å€æ°ãããŸãã Yeoman 㯠JavaScript ã®äžçã§äººæ°ããããGitHub ã¯æè¿ãåãæ©èœã®å€ããæäŸãã ãªããžã㪠ãã³ãã¬ãŒãããªãªãŒã¹ããŸããã
ã¿ã¹ã¯ç®¡ç
ä»»æã®ãããžã§ã¯ãã§ã¿ã¹ã¯ã管çããããšã¯å°é£ãªå ŽåããããŸãã éçºè ã®çç£æ§ãæå€§éã«é«ããããã«èšå®ããã¯ãŒã¯ãããŒã®çš®é¡ã«ã€ããŠã¯ãåãã£ãŠç¡æ°ã®è³ªåã«çããå¿ èŠããããŸãã
ã¯ã©ãŠããã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ã¯ãåŸæ¥ã®ãœãããŠã§ã¢è£œåãããå°ããããå°ãªããšãå°èŠæš¡ãªãµãŒãã¹ã«åå²ãããåŸåããããŸãã ãããã®ãµãŒãã¹ã«é¢é£ããåé¡ãã¿ã¹ã¯ã®è¿œè·¡ã¯ãä»ã®ãœãããŠã§ã¢ ãããžã§ã¯ããšåããããéèŠã§ãã 誰ãäœæ¥é ç®ã®è¿œè·¡ã倱ã£ãããåé¡ãæ£ãããã°ã«èšé²ãããªãã£ãããšã顧客ã«èª¬æãããããããšãæãã§ããŸããã ããŒãã¯ãããžã§ã¯ã ã¬ãã«ã§æ§æãããŸãããåãããžã§ã¯ãå ã§é åãå®çŸ©ã§ããŸãã ããã«ãããè€æ°ã®ã³ã³ããŒãã³ãéã§åé¡ãåè§£ã§ããŸãã ã¢ããªã±ãŒã·ã§ã³å šäœã®ãã¹ãŠã®äœæ¥ã 1 ãæã«ä¿æããå©ç¹ã¯ãäœæ¥é ç®ãããŒã éã§ç°¡åã«ç§»åã§ããç¹ã§ãã
Azure DevOps ã«ã¯ãäºåã«æ§æããã倿°ã®äžè¬çãªãã³ãã¬ãŒããä»å±ããŠããŸãã æãåºæ¬çãªæ§æã§ã¯ãç¥ãå¿
èŠãããã®ãããã¯ãã°ã®å
容ããŠãŒã¶ãŒã®äœæ¥å
容ãå®è¡å
容ã§ãã äœæ¥ãåªå
ããŠå®äºããã¿ã¹ã¯ã顧客ã«å ±åã§ããããã«ããœãããŠã§ã¢ã®æ§ç¯ããã»ã¹ããã®å¯èŠæ§ã§ææ¡ããããšãéèŠã§ãã ãã¡ããã to doã doingã doneãªã©ã®åçŽãªããã»ã¹ã«é¢ãããœãããŠã§ã¢ ãããžã§ã¯ãã¯ã»ãšãã©ãããŸããã ãŠãŒã¶ãŒãããã»ã¹ã« QA ã Detailed Specification ãªã©ã®æé ã远å ãå§ããã®ã«æéã¯ããããŸããã
ã¢ãžã£ã€ã«ææ³ã®æãéèŠãªéšåã® 1 ã€ã¯ã宿çãªèªå·±ç޹ä»ã§ãã ãããã®ã¬ãã¥ãŒã¯ãããŒã ãçŽé¢ããŠããåé¡ãšãã®æ¹åæ¹æ³ã«é¢ããåææ å ±ãæäŸããããã®ãã®ã§ãã ããã¯ãå€ãã®å Žåãéçºããã»ã¹ãéããŠåé¡ãšæ©èœã®ãããŒã倿Žããããšã§ãã ãã®ããã远å ã®ã¹ããŒãžã§ããŒãã®ã¬ã€ã¢ãŠããæ¡åŒµããããšã¯å®å šã«æ£åžžã§ãã
ããŒãå ã®ã¹ããŒãžã¯ãçµç¹ã®ããŒã«ã ãã§ã¯ãããŸããã ããŒãã®æ§æã«ãã£ãŠã¯ãäœæ¥é ç®ã®éå±€ããããŸãã ããŒãã«è¡šç€ºã§ããæã现ããé ç®ã¯ã¿ã¹ã¯ã§ãã æ¢å®ã§ã¯ãã¿ã¹ã¯ã«ã¯ãã¿ã€ãã«ã説æãåªå åºŠãæ®åäœæ¥æéã®èŠç©ãããä»ã®äœæ¥é ç®ãŸãã¯éçºé ç® (ãã©ã³ããã³ãããããã«èŠæ±ããã«ããªã©) ã«ãªã³ã¯ããæ©èœã®ãã£ãŒã«ããå«ãŸããŠããŸãã äœæ¥é ç®ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããŸããŸãªé åãšããŸããŸãªã€ãã¬ãŒã·ã§ã³ (ã¹ããªã³ã) ã«åé¡ããŠãèŠã€ããããããããšãã§ããŸãã
å³ 10-5 - Azure DevOps ã®ã¿ã¹ã¯ã
説æãã£ãŒã«ãã¯ãæåŸ ãããéåžžã®ã¹ã¿ã€ã« (倪åãæäœãåãæ¶ãç·) ãšç»åãæ¿å ¥ããæ©èœããµããŒãããŠããŸãã ããã«ãããäœæ¥ããã°ãæå®ãããšãã«äœ¿çšããããã®åŒ·åãªããŒã«ã«ãªããŸãã
ã¿ã¹ã¯ã¯ããã倧ããªäœæ¥åäœãå®çŸ©ããæ©èœã«ããŒã«ã¢ããã§ããŸãã æ¬¡ã«ãæ©èœã ãšããã¯ã«ããŒã«ã¢ããã§ããŸãã ãã®éå±€å ã®ã¿ã¹ã¯ãåé¡ãããšãå€§èŠæš¡ãªæ©èœãããŒã«ã¢ãŠãã«ã©ãã ãè¿ãããçè§£ãããããªããŸãã
å³ 10-6 - Azure DevOps ã®äœæ¥é ç®ã
Azure Boards ã«ã¯ãåé¡ã®ããŸããŸãªçš®é¡ã®ãã¥ãŒããããŸãã ãŸã ã¹ã±ãžã¥ãŒã«ãããŠããªãé ç®ã¯ãããã¯ãã°ã«è¡šç€ºãããŸãã ãããããã¹ããªã³ãã«å²ãåœãŠãããšãã§ããŸãã ã¹ããªã³ãã¯ãããçšåºŠã®äœæ¥ãå®äºããããšãäºæ³ãããã¿ã€ã ããã¯ã¹ã§ãã ãã®äœæ¥ã«ã¯ãã¿ã¹ã¯ã ãã§ãªãããã±ããã®è§£æ±ºãå«ããããšãã§ããŸãã ãã®åŸãã¹ããªã³ãããŒãã»ã¯ã·ã§ã³ããã¹ããªã³ãå šäœã管çã§ããŸãã ãã®ãã¥ãŒã¯ãäœæ¥ã®é²è¡ç¶æ³ã瀺ããã¹ããªã³ããæåãããã©ãããåžžã«æŽæ°ããèŠç©ãããæäŸããããŒã³ããŠã³ ãã£ãŒããå«ãŸããŠããŸãã
å³ 10-7 - Azure DevOps ã®ããŒãã
çŸæç¹ã§ã¯ãAzure DevOps ã® Boards ã«å€§ããªåãããããšã¯æããã§ãã éçºè ã«ãšã£ãŠã¯ãäœãäœæ¥ãããŠããããç°¡åã«ç¢ºèªã§ããŸãã ãããžã§ã¯ã ãããŒãžã£ãŒã®å Žåã¯ãä»åŸã®äœæ¥ã«é¢ãããã¥ãŒãšãæ¢åã®äœæ¥ã®æŠèŠã衚瀺ãããŸãã ãããŒãžã£ãŒã«ã¯ããªãœãŒã¹ãšå®¹éã«é¢ããã¬ããŒãã倿°ãããŸãã æ®å¿µãªãããäœæ¥ã远跡ããå¿ èŠã®ãªãã¯ã©ãŠããã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ã«é¢ããéæ³ã¯äœããããŸããã ãã ããäœæ¥ã远跡ããå¿ èŠãããå Žåã¯ãAzure DevOps ããããšã¯ã¹ããªãšã³ã¹ãåªããŠããå Žæãããã€ããããŸãã
CI/CD ãã€ãã©ã€ã³
ãœãããŠã§ã¢éçºã©ã€ããµã€ã¯ã«ã®å€åã®äžã§ãç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³(CI)ãšç¶ç¶çããªããªãŒ(CD)ã®ç»å Žã»ã©é©åœçãªãã®ã¯ã»ãšãã©ãããŸããã§ããã 倿Žããã§ãã¯ã€ã³ããããšããã«ããããžã§ã¯ãã®ãœãŒã¹ ã³ãŒãã«å¯ŸããŠèªåãã¹ãããã«ãããŠå®è¡ãããšãæ©ã段éã§ééãããã£ãããããŸãã ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ ãã«ããç»å Žããåã¯ããªããžããªããã³ãŒãããã«ããŠããã¹ãã«åæ Œããªãã£ããããã«ãã§ããªãã£ããããããšãçãããããŸããã ãã®çµæãç Žæã®åå ã远跡ããŸããã
åŸæ¥ãéçšç°å¢ã«ãœãããŠã§ã¢ãåºè·ããã«ã¯ãåºç¯ãªããã¥ã¡ã³ããšæé ã®äžèЧãå¿ èŠã§ãã ãããã®åæé ã¯ãéåžžã«ãšã©ãŒãçºçããããããã»ã¹ã§æåã§å®äºããå¿ èŠããããŸãã
å³ 10-8 - ãã§ãã¯ãªã¹ãã
ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ã®å§åйã¯ãæ°ããæ§ç¯ãããããã±ãŒãžãç°å¢ã«ãããã€ããç¶ç¶çããªããªãŒã§ãã æåããã»ã¹ã¯éçºé床ã«åãããŠã¹ã±ãŒãªã³ã°ã§ããªããããèªååãããéèŠã«ãªããŸãã ãã§ãã¯ãªã¹ãã¯ãã©ã®äººéãããéãæ£ç¢ºã«åãã¿ã¹ã¯ãå®è¡ã§ããã¹ã¯ãªããã«çœ®ãæããããŸãã
ç¶ç¶çããªããªãŒãæäŸãããç°å¢ã¯ããã¹ãç°å¢ã§ããããå€ãã®äž»èŠãªãã¯ãããžäŒæ¥ã«ãã£ãŠè¡ãããŠããããã«ãéçšç°å¢ã§ããå¯èœæ§ããããŸãã åŸè ã§ã¯ã倿ŽããŠãŒã¶ãŒã®éçšç°å¢ãæãªããªããšãã確信ãäžããããšãã§ããé«å質ã®ãã¹ããžã®æè³ãå¿ èŠã§ãã ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãã³ãŒãã®æ©æç¶ç¶çããªããªãŒã§åé¡ããã£ããããã®ãšåãæ¹æ³ã§ãããã〠ããã»ã¹ã®åé¡ãæ©æã«ãã£ããããŸãã
ãã«ããšé ä¿¡ããã»ã¹ãèªååããããšã®éèŠæ§ã¯ãã¯ã©ãŠããã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠåŒ·èª¿ãããŠããŸãã ãããã€ãããé »ç¹ã«ããã€ããå€ãã®ç°å¢ã«å¯ŸããŠè¡ããããããæåã§ã®ãããã€ã¯ã»ãšãã©äžå¯èœã«ãªãã€ã€ãããŸãã
Azure ãã«ã
Azure DevOps ã«ã¯ãç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãšãããã€ããããŸã§ä»¥äžã«ç°¡åã«ããããã®äžé£ã®ããŒã«ãçšæãããŠããŸãã ãããã®ããŒã«ã¯ãAzure Pipelines ã®äžã«ãããŸãã 1 ã€ç®ã¯ Azure ãã«ãã§ããããã¯ãYAML ããŒã¹ã®ãã«ãå®çŸ©ãå€§èŠæš¡ã«å®è¡ããããã®ããŒã«ã§ãã ãŠãŒã¶ãŒã¯ãç¬èªã®ãã«ã ãã·ã³ãæã¡èŸŒãã (ãã«ãã«çްå¿ã®æ³šæãæã£ãŠç°å¢ãèšå®ããå¿ èŠãããå Žåã«é©ããŠããŸã)ããŸã㯠Azure ã§ãã¹ããããä»®æ³ãã·ã³ã®çµ¶ããæŽæ°ãããããŒã«ãããã·ã³ã䜿çšã§ããŸãã ãããã®ãã¹ãåãã«ã ãšãŒãžã§ã³ãã«ã¯ã.NET éçºã ãã§ãªããJava ãã PythonãiPhone éçºãŸã§ãããŸããŸãªéçºããŒã«ããã¬ã€ã³ã¹ããŒã«ãããŠããŸãã
DevOps ã«ã¯ãä»»æã®ãã«ãçšã«ã«ã¹ã¿ãã€ãºã§ãããããŸããŸãªããã«äœ¿çšã§ãããã«ãå®çŸ©ãå«ãŸããŠããŸãã ãã«ãå®çŸ©ã¯ããœãŒã¹ ã³ãŒããšå
±ã«ããŒãžã§ã³ç®¡çã§ããããã«ã azure-pipelines.yml ãšåŒã°ãããã¡ã€ã«ã§å®çŸ©ããããªããžããªã«ãã§ãã¯ã€ã³ãããŸãã ããã«ããããã®ãã©ã³ãã ãã«å€æŽããã§ãã¯ã€ã³ã§ããããããã©ã³ãå
ã®ãã«ã ãã€ãã©ã€ã³ã«å€æŽãå ããã®ãã¯ããã«ç°¡åã«ãªããŸãã å®å
šãªãã¬ãŒã ã¯ãŒã¯ã§ ASP.NET Web ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã® azure-pipelines.yml ã®äŸãå³ 10-9 ã«ç€ºããŸãã
name: $(rev:r)
variables:
version: 9.2.0.$(Build.BuildNumber)
solution: Portals.sln
artifactName: drop
buildPlatform: any cpu
buildConfiguration: release
pool:
name: Hosted VisualStudio
demands:
- msbuild
- visualstudio
- vstest
steps:
- task: NuGetToolInstaller@0
displayName: 'Use NuGet 4.4.1'
inputs:
versionSpec: 4.4.1
- task: NuGetCommand@2
displayName: 'NuGet restore'
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
displayName: 'Build solution'
inputs:
solution: '$(solution)'
msbuildArgs: '-p:DeployOnBuild=true -p:WebPublishMethod=Package -p:PackageAsSingleFile=true -p:SkipInvalidConfigurations=true -p:PackageLocation="$(build.artifactstagingdirectory)\\"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: VSTest@2
displayName: 'Test Assemblies'
inputs:
testAssemblyVer2: |
**\$(buildConfiguration)\**\*test*.dll
!**\obj\**
!**\*testadapter.dll
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: CopyFiles@2
displayName: 'Copy UI Test Files to: $(build.artifactstagingdirectory)'
inputs:
SourceFolder: UITests
TargetFolder: '$(build.artifactstagingdirectory)/uitests'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
ArtifactName: '$(artifactName)'
condition: succeededOrFailed()
å³ 10-9 - ãµã³ãã« azure-pipelines.yml
ãã®ãã«ãå®çŸ©ã§ã¯ã倿°ã®çµã¿èŸŒã¿ã¿ã¹ã¯ã䜿çšããŠããã«ãã®äœæããã¬ãŽ ã»ããã®æ§ç¯ãšåããããç°¡åã«ããŸã (巚倧ãªãã¬ãã¢ã ãã¡ã«ã³ã³ãããç°¡å)ã ããšãã°ãNuGet ã¿ã¹ã¯ã¯ NuGet ããã±ãŒãžã埩å ããVSBuild ã¿ã¹ã¯ã¯ Visual Studio ãã«ã ããŒã«ãåŒã³åºããŠå®éã®ã³ã³ãã€ã«ãå®è¡ããŸãã Azure DevOps ã«ã¯äœçŸãã®ç°ãªãã¿ã¹ã¯ãçšæãããŠãããã³ãã¥ããã£ã«ãã£ãŠäœåãã®ã¿ã¹ã¯ã管çãããŠããŸãã å®è¡ããããšããŠãããã«ã ã¿ã¹ã¯ã«é¢ä¿ãªãã誰ããæ¢ã«ãã«ãããŠããå¯èœæ§ããããŸãã
ãã«ãã¯ãæåããã§ãã¯ã€ã³ãã¹ã±ãžã¥ãŒã«ããŸãã¯å¥ã®ãã«ãã®å®äºã«ãã£ãŠããªã¬ãŒã§ããŸãã ã»ãšãã©ã®ã±ãŒã¹ã§ã¯ããã§ãã¯ã€ã³ã®ãã³ã«ãã«ãããããšããå§ãããŸãã ãã«ãããã£ã«ã¿ãŒåŠçããŠããªããžããªã®ããŸããŸãªéšåãŸãã¯ç°ãªããã©ã³ãã«å¯ŸããŠç°ãªããã«ããå®è¡ã§ããŸãã ããã«ããããã«èŠæ±ã§ãã¹ããæžãããŠé«éãã«ããå®è¡ãããããã©ã³ã¯ã«å¯ŸããŠå€éã«å®å šãªååž°ã¹ã€ãŒããå®è¡ãããããã·ããªãªãå¯èœã«ãªããŸãã
ãã«ãã®æçµçãªçµæã¯ããã«ã ææç©ãšåŒã°ãããã¡ã€ã«ã®ã³ã¬ã¯ã·ã§ã³ã§ãã ãããã®ææç©ã¯ããã«ã ããã»ã¹ã®æ¬¡ã®ã¹ãããã«æž¡ãããšããAzure Artifacts ãã£ãŒãã«è¿œå ããŠãä»ã®ãã«ãã§äœ¿çšããããšãã§ããŸãã
Azure DevOps ãªãªãŒã¹
ãã«ãã§ã¯ãœãããŠã§ã¢ãåºè·å¯èœããã±ãŒãžã«ã³ã³ãã€ã«ããŸãããç¶ç¶çããªããªãŒãå®äºããã«ã¯ãææç©ããã¹ãç°å¢ã«ããã·ã¥ããå¿ èŠããããŸãã ãã®ããã«ãAzure DevOps ã¯ãªãªãŒã¹ãšåŒã°ããå¥ã®ããŒã«ã䜿çšããŸãã ãªãªãŒã¹ ããŒã«ã§ã¯ããã«ãã§äœ¿çšã§ããã®ãšåãã¿ã¹ã¯ã©ã€ãã©ãªã䜿çšããŸããã"ã¹ããŒãž" ãšããæŠå¿µãå°å ¥ãããŠããŸãã ã¹ããŒãžã¯ãããã±ãŒãžãã€ã³ã¹ããŒã«ãããåé¢ç°å¢ã§ãã ããšãã°ã補åãéçºãQAãéçšç°å¢ãå©çšããå ŽåããããŸãã ã³ãŒãã¯ãããã«å¯ŸããŠèªåãã¹ããå®è¡ã§ããéçºç°å¢ã«ç¶ç¶çã«é ä¿¡ãããŸãã ãããã®ãã¹ãã«åæ ŒãããšããªãªãŒã¹ã¯æåãã¹ãã®ããã« QA ç°å¢ã«ç§»åããŸãã æåŸã«ãã³ãŒãã¯éçšç°å¢ã«ããã·ã¥ããããã¹ãŠã®ãŠãŒã¶ãŒã«è¡šç€ºãããŸãã
å³ 10-10 - ãªãªãŒã¹ ãã€ãã©ã€ã³
ãã«ãå ã®åã¹ããŒãžã¯ãåã®ãã§ãŒãºã®å®äºã«ãã£ãŠèªåçã«ããªã¬ãŒã§ããŸãã ãã ããå€ãã®å Žåãããã¯æãŸãããããŸããã ã³ãŒããéçšç°å¢ã«ç§»è¡ããã«ã¯ã誰ãããã®æ¿èªãå¿ èŠã«ãªãå ŽåããããŸãã ãªãªãŒã¹ ããŒã«ã¯ããªãªãŒã¹ ãã€ãã©ã€ã³ã®åã¹ãããã§æ¿èªè ãèš±å¯ããããšã§ãããããµããŒãããŸãã ç¹å®ã®ãŠãŒã¶ãŒãŸãã¯ãŠãŒã¶ãŒã®ã°ã«ãŒããéçšç°å¢ã«ç§»è¡ããåã«ãªãªãŒã¹ã§ãµã€ã³ãªãããå¿ èŠãããã«ãŒã«ãèšå®ã§ããŸãã ãããã®ã²ãŒãã«ãããæåã®å質ãã§ãã¯ãå¯èœã«ãªããçç£ã«å ¥ããã®ãå¶åŸ¡ããããã«é¢é£ããèŠå¶èŠä»¶ã«æºæ ããããšãã§ããŸãã
ã ãã§ããã«ã ãã€ãã©ã€ã³ãååŸ
å€ãã®ãã«ã ãã€ãã©ã€ã³ãæ§æããã³ã¹ãã¯çºçããªãããããã€ã¯ããµãŒãã¹ããšã«å°ãªããšã 1 ã€ã®ãã«ã ãã€ãã©ã€ã³ãçšæãããšäŸ¿å©ã§ãã çæ³çã«ã¯ããã€ã¯ããµãŒãã¹ã¯ä»»æã®ç°å¢ã«åå¥ã«ãããã€ã§ãããããé¢é£ä»ããããŠããªã倧éã®ã³ãŒããè§£æŸããããšãªãããããããç¬èªã®ãã€ãã©ã€ã³ãä»ããŠè§£æŸã§ããããšã¯å®ç§ã§ãã åãã€ãã©ã€ã³ã«ã¯ç¬èªã®æ¿èªã»ãããèšå®ã§ããŸããããã«ãããåãµãŒãã¹ã®ãã«ã ããã»ã¹ã®ããªãšãŒã·ã§ã³ãå¯èœã«ãªããŸãã
ããŒãžã§ã³ç®¡çããããªãªãŒã¹
ãªãªãŒã¹æ©èœã䜿çšããæ¬ ç¹ã® 1 ã€ã¯ããã§ãã¯ã€ã³ãã azure-pipelines.yml ãã¡ã€ã«ã§å®çŸ©ã§ããªãããšã§ãã ãã©ã³ãããšã®ãªãªãŒã¹å®çŸ©ãæã€ããšããããããžã§ã¯ã ãã³ãã¬ãŒãã«ãªãªãŒã¹ ã¹ã±ã«ãã³ãå«ãããŸã§ãå€ãã®çç±ãèããããŸãã 幞ããããã€ãã®ã¹ããŒãžã®ãµããŒãããã«ã ã³ã³ããŒãã³ãã«ç§»è¡ããäœæ¥ãé²è¡äžã§ãã ããã¯ãã«ãã¹ããŒãž ãã«ããšåŒã°ãã æåã®ããŒãžã§ã³ãå©çšå¯èœã«ãªããŸããã