upstreamãœãŒã¹ããã±ãŒãžãšã·ã³ãã«ãµãŒããŒã®äžè¬æäŸéå§ - VSTS Sprint 130 ã®æŽæ°
Visual Studio Team Services(VSTS)ã®Sprint 130ã¢ããããŒãã§ã¯ãå®å šãªDevOpsãã€ãã©ã€ã³ãæ§ç¯ããããã«åœ¹ç«ã€ããŒã«ãšãµãŒãã¹ãšã®çµ±åãåŒãç¶ã匷åããŠããŸããã¢ããã¹ããªãŒã ãœãŒã¹ããããã±ãŒãžã管çããŠäŸåé¢ä¿ã管çããVSTSãã·ã³ãã«ãµãŒããŒãšããŠäœ¿çšããŠãããã°ãç°¡çŽ åããŸãããŸããVSTS Compose Extension for Microsoft Teamsã䜿çšããŠãããŒã ã®äŒè©±ã«äœæ¥é ç®ãæã¡èŸŒãããšãã§ããŸãã
ãã®ã»ãã®ãã€ã©ã€ãã§ã
- äœæ¥é ç®ã§ã°ã«ãŒãã«èšåããŠãpull requestã®ãã£ã¹ã«ãã·ã§ã³ããã
- GitHubããã®ç¹å®ã®ãã©ã³ãã®ã¿ãã«ããAzure Container RegistryãšDocker HubãããªãªãŒã¹
- Jenkinsããã现ããå¶åŸ¡ãAzure Storageã®æŽ»çš
- ã°ã«ãŒãã䜿çšããŠå€æ°ã®ãŠãŒã¶ãŒã®ã¢ã¯ã»ã¹ããã³æ¡åŒµæ©èœã管ç
泚æäºé
ããã§è°è«ãããŠããæ©èœã¯ä»åŸäºïœäžé±éã«ããã£ãŠé 次å±éãããŸãã
ãœãŒã¹ç®¡çã§å€ããªããžããªãã¯ãªãŒã³ã¢ãããããšãã«ééããçããããšããããŸããéå»30æ¥éã«Gitãªããžããªãåé€ãããå ŽåãREST APIã䜿çšããŠå埩ã§ããŸãããŸããªããWeb UIã§ãã®ãªãã·ã§ã³ãæå¹ã«ããŸãã詳现ã«ã€ããŠã¯ãlistããã³recoverã®ããã¥ã¢ã«ãåç §ããŠãã ããã
Microsoft Teams using the VSTS Composeæ¡åŒµæ©èœã䜿ã£ãŠãäœæ¥é ç®ã®ãã£ã¹ã«ãã·ã§ã³ããã
Microsoft Teamsã¯ãå€ãã®ãšã³ãžãã¢ãªã³ã°ããŒã å ã§ããŒã ã¯ãŒã¯ã®äžå¿ãšãªã£ãŠããŸããæ°ããVSTS Composeæ¡åŒµæ©èœã䜿çšããŠMicrosoft Teamsãšã®çµ±åãæ¡åŒµããç¹å®ã®äœæ¥é ç®ãä»ã®ã³ã³ãã³ããããŒã«ãšå ±ã«èŠã€ããŠè°è«ã§ããããã«ããŸããã詳现ã«ã€ããŠã¯ãMarketplaceã®Microsoft Teams Integrationæ¡åŒµæ©èœãåç §ããŠãã ããã
äœæ¥é ç®ãpull requestã«ã€ããŠã®è°è«ã«ã¯ãè€æ°ã®äººãç¹å®ã®ããŒã ã®å šå¡ãå«ãŸããŠããå Žåãéç¥ãããã¹ãŠã®äººã@mentionãããšæéãããããŸããä»åã®æŽæ°ã§ãdiscussionã§ããŒã ãã»ãã¥ãªãã£ã°ã«ãŒãã@mentionã§ããããã«ãªããŸãããããªããäœæ¥é ç®ãŸãã¯pull requestã®ããããã§èšåãããã°ã«ãŒãã®ã¡ã³ããŒã§ããå Žåãé»åã¡ãŒã«éç¥ãåãåããŸããäœæ¥é ç®ã§èšåãããã°ã«ãŒãã®ã¡ã³ããŒã§ããå Žåããã®äœæ¥é ç®ã¯Work Itemsããã®Mentionedã«ã衚瀺ãããŸãã
ããªãã®çµç¹ã§ã·ã³ãã«ããã¹ãããŠå ±æã§ããããã«ããVSTS Symbol Serverã®äžè¬æäŸãéå§ãããŸãããã·ã³ãã«ã¯CãC++ãªã©ã®ãã€ãã£ãèšèªã§èšè¿°ãããã¢ããªã±ãŒã·ã§ã³ããããã°ããããã«ç¹ã«åœ¹ç«ã€è¿œå æ å ±ãæäŸããŸãã詳现ã«ã€ããŠã¯ãdocumentation for publishing symbols for debuggingãåç §ããŠãã ããã
ãã®æ©èœã¯ææ¡ã«åºã¥ããŠåªå é äœãã€ããããŸããã
ä»åã®æŽæ°ã§GitHubãªããžããªã«ãã©ã³ããã£ã«ã¿ãèšå®ã§ããŸããããšãã°ãmaster/*ã§ãmasterãã©ã³ãããã®ãã«ãã®ã¿ããããã€ã§ããŸãã
ãããŸã§ãã©ã³ããšã¿ã°ããªãªãŒã¹ã®ããªã¬ãŒã«æå®ã§ããŸããããã ããã®ãããªæå®ãã§ããçšéã¯éãããŠããããªãªãŒã¹å®çŸ©ãé »ç¹ã«æŽæ°ããå¿ èŠããããšããæ確ãªãã£ãŒãããã¯ãåããŸãããBuildã®ããã«ããªãªãŒã¹ãããªã¬ãŒããªããã©ã³ããæå®ã§ããããã«ãªããŸãããããšãã°ããã¹ãŠã®**dev/***ãã©ã³ãã®ãªãªãŒã¹ãèµ·åãããããdev/featureXãã©ã³ãã®ãªãªãŒã¹ã¯èµ·åããããªããšããå Žåã«äœ¿ããŸãã
ã³ã³ããåãããã¢ããªã±ãŒã·ã§ã³ããããã€ãããšãããŸãã³ã³ããã®ã€ã¡ãŒãžãã³ã³ããã¬ãžã¹ããªã«ããã·ã¥ãããŸããããã·ã¥ãå®äºãããšãã³ã³ããã€ã¡ãŒãžã¯ã³ã³ãããŸãã¯Kubernetesã¯ã©ã¹ã¿ã®Webã¢ããªã±ãŒã·ã§ã³ã«ãããã€ã§ããŸããDocker HubãŸãã¯Azure Container Registryã«ä¿åãããŠããã€ã¡ãŒãžã®æŽæ°æã«ãææç©ãœãŒã¹ãšããŠè¿œå ããããšã§ããªãªãŒã¹ã®èªåäœæãæå¹ã«ã§ããããã«ãªããŸããã
Jenkinsã®ãã«ãã«ãã£ãŠçæãããææç©ã¯ãéåžžã¢ãŒã«ã€ããšå ±æã®ããã«ã¹ãã¬ãŒãžãªããžããªã«äŒæãããŸãã Azure Blob Storageã¯ãJenkinsãã«ãã«ãã£ãŠäœæãããææç©ããµããŒãããŠãããªããžããªã®1ã€ã§ããAzureã¹ãã¬ãŒãžã«çºè¡ããJenkinsãããžã§ã¯ãããªãªãŒã¹å®çŸ©ã®ææç©ãœãŒã¹ãšããŠäœ¿çšããããšãã§ããŸãã
ææç©ãå ¬éããŠããAzure Blob Storageã®è©³çŽ°ã¯ãææç©ãå®çŸ©ã«è¿œå ãããšãå¿ èŠãšãªããŸããDeploymentã¯AzureãããšãŒãžã§ã³ãã«èªåçã«ææç©ãããŠã³ããŒãããŸãããã®æ§æã§ã¯ããšãŒãžã§ã³ããJenkinsãµãŒããŒããåæããããšãã§ããŸããHosted Agentã¯ããµãŒããŒãã€ã³ã¿ãŒãããã«å ¬éããããšãªã䜿çšã§ããŸãã
è€æ°ã®ææç©ãå«ããªãªãŒã¹ãèªåèµ·åããããšããªãªãŒã¹å®çŸ©ã«ä¿åãããŠããããã©ã«ãã®ããŒãžã§ã³ããã¹ãŠã®ææç©ã«å¯ŸããŠéžæãããŸãã以åã¯ãJenkinsææç©ã«ã¯ããã©ã«ãã®ããŒãžã§ã³èšå®ããªãã£ããããJenkinsãå¯æ¬¡çãªææç©ãšããŠäœ¿çšããŠãªãªãŒã¹ã§ç¶ç¶çãªå°å ¥ããªã¬ãŒãèšå®ããããšã¯ã§ããŸããã§ããã
ããã§ãJenkinsææç©ã®æ¢å®ã®ããŒãžã§ã³ãããç¥ã£ãŠãããªãã·ã§ã³ã§æå®ã§ããŸãã
- Latest (ææ°)
- Specify at the time of release creation (ãªãªãŒã¹äœæããæã®ç¹å®ãã®)
- Specific version (ç¹å®ã®ããŒãžã§ã³)
Azure DevOps Projectã䜿çšããŠãASP.NETãŸãã¯ASP.NET Coreã¢ããªã±ãŒã·ã§ã³çšã®Azureä»®æ³ãã·ã³(VM)ãªãœãŒã¹ãžã®å®å šã«æ§æãããCI/CDãã€ãã©ã€ã³ãã»ããã¢ããã§ããããã«ãªããŸãããDevOpsãããžã§ã¯ãã¯ãVMäžã§ã®ã¢ããªã±ãŒã·ã§ã³ãéçºãå±éãããã³ç£èŠããããã«å¿ èŠãªãã®ãã¹ãŠãèšå®ããŸãã
DevOps Projectãäœæããããšã§ãAzure VMãããããžã§ãã³ã°ãããGitã³ãŒããªããžããªãApplication Insightsã®çµ±åãç¶ç¶çãªé ä¿¡ãã€ãã©ã€ã³ãæäŸãããŸããããã·ã¥ããŒãã䜿çšãããšãAzureããŒã¿ã«ã®åäžã®ãã¥ãŒããã³ãŒãã³ãããããã«ããããã³ãããã€ã¡ã³ããç£èŠã§ããŸãã
以åã¯ãvariable groupããªãªãŒã¹å®çŸ©ã«è¿œå ããããšããvariable groupã«å«ãŸããŠããå€æ°ã¯ãªãªãŒã¹å ã®ãã¹ãŠã®ç°å¢ã§åç §ã§ããŸãããä»åã®å€æŽã«ãããvariable groupãç¹å®ã®ç°å¢ã«ã®ã¿æè»ã«é©çšã§ãããããåããªãªãŒã¹ã®ç°å¢ã§å ±æã§ããªããªããŸããä»åã®åŒ·åã¯ãç°å¢ã«ãã£ãŠç°ãªãSMTPé»åã¡ãŒã«ãµãŒãã¹ãªã©ã®å€éšãµãŒãã¹ã䜿ãå Žåã«æé©ã§ãã
ãã«ããŸãã¯ãªãªãŒã¹å®çŸ©ãšãã£ã¿ã§ã¿ã¹ã¯ãæ€çŽ¢ãããšãMarketplaceã®é¢é£ããã¿ã¹ã¯æ¡åŒµããã€ã³ã¹ããŒã«æžã¿ãŸãã¯çµã¿èŸŒã¿ã®ãã®ã«å ããŠåæãããããã«ãªããŸããããã®æ¡åŒµæ©èœãååŸããã«ã¯ãGet it freeãã¯ãªãã¯ããããšã§ãããŒã±ãããã¬ãŒã¹ã§ã®ã¯ãŒã¯ãããŒãå®äºããŸããæ°ããã¿ã¹ã¯ãäœæããããå®çŸ©ãšãã£ã¿ã§ã¿ã¹ã¯ãªã¹ããæŽæ°ããŠæ°ããã€ã³ã¹ããŒã«ãããã¿ã¹ã¯ã衚瀺ããã ãã§ãå®çŸ©ã«è¿œå ã§ããŸãã
upstreamã®ããã±ãŒãžãœãŒã¹ã䜿ã£ãŠãããªãã¯ããã±ãŒãžãã·ãŒã ã¬ã¹ã«æ±ã
nuget.orgãšnpmjs.comã®upstreamãœãŒã¹ã®äžè¬æäŸãéå§ãããŸãããUpstreamã®ãœãŒã¹ããä¿åãããããã±ãŒãžã管ç(é衚瀺ãéæšå¥šãéå ¬éãåé€ãªã©)ããæ©èœãšã䜿çšãããã¹ãŠã®Upstreamããã±ãŒãžãä¿èšŒããä¿åæ©èœããããŸãã
ä»ã®ãšããããããã®å©ç¹ã¯ã以åã«ãã¬ãã¥ãŒæ©èœããã«ã§UpstreamãœãŒã¹ã®ãã¬ãã¥ãŒæ©èœãæå¹ã«ããŠããªãéãããã®ã¢ããŠã³ã¹åŸã«äœæããããã£ãŒãã«ã®ã¿é©çšãããŸããPreview Featuresããã«ã®upstream sources previewãæå¹ã«ãããšããã°ã«ãæå¹ã«ããåŸã«äœæããããã£ãŒãã¯ããããã®ç¹å žã䜿çšã§ããŸããä»åŸã®ã¢ããããŒãã§ãå€ããã£ãŒããã¢ããã°ã¬ãŒãã§ããããã«ãªããŸãã
ããã±ãŒãžãªã¹ãã§ã¯ãåããã±ãŒãžããŒãžã§ã³ã®ãã¥ãŒã§ãåããã±ãŒãžã®å質ãçŽ æ©ãå€æã§ããŸãã詳现ã¯ãrelease viewã®ããã¥ã¡ã³ããåç §ããŠãã ããã
æããPackagesããã«ããããã±ãŒãžã«URLãå ±æããããšã¯ã§ããŸããããURLã«ãããžã§ã¯ãåãå«ããå¿ èŠããã£ãããããããžã§ã¯ãåãå ¬éã§ããªãå Žåã䜿çšãããããããããšããããããŸããããã®ã¢ããããŒãã§ã¯ãåä¿¡è ãã¢ã¯ã»ã¹ã§ãããããžã§ã¯ããèªåçã«éžæããã¢ã«ãŠã³ãã¬ãã«ã®URLã䜿çšããŠããã±ãŒãžãå ±æã§ããããã«ãªããŸãããURLã®åœ¢åŒã¯æ¬¡ã®ãšããã§ãã
https://<account>.visualstudio.com/_packaging?feed=<feed>&package=<package>&version=<version>&protocolType=<NuGet|Npm|Maven>
<account>
ã¯ãªãã·ã§ã³ã§ãããããã±ãŒãžãæäŸããå Žåã¯ããããã³ã«ã¿ã€ããæå®ããå¿
èŠããããŸãã
ãªãŒãã³ãœãŒã¹ã³ãã¥ããã£ã§ã¯ããªããžããªã®READMEããããã±ãŒãžã®ææ°ããŒãžã§ã³ããªã³ã¯ãããŠãããããžã貌ãä»ããŠããã®ãäžè¬çã§ãããã®ã¢ããããŒãã§ã¯ãVSTSããã±ãŒãžãã£ãŒãã®ãããžãäœæã§ããããã«ãªããŸããããã£ãŒãèšå®ã§Enable package badgesãªãã·ã§ã³ããªã³ã«ããŠããã±ãŒãžãéžæããCreate badgeãã¯ãªãã¯ããŸãããããžURLãçŽæ¥ã³ããŒãããããããžãããã±ãŒãžã®è©³çŽ°ããŒãžã«ãªã³ã¯ããäºåçæã®Markdownãã³ããŒããããšãã§ããŸãã
æªäœ¿çšã®ããã±ãŒãžãåé€ãããšãããã±ãŒãžãªã¹ãããããã«ä¿ãŠãŸãããééã£ãŠå®è¡ããããšããããŸããä»åã®æŽæ°ã§åé€ããããã±ãŒãžããã¿ç®±(Recycle Bin)ãã埩å ã§ããããã«ãªããŸãããåé€ãããããã±ãŒãžã¯ãã¿ç®±ã«30æ¥éä¿åãããããã埩å ã«ã¯ååãªæéãšãªã£ãŠããŸãã
管çè ãAADãŸãã¯VSTSã°ã«ãŒãã«ã¢ã¯ã»ã¹ã¬ãã«ãšæ¡åŒµæ©èœãå²ãåœãŠãããšã§ã倧èŠæš¡ãªãŠãŒã¶ãŒã°ã«ãŒããç°¡åã«ç®¡çã§ããŸããé©åãªã«ãŒã«ãèšå®ããåŸãã°ã«ãŒãã«èª°ããè¿œå ãããšãVSTSã¢ã«ãŠã³ãã«ã¢ã¯ã»ã¹ãããšãã«ãé©åãªã¢ã¯ã»ã¹ã¬ãã«ãšæ¡åŒµæ©èœãèªåçã«ä»äžãããŸããã¢ã¯ã»ã¹ã¬ãã«ãšæ¡åŒµæ©èœããŠãŒã¶ãŒããšã«ç®¡çããå¿ èŠããªããªããŸãã
詳现ã«ã€ããŠã¯ãæšå¹Žã®Microsoft DevOps Blogã®large account user management roadmap postãåç §ããŠãã ããã
Azure Active Directory(AAD)ã°ã«ãŒãã®ã¡ã³ããŒã·ããã䜿çšããŠã¢ã¯ã»ã¹èš±å¯ã管çããŠããå ŽåãAADã®ã¡ã³ããŒã·ãããå€æŽããŠããVSTSãèªèããã®ã«24ã48æéãããããšããããŸãããä»åã®æŽæ°ã§ããã®åŸ ã¡æéã1æéã«ççž®ãããæ°ããããŒã ã¡ã³ããŒãæ©ãç«ã¡äžããããšãã§ããããã«ãªããŸããã
Graphi REST APIãªãœãŒã¹ã䜿çšãããšãéçºè ã¯ãŠãŒã¶ãŒãã°ã«ãŒããããã³ã°ã«ãŒãã¡ã³ããŒã·ããã管çããã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãããã®APIã»ããã¯ãMicrosoft Account(MSA)ãŸãã¯Azure Active Directory(AAD)ãŠãŒã¶ãŒãVSTSã«è¿œå ãããVSTSã°ã«ãŒããäœæãããããã³VSTSã°ã«ãŒãã«ã¡ã³ããŒãè¿œå /åé€ãããªã©ãäž»èŠãªãŠãŒã¶ãŒç®¡çã·ããªãªãã«ããŒããŠããŸãã 詳现ã«ã€ããŠã¯ãã°ã©ãREST APIã®ããã¥ã¡ã³ãããã³ãµã³ãã«ãåç §ããŠãã ããã
以åã¯ãã¢ã«ãŠã³ãææè ãŸãã¯ç®¡çè ã ããã¢ã«ãŠã³ããããŠãŒã¶ãŒãåé€ã§ããŸãããä»åã®æŽæ°ã§ãããªãèªèº«ãé¢äžããå¿ èŠããªããªã£ãVSTSã¢ã«ãŠã³ãããé¢ããããšãã§ããŸããVSTSã¢ã«ãŠã³ãããé¢ããã«ã¯ãprofileããŒãžã«ç§»åããVSTSã¢ã«ãŠã³ããªã¹ãå ããé¢ãããã¢ã«ãŠã³ããéžã³ãŸããã¢ã«ãŠã³ãã¢ã¯ã·ã§ã³ã»ã¯ã·ã§ã³ã®äžã«ãã¢ã«ãŠã³ããé¢ãããªãã·ã§ã³ãè¿œå ãããŠããŸãããã®æ©èœã¯ãææ¡ã«åºã¥ããŠåªå é äœãä»ããããŸããã
ãããã®æ©èœã«ã€ããŠã©ãæã£ãŠããããèãããããšæããŸãããã£ãŒãããã¯ã¡ãã¥ãŒã䜿çšããŠãåªå é äœãä»ããããšæã£ãŠããããšã«é¢ããã¢ã€ãã¢ãããå Žåã¯ãåé¡ãå ±åããããææ¡ãããŠãã ããã
ã¢ããã€ã¹ãåçãå¿ èŠãªè³ªåãããå ŽåãStack Overflowãã¥ããã£ã§èããŠãã ããã
ããããšãããããŸããã
Henry Dixon ãš Aaron Bjork