YAMLãã¬ãã¥ãŒAPIã®åŒ·åãšãŠãããŒãµã«ããã±ãŒãžçšã®upstreamãœãŒã¹ã®æ§æ - Sprint 174
ãã®ã¹ããªã³ãã§ã¯ããã¡ã€ãã©ã€ãºãããYAMLããã£ãååŸããããã®æ°ããAPIãšã³ããã€ã³ããå±éããŠããŸãããŸãããã®ãªãªãŒã¹ã§ãŠãããŒãµã«ããã±ãŒãžçšã®upsteamãœãŒã¹ãèšå®ã§ããæ©èœãè¿œå ããããšã«ã€ããŠçºè¡šã§ããããšã«è奮ããŠããŸãã
詳现ã¯ä»¥äžã®æ°æ©èœäžèŠ§ãã芧ãã ããã
- ããã¯ãã°ãšããŒãã«ã·ã¹ãã ã¯ãŒã¯ã¿ã€ãã®è¿œå ãå¯èœã«ãªããŸãã
- ç£æ»ãã°ã€ãã³ãã®è¿œè·¡ã匷åããŸãã
- Azure Boards GitHubã¢ããªã±ãŒã·ã§ã³ã®äžéã解é€ããŸãã(private preview)
- pull requestãããŒãžããæã«äœæ¥é ç®ã®ç¶æ ã®ã«ã¹ã¿ãã€ãºãã§ããããã«ãªããŸã(private preview)
- Pipelinesã€ã¡ãŒãžã®æ¡å
- ãšãŒãžã§ã³ããã°ã®ã¢ããããŒãæ©èœãæ¹åããŸãã
- ã³ã³ãããŒã§ããŠã³ãããããªã¥ãŒã ãèªã¿åãå°çšã«ãããªãã·ã§ã³ãæäŸããŸã
- ã³ã³ãããŒã®éå§ãšçµäºãèªåã§ç®¡çã§ããããã«ãªããŸãã
- åã¹ãããã§ã¿ã¹ã¯ãã³ãã«ãå±éãã
- ãªãªãŒã¹ã»ãã¥ãªãã£ã®æ¹åã®ããã«ãã¢ã¯ã»ã¹ããŒã¯ã³ã®ç¯å²ã®å¶éããããããããã«ãªããŸã
- YAMLãã¬ãã¥ãŒAPIã匷åããŸãã
- Universal Packageçšã®upstreamãœãŒã¹ãæ§æã§ããããã«ãªããŸãã
- Mavenããã±ãŒãžãæŽæ°ããREST APIãäžè¬æäŸãããŸãã
éžæããããã¯ãã°ã¬ãã«ã«ã·ã¹ãã ã®ã¯ãŒã¯ã¢ã€ãã ã¿ã€ããè¿œå ã§ããæ©èœã®ãã©ã€ããŒããã¬ãã¥ãŒãéå§ããŸãããæŽå²çã«ãããã®ã¯ãŒã¯ã¢ã€ãã ã¿ã€ãã¯ãã¯ãšãªããã®ã¿å©çšå¯èœã§ããã
Process | Work Item Type |
---|---|
Agile | Issue |
Scrum | Impediment |
CMMI | Change Request |
Issue | |
Review | |
Risk |
ãã®æ©èœããã¬ãã¥ãŒããå€ãããã¹ãŠã®organizationã§äžè¬çã«å©çšã§ããããã«ãªã£ãããšããç¥ããããŸããç°¡åã«ã·ã¹ãã ã¯ãŒã¯ã¢ã€ãã ã¿ã€ããããã¯ãã°ã¬ãã«ãžè¿œå ã§ããŸããã«ã¹ã¿ã ããã»ã¹ã«å ¥ããthe Backlog Levels tabãã¯ãªãã¯ããã ãã§ããéžæããããã¯ãã°ã¬ãã«ïŒäŸïŒèŠä»¶ããã¯ãã°ïŒãéžæããEditãªãã·ã§ã³ãéžæããŸãã次ã«ãäœæ¥é ç®ã¿ã€ããè¿œå ããŸãã
ç£æ»ãã°ã«æ°ããã€ãã³ããè¿œå ããã客æ§ãããã»ã¹é¢é£ã®å€æŽããããã远跡ã§ããããã«ããŸãããããã¯ãªã¹ãã®å€ãå€æŽããããã³ã«ã€ãã³ããèšé²ãããŸããéåžžãããã¯ãªã¹ããã£ãŒã«ãã®å€æŽã¯ãããã»ã¹ã«è¡ãããæãäžè¬çãªå€æŽã§ããçµç¹ã®ç®¡çè ããã®æ°ããã€ãã³ãã䜿çšããããšã§ããã€ã誰ããããã®ãã£ãŒã«ãã«å€æŽãå ãããããããã远跡ããããšãã§ããŸãã
GitHubããŒã±ãããã¬ã€ã¹ã®Azure Boardsã¢ããªã±ãŒã·ã§ã³ãå©çšããŠããå Žåãæ¥ç¶ã§ããGitHubãªããžããªã¯100åãŸã§ãšå¶éãããŠããŸããããã¯ã100以äžã®ãªããžããªãååã«æã€ããšãã§ãã倧èŠæš¡ãªçµç¹ã«ãšã£ãŠã¯ãããã«ãŒã«ãªããŸãããã®ã¹ããªã³ãã§ã¯ãAzure BoardsãGitHubãªããžããªã«æ¥ç¶ããæ¹æ³ãå€æŽããŠã100以äžã®ãªããžããªãžã®æ¥ç¶ãå¯èœã«ããŸãããçŸåš100ã¬ãã®äžéãè¶ ããŠããå Žåã¯ããç¥ããããã ããã°ããã®äžéãå¢ãããŠãããã¯ã解é€ããæ©èœãæå¹ã«ããããšãã§ããŸããçµç¹å (dev.azure.com/{organization}) ãçŽæ¥ã¡ãŒã«ã§ãç¥ãããã ããã
pull requestãããŒãžããæã«äœæ¥é ç®ã®ç¶æ ã®ã«ã¹ã¿ãã€ãºãã§ããããã«ãªããŸã(private preview)
ãã¹ãŠã®ã¯ãŒã¯ãããŒãåãã§ã¯ãããŸãããpull requestãå®äºãããšãã«ãé¢é£ããã¯ãŒã¯ã¢ã€ãã ãã¯ããŒãºããããšèããŠããã客æ§ãããŸãããŸããã¯ãŒã¯ã¢ã€ãã ãå¥ã®ç¶æ ã«èšå®ããŠãéããåã«æ€èšŒãè¡ããããšèããŠããã客æ§ãããŸãããã®äž¡æ¹ã蚱容ãã¹ãã§ãã
Sprint 174ãããpull requestãããŒãžãããŠå®äºãããšãã«ãäœæ¥é ç®ãåžæã®ç¶æ ã«èšå®ã§ããããã«ããæ°æ©èœãå°å ¥ããŸããããããè¡ãã«ã¯ãpull requestã®èª¬æãã¹ãã£ã³ããŠãäœæ¥é ç®ã®#mentionãç¶ãç¶æ å€ãæ¢ããŸãããã®äŸã§ã¯ã2ã€ã®ãŠãŒã¶ãŒã¹ããŒãªãŒã解決æžã¿ã«èšå®ãã2ã€ã®ã¿ã¹ã¯ãçµäºãããŠããŸãã
ãã®æ©èœã¯é·ãéåŸ ã¡æãŸããŠãããã®ã§ãç§ãã¡ã¯ããªãã®èããèŠãŠè奮ããŠããŸããæåã«ãç§ãã¡ã¯pull requestã®èª¬æãã¹ãã£ã³ããŠããã ãã§ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®å€æŽã¯å«ãŸããŠããŸãããç§ãã¡ã¯ããããªãæè³ãè¡ãåã«ããŸãããªãã®ãã£ãŒãããã¯ãåŸãããšèããŠããŸãã
ãã©ã€ããŒããã¬ãã¥ãŒãžã®åå ã«èå³ã®ããæ¹ã¯ãçŽæ¥ã¡ãŒã«ã§ãé£çµ¡ãã ãããããªãã®organization (dev.azure.com/{organization}) ãå¿ããã«èšèŒããŠãã ããã
泚æ
Azure Pipelinesã€ã¡ãŒãžã¯ããŠãŒã¶ãŒã«å¯èœãªéãæé«ã®äœéšãæäŸããããã«ç¶ç¶çã«æŽæ°ãããŸãããããã®å®æçãªæŽæ°ã¯ãäž»ã«ãã°ãå€ããªã£ããœãããŠã§ã¢ãžã®å¯ŸåŠãç®çãšããŠããŸããå€ãã®å Žåããã€ãã©ã€ã³ãžã®åœ±é¿ã¯ãããŸããããå¿
ããããããšã¯éããŸããããã€ãã©ã€ã³ããã€ã¡ãŒãžäžã§åé€ãŸãã¯æŽæ°ããããœãããŠã§ã¢ã«äŸåããŠããå Žåã圱é¿ãåããå¯èœæ§ããããŸãã
ç§ãã¡ã®Windows, Linux, macOSã®ã€ã¡ãŒãžã®æŽæ°ã«ã€ããŠã¯ã以äžã®åç¥ãã芧ãã ããã
ãšãŒãžã§ã³ããAzure PipelinesãµãŒããŒãšã®éä¿¡ãåæ¢ãããšãå®è¡ããŠãããžã§ãã¯æŸæ£ãããŸããã¹ããªãŒãã³ã°ãããã³ã³ãœãŒã«ãã°ãèŠãŠããå ŽåããšãŒãžã§ã³ããå¿çããªããªãçŽåã«äœãããŠãããã®æããããåŸããããããããŸãããããããããã§ã¯ãªãã£ãããããŒãžãæŽæ°ããå Žåããããã®ã³ã³ãœãŒã«ãã°ã¯æ¶ããŠããŸãããã®ãªãªãŒã¹ã§ã¯ããšãŒãžã§ã³ããå®å šãªãã°ãéä¿¡ããåã«å¿çãåæ¢ããå Žåã次åã®çãšããŠã³ã³ãœãŒã«ãã°ãä¿æããŸããã³ã³ãœãŒã«ãã°ã¯1è¡ããã1000æåã«å¶éãããŠãããææäžå®å šãªç¶æ ã«ãªãããšããããŸãããäœã衚瀺ãããªãããã¯ãã£ãšåœ¹ã«ç«ã¡ãŸãïŒãããã®ãã°ã調ã¹ãããšã¯ãããªãèªèº«ã®ãã€ãã©ã€ã³ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ã«åœ¹ç«ã€ãããããŸããããåœç€Ÿã®ãµããŒããšã³ãžãã¢ããã©ãã«ã·ã¥ãŒãã£ã³ã°ãæ¯æŽããéã®å©ãã«ãªãããšã¯ééããããŸããã
ã³ã³ãããŒã§ããŠã³ãããããªã¥ãŒã ãèªã¿åãå°çšã«ãããªãã·ã§ã³ãæäŸããŸã
Azure Pipelinesã§ã³ã³ãããŒãžã§ããå®è¡ãããšãã¯ãŒã¯ã¹ããŒã¹ãã¿ã¹ã¯ãããã³ãã®ä»ã®ãããªã¢ã«ãå«ãè€æ°ã®ããªã¥ãŒã ãããªã¥ãŒã ãšããŠãããã³ã°ãããŸãããããã®ããªã¥ãŒã ã¯ãããã©ã«ãã§èªã¿åã/æžã蟌ã¿ã¢ã¯ã»ã¹ãå¯èœã«ãªã£ãŠããŸããã»ãã¥ãªãã£ãé«ããããã«ãYAMLã§ã³ã³ãããŒã®ä»æ§ãå€æŽããããšã§ãããªã¥ãŒã ãèªã¿åãå°çšã§ããŠã³ãã§ããŸããmountReadOnly
ã®äžã®åããŒã¯ãèªã¿åãå°çšã®ããã«true
ã«èšå®ã§ããŸãïŒããã©ã«ãã¯false
ã§ãïŒã
Copy
resources:
containers:
- container: example
image: ubuntu:18.04
mountReadOnly:
externals: true
tasks: true
tools: true
work: false
äžè¬çã«ã¯ãAzure Pipelinesã«ãžã§ãããµãŒãã¹ã³ã³ãããŒã®ã©ã€ããµã€ã¯ã«ã管çãããããšããå§ãããŸããããããããã€ãã®çããã·ããªãªã§ã¯ãèªåã§ããããéå§ãåæ¢ãããå ŽåããããŸããä»åã®ãªãªãŒã¹ã§ã¯ããã®æ©èœãDockerã¿ã¹ã¯ã«çµã¿èŸŒã¿ãŸããã
æ°ããæ©èœã䜿ãå Žåã®ãã€ãã©ã€ã³ãµã³ãã«ã§ãã
resources:
containers:
- container: builder
image: ubuntu:18.04
steps:
- script: echo "I can run inside the container (it starts by default)"
target:
container: builder
- task: Docker@2
inputs:
command: stop
container: builder
# if any step tried to run in the container here, it would fail
ãŸããã³ã³ãããŒã®ãªã¹ãããã€ãã©ã€ã³å€æ°Agent.ContainerMapping
ã«ã€ã³ã¯ã«ãŒãããŠããŸããããã¯ãäŸãã°ã¹ã¯ãªããã§ã³ã³ãããŒã®ãªã¹ããæ€æ»ãããå Žåãªã©ã«äœ¿çšã§ããŸããããã«ã¯ããšãŒãžã§ã³ãã管çããã³ã³ãããŒIDã«ãªãœãŒã¹åïŒäžã®äŸã§ã¯ "builder"ïŒããããã³ã°ããæåååãããJSONãªããžã§ã¯ããå«ãŸããŠããŸãã
ãšãŒãžã§ã³ãããžã§ããå®è¡ãããšããŸãããžã§ãã®ã¹ãããã§å¿
èŠãšããããã¹ãŠã®ã¿ã¹ã¯ãã³ãã«ãããŠã³ããŒãããŸããéåžžãããã©ãŒãã³ã¹ã®ããã«ãã¿ã¹ã¯ãè€æ°ã®ã¹ãããã§äœ¿çšãããå Žåã§ãããžã§ãåäœã§äžåºŠã ãã¿ã¹ã¯ãå±éããŸããä¿¡é ŒãããŠããªãã³ãŒããå±éãããå
容ãå€æŽããããšãæžå¿µããŠããå Žåãããã©ãŒãã³ã¹ãå°ãç ç²ã«ãã代ããã«ããšãŒãžã§ã³ãã§ã®äœ¿çšæ¯ã«ã¿ã¹ã¯ã®å±éãè¡ããŸãããã®ã¢ãŒããæå¹ã«ããã«ã¯ããšãŒãžã§ã³ããèšå®ããéã«--alwaysextracttask
ãæž¡ããŠãã ããã
ãªãªãŒã¹ã»ãã¥ãªãã£ã®æ¹åã®ããã«ãã¢ã¯ã»ã¹ããŒã¯ã³ã®ç¯å²ã®å¶éããããããããã«ãªããŸã
Azure Pipelinesã®ã»ãã¥ãªãã£èšå®ã匷åããããã®ã€ãã·ã¢ãããæ§ç¯ãããªãªãŒã¹ã®ã¢ã¯ã»ã¹ããŒã¯ã³ã®ç¯å²ãå¶éã§ããããã«ãªããŸãã
ãªãªãŒã¹ã§å®è¡ããããã¹ãŠã®ãžã§ãã¯ãã¢ã¯ã»ã¹ããŒã¯ã³ãååŸããŸããã¢ã¯ã»ã¹ããŒã¯ã³ã¯ãã¿ã¹ã¯ãã¹ã¯ãªãããAzure DevOpsãžã³ãŒã«ããã¯ããéã«äœ¿çšãããŸããäŸãã°ããœãŒã¹ã³ãŒãã®ååŸãææç©ã®ããŠã³ããŒãããã°ã®ã¢ããããŒãããã¹ãçµæã®ã¢ããããŒããAzure DevOpsãžã®RESTåŒã³åºããªã©ã«ã¢ã¯ã»ã¹ããŒã¯ã³ã䜿çšããŸããæ°ããã¢ã¯ã»ã¹ããŒã¯ã³ã¯ãžã§ãããšã«çæããããžã§ããå®äºãããšå€±å¹ããŸãã
ä»åã®ã¢ããããŒãã§ã¯ãã¢ã¯ã»ã¹ããŒã¯ã³ã®ç¯å²ãå¶éããããšã§ãã€ãã©ã€ã³ã®ã»ãã¥ãªãã£ãåäžããŸããåŸæ¥ã®ãªãªãŒã¹ã«ãåæ§ã®æ©èœãæ¡åŒµããŠããŸãã
ãã®æ©èœã¯ãæ°ãããããžã§ã¯ããorganizationã§ã¯ããã©ã«ãã§ãªã³ã«ãªããŸããæ¢åã®organizationã®å Žåã¯ãSettings > Pipelines > Settings. > Limit job authorization scope to current project for release pipelinesã§æå¹ã«ããå¿ èŠããããŸãããªãªãŒã¹ãã€ãã©ã€ã³ã®å Žåã¯ããžã§ãèªèšŒç¯å²ãçŸåšã®ãããžã§ã¯ãã«å¶éããŸãã詳现ã¯ãã¡ããåç §ããŠãã ããã
æ°ååã®ã¹ããªã³ãã§ã¯ããã€ãã©ã€ã³ãå®è¡ããã«ãã€ãã©ã€ã³ã®å®å
šãªYAMLããã¬ãã¥ãŒããæ©èœã玹ä»ããŸãããä»åã®ã¢ããããŒãã§ã¯ããã¬ãã¥ãŒæ©èœã®ããã®å°çšã®æ°ããURLãäœæããŸãããhttps://dev.azure.com/{org}/{project}/_apis/pipelines/{pipelineId}/preview
ã«POSTããŠãæçµçãªYAMLããã£ãååŸã§ããããã«ãªããŸããããã®æ°ããAPIã¯å®è¡ããã¥ãŒã€ã³ã°ããã®ãšåããã©ã¡ãŒã¿ãŒãåããŸããã"Queue builds"ããŒããã·ã§ã³ãå¿
èŠãšããªããªããŸããã
Azure Artifactsãã£ãŒããèšå®ããŠãå¿ èŠã«å¿ããŠupsteamãœãŒã¹ããUniversal Packagesãèªåçã«ããŠã³ããŒãã§ããããã«ãªããŸããã
以åã¯ãNuGetãPythonãMavenãããã³npmããã±ãŒãžã®ããã«ãã£ãŒãäžã§upsteamãœãŒã¹ãèšå®ããããšã¯ã§ããŸããããUniversal Packagesã«ã¯èšå®ã§ããŸããã§ãããããã¯ãUniversal Packagesã«äœ¿çšãããŠããã¹ãã¬ãŒãžæè¡ã®éãã«ãããã®ã§ãä»ã®ãµããŒããããŠããããã±ãŒãžã¿ã€ããããã¯ããã«å€§ããªããã±ãŒãžããµããŒãããŠããŸãã
ä»ã®ããã±ãŒãžã¿ã€ãã®å Žåãšåãæ¹æ³ã§ããŠãããŒãµã«ããã±ãŒãžã®upsteamãœãŒã¹ãèšå®ã§ããããã«ãªããŸããããã£ãŒãèšå®ãéãã Upstream sources â Add upstream source âãã¯ãªãã¯ããŠãé©åãªãœãŒã¹ã¿ã€ããéžæããŸãã次ã®ãã¥ãŒã§ã¯ãæ°ãããªãã·ã§ã³ãšããŠãŠãããŒãµã«ããã±ãŒãžïŒUPackïŒã衚瀺ãããŸãïŒäžã®ç»åãåç §ïŒã 詳现ã«ã€ããŠã¯ãupsteamãœãŒã¹ã®æ§æã«é¢ããããã¥ã¡ã³ããã芧ãã ããã
upsteamãœãŒã¹ã®ãŠãããŒãµã«ããã±ãŒãžã¯ãåãDevOps organizationå ã®ãã£ãŒãéã§ã®ã¿ãµããŒããããŠããããšã«æ³šæããŠãã ãããä»åŸã®ã¹ããªã³ããµã€ã¯ã«ã§ãAADã«é¢é£ä»ããããä»ã®organizationã®ãã£ãŒããåç §ããæ©èœè¿œå ãèšç»ããŠããŸãã
Azure Artifactsã® "Update Package Version" REST APIã䜿çšããŠMavenããã±ãŒãžã®ããŒãžã§ã³ãæŽæ°ã§ããããã«ãªããŸããã以åã¯ãREST APIã䜿çšããŠNuGetãMavenãnpmãUniversal Packagesã®ããã±ãŒãžã®ããŒãžã§ã³ãæŽæ°ããããšãã§ããŸããããMavenããã±ãŒãžã¯æŽæ°ã§ããŸããã§ããã
Mavenããã±ãŒãžãæŽæ°ããã«ã¯ã以äžã®ããã«HTTP PATCHã³ãã³ãã䜿çšããŸãã
PATCH https://pkgs.dev.azure.com/{organization}/{project?}/_apis/packaging/feeds/{feedId}/maven/groups/{groupId}/artifacts/{artifactId}/versions/{packageVersion}?api-version=5.1-preview.1
åãã©ã¡ãŒã¿ãŒã«ã¯ä»¥äžã®å€ãæå®ããŸãã
Name | In | Required | Type | Description |
---|---|---|---|---|
artifactId | path | TRUE | string | ããã±ãŒãžã®Artifact ID |
feed | path | TRUE | string | feedã®Nameãããã¯ID |
groupId | path | TRUE | string | ããã±ãŒãžã®Group ID |
organization | path | TRUE | string | Azure DevOps organizationã®åå |
version | path | TRUE | string | ããã±ãŒãžã®ããŒãžã§ã³ |
project | path | string | ãããžã§ã¯ãIDããããžã§ã¯ãå | |
api-version | query | TRUE | string | 䜿çšããAPIã®ããŒãžã§ã³ããã®APIã䜿çšããå Žåã'5.1-preview.1'ãæå®ããªããã°ãªããªã |
Name | Type | Description |
---|---|---|
views | JsonPatchOperation | è¿œå ãããããã±ãŒãžããŒãžã§ã³ã®ãã¥ãŒ |
詳现ã¯ãæŽæ°ãããREST APIã®ããã¥ã¡ã³ããã¿ãŠãã ããã
泚æäºé
ããã§è°è«ãããŠããæ©èœã¯ä»åŸäºïœäžé±ã«ããã£ãŠé 次å±éãããŸãã
ãããã®æ°æ©èœãèªãã åŸã次ã®ãªã³ã¯ãããã²ãèªèº«ã§Azure DevOpsãµãŒãã¹ãäœéšããŠã¿ãŠãã ããã
ãããã®æ©èœã«ã€ããŠã©ãæã£ãŠããããèãããããšæããŸãã ãã£ãŒãããã¯ã¡ãã¥ãŒã䜿çšããŠåé¡ãå ±åããããææ¡ãæåºããŠãã ããã
ã¢ããã€ã¹ãåçãå¿ èŠãšãã質åãããå ŽåãStack Overflowã³ãã¥ããã£ã§èããŠãã ããã
Aaron Hallberg