แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ Azure DevOps แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒจแƒ˜

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒ— แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒแƒก Windows-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒกแƒฎแƒ•แƒแƒ—แƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒก, Azure DevOps-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒแƒ›แƒฏแƒ”แƒ แƒแƒ“, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ•แƒ˜แƒขแƒแƒœแƒฏแƒ” แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒ—, แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ” แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ แƒ”แƒ แƒ— แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ›แƒแƒ›แƒ”แƒขแƒแƒœแƒ.

แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ› แƒ›แƒแƒ— แƒแƒฅแƒ•แƒ— แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒแƒฆแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒแƒกแƒ—แƒ•แƒ˜แƒก, แƒ“แƒแƒ›แƒ—แƒแƒ•แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒ”แƒขแƒแƒžแƒ˜แƒ“แƒแƒœ แƒ›แƒ”แƒแƒ แƒ”แƒ–แƒ” แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒแƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ˜แƒ—.

แƒ›แƒ” แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘ แƒ“แƒแƒ—แƒฅแƒ›แƒแƒก, แƒ แƒแƒ› แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ Release Pipelines-แƒ–แƒ”, แƒ แƒแƒ“แƒ’แƒแƒœ YAML แƒฏแƒ”แƒ  แƒแƒ  แƒ›แƒ˜แƒฃแƒฆแƒฌแƒ”แƒ•แƒ˜แƒ แƒ˜แƒฅ แƒ“แƒ แƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ”แƒขแƒแƒžแƒ˜แƒก แƒ“แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒแƒ แƒขแƒ”แƒคแƒแƒฅแƒขแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ. แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒ”แƒก แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒ’แƒแƒฎแƒ“แƒ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒจแƒ˜, แƒ แƒแƒช แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒฃแƒšแƒแƒ“ แƒฃแƒขแƒแƒšแƒ“แƒ”แƒ‘แƒ แƒ›แƒแƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒแƒšแƒฃแƒ แƒแƒ‘แƒ˜แƒ—. Pipelines YAML-แƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ— แƒ›แƒชแƒ˜แƒ แƒ” แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒฃแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ แƒขแƒ”แƒฅแƒกแƒขแƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒ แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒช แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ. แƒ”แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ; แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ•แƒšแƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒแƒฆแƒ•แƒฌแƒ”แƒ , แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฎแƒšแƒ แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ—แƒแƒ•แƒแƒ“ แƒ˜แƒœแƒแƒ•แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ˜.

แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ Azure DevOps แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒจแƒ˜

แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ แƒ“แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ

แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ— แƒ˜แƒ›แƒ˜แƒ—, แƒ แƒแƒ› แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜. แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ, แƒ›แƒแƒ—แƒ˜ แƒฌแƒแƒ แƒ›แƒแƒจแƒแƒ‘แƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”, แƒกแƒ˜แƒขแƒงแƒ•แƒ”แƒ‘แƒ˜แƒ— Release, System แƒ“แƒ แƒ.แƒจ. แƒกแƒ แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ (แƒ แƒแƒ’แƒแƒ แƒช แƒ˜แƒ แƒ™แƒ•แƒ”แƒ•แƒ, แƒแƒ แƒ), แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒแƒฅ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ. แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ˜แƒ–แƒแƒคแƒ แƒ”แƒœแƒ˜แƒ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜แƒ— แƒ˜แƒšแƒฃแƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒ—. แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒชแƒ•แƒšแƒแƒ“แƒก แƒแƒฅแƒ•แƒก แƒกแƒแƒ›แƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ, แƒ˜แƒ›แƒ˜แƒกแƒ“แƒ แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒ—แƒฃ แƒกแƒแƒ“ แƒ•แƒฃแƒฌแƒแƒ“แƒ”แƒ‘แƒ— แƒ›แƒแƒก.

steps:
 - bash: echo This script could use $SYSTEM_ACCESSTOKEN
    env:
      SYSTEM_ACCESSTOKEN: $(System.AccessToken)
  - powershell: Write-Host "This is a script that could use $env:SYSTEM_ACCESSTOKEN"
    env:
      SYSTEM_ACCESSTOKEN: $(System.AccessToken)

แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ“แƒแƒแƒงแƒ”แƒœแƒ”แƒ— แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒแƒ’แƒ”แƒœแƒขแƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒช แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ”แƒก แƒแƒ แƒ˜แƒก $(System.AccessToken). แƒ—แƒฃ แƒ’แƒกแƒฃแƒ แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ˜แƒ›แƒแƒ•แƒ” แƒแƒ’แƒ”แƒœแƒขแƒ–แƒ” powershell แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ—, แƒ˜แƒก แƒฃแƒ™แƒ•แƒ” แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ $env:SYSTEM_ACCESSTOKEN. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ, แƒฆแƒ›แƒ”แƒ แƒ—แƒ›แƒ แƒฅแƒœแƒแƒก, แƒ’แƒกแƒฃแƒ แƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ”แƒก แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ  แƒฐแƒแƒกแƒขแƒ–แƒ” PowerShell แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒ›แƒแƒœแƒฅแƒแƒœแƒ”แƒ‘แƒ–แƒ” แƒแƒ›แƒแƒชแƒแƒœแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒกแƒชแƒ”แƒ— แƒ”แƒก แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒจแƒ˜. แƒฉแƒ”แƒ›แƒ˜ แƒคแƒฃแƒšแƒ˜. bash-แƒ˜แƒ— แƒ”แƒก แƒฃแƒคแƒ แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ“แƒแƒ˜แƒขแƒแƒœแƒแƒ— แƒ˜แƒ’แƒ˜ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒกแƒ แƒ“แƒ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— $SYSTEM_ACCESSTOKEN.

แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ™แƒแƒœแƒแƒœแƒ”แƒ‘แƒ˜ แƒแƒ  แƒ•แƒ แƒชแƒ”แƒšแƒ“แƒ”แƒ‘แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ–แƒ”; แƒแƒฅ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒฎแƒแƒ แƒ— แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ–แƒ”. แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒงแƒ”แƒœแƒ“แƒ”แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒแƒ›แƒแƒชแƒแƒœแƒแƒจแƒ˜.

แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ Azure DevOps แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒจแƒ˜

แƒแƒœ แƒ’แƒšแƒแƒ‘แƒแƒšแƒฃแƒ แƒแƒ“ แƒชแƒ•แƒšแƒแƒ“ แƒ›แƒแƒฆแƒแƒ–แƒ˜แƒแƒจแƒ˜ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ“แƒแƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ›แƒแƒฆแƒแƒ–แƒ˜แƒ˜แƒ“แƒแƒœ. แƒซแƒแƒšแƒ˜แƒแƒœ แƒ™แƒแƒ›แƒคแƒแƒ แƒขแƒฃแƒšแƒแƒ“.

แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ Azure DevOps แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒจแƒ˜

แƒ‘แƒแƒœแƒฃแƒกแƒแƒ“, แƒ—แƒฃ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒ, แƒ›แƒแƒ—แƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ Azure แƒฆแƒ แƒฃแƒ‘แƒ”แƒšแƒจแƒ˜ แƒกแƒแƒชแƒแƒ•แƒจแƒ˜, แƒกแƒแƒฎแƒ”แƒšแƒฌแƒแƒ“แƒ”แƒ‘แƒ˜แƒ— Azure Vault; แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— Vault แƒ“แƒแƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— แƒžแƒ แƒแƒ”แƒฅแƒขแƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒแƒจแƒ˜.

แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ Azure DevOps แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒจแƒ˜

แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒœแƒแƒ—แƒ”แƒšแƒ˜แƒ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒ—; แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒจแƒ˜ แƒ›แƒแƒ—แƒ˜ แƒฎแƒ”แƒšแƒ˜แƒ— แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ›แƒแƒ˜แƒœแƒช แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก; แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒแƒจแƒ˜ แƒแƒกแƒ”แƒ—แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก. แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒœแƒแƒฎแƒแƒ—, แƒ แƒแƒก แƒ’แƒแƒ“แƒแƒ แƒ˜แƒชแƒฎแƒแƒ•แƒ— แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒจแƒ˜, แƒแƒ’แƒ”แƒœแƒขแƒ˜แƒก แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒŸแƒฃแƒ แƒœแƒแƒšแƒ”แƒ‘แƒจแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒฎแƒกแƒแƒ•แƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฃแƒ™แƒ•แƒ” แƒ˜แƒฅ แƒแƒ แƒ˜แƒแƒœ แƒ’แƒแƒ แƒ“แƒแƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ แƒคแƒแƒ แƒ›แƒ˜แƒ—.

แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ Azure DevOps แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒจแƒ˜

แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜

แƒ’แƒแƒ แƒ—แƒแƒ‘แƒ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ แƒ›แƒแƒจแƒ˜แƒœ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒฆแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ แƒ”แƒ แƒ— แƒ”แƒขแƒแƒžแƒ–แƒ” แƒ“แƒ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒขแƒแƒœแƒแƒ— แƒ›แƒ”แƒแƒ แƒ”แƒ–แƒ”.

แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ Azure DevOps แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒจแƒ˜

แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ›แƒแƒ’แƒ•แƒแƒฌแƒแƒ“แƒ”แƒก แƒแƒกแƒ”แƒ—แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœแƒ˜ แƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜ แƒ›แƒแƒฌแƒงแƒ”แƒœแƒ˜แƒšแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒ Google-แƒ˜แƒก แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒžแƒแƒ•แƒ”แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜. แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ แƒฆแƒ›แƒ”แƒ แƒ—แƒก, Azure DevOps-แƒก แƒแƒฅแƒ•แƒก API, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒ•แƒแƒซแƒšแƒ”แƒ•แƒก แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒชแƒแƒขแƒ แƒ›แƒ”แƒขแƒ˜, แƒ•แƒ˜แƒ“แƒ แƒ” แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒจแƒ˜ แƒ˜แƒงแƒ แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ˜.

แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ–แƒแƒ แƒ˜ แƒ’แƒšแƒแƒ‘แƒแƒšแƒฃแƒ แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— แƒฃแƒจแƒฃแƒแƒšแƒแƒ“ แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ“แƒแƒœ. แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜ แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ, แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ–แƒ”แƒช แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜ แƒกแƒ˜แƒขแƒงแƒ•แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒœแƒแƒ—แƒฅแƒ•แƒแƒ›แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒ–แƒ”แƒ›แƒแƒ— แƒแƒฆแƒ˜แƒœแƒ˜แƒจแƒœแƒ. แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ—แƒแƒ•แƒแƒ“ แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒœ, แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, แƒ“แƒแƒแƒ™แƒแƒžแƒ˜แƒ แƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜, แƒ—แƒฃ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ“แƒแƒฎแƒฃแƒ แƒแƒ•แƒ”แƒœ แƒ›แƒแƒฆแƒแƒ–แƒ˜แƒแƒก.

$releaseurl = ('{0}{1}/_apis/release/releases/{2}?api-version=5.0' -f $($env:SYSTEM_TEAMFOUNDATIONSERVERURI), $($env:SYSTEM_TEAMPROJECTID), $($env:RELEASE_RELEASEID)  )

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒชแƒแƒ แƒ˜แƒ”แƒš แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒก, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ, แƒ•แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ— Scope - Release

แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ Azure DevOps แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒจแƒ˜

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ—แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒแƒขแƒแƒ แƒก. แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ แƒ›แƒ˜แƒแƒฅแƒชแƒ˜แƒ”แƒ— แƒแƒ› แƒ”แƒขแƒแƒžแƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒก; แƒ”แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ“แƒแƒ˜แƒœแƒ”แƒ แƒ’แƒ.

แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ Azure DevOps แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒจแƒ˜

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ”แƒขแƒแƒžแƒ–แƒ” แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒชแƒ”แƒ›แƒ— แƒชแƒ•แƒšแƒแƒ“แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒก, แƒ“แƒ˜แƒแƒฎ, แƒ“แƒ˜แƒแƒฎ, แƒ”แƒก แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ, แƒ”แƒก แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—.

แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ Azure DevOps แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒจแƒ˜

แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒกแƒžแƒแƒ˜แƒšแƒ”แƒ แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ

PowerShell

#Script requires stageVar variable in release variables set to Release scope

param ( [string] $expVar )
#region variables
$ReleaseVariableName = 'StageVar'
$releaseurl = ('{0}{1}/_apis/release/releases/{2}?api-version=5.0' -f $($env:SYSTEM_TEAMFOUNDATIONSERVERURI), $($env:SYSTEM_TEAMPROJECTID), $($env:RELEASE_RELEASEID)  )
#endregion


#region Get Release Definition
Write-Host "URL: $releaseurl"
$Release = Invoke-RestMethod -Uri $releaseurl -Headers @{
    Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
#endregion

#region Output current Release Pipeline
Write-Output ('Release Pipeline variables output: {0}' -f $($Release.variables | ConvertTo-Json -Depth 10))
#endregion


#region Update StageVar with new value
$release.variables.($ReleaseVariableName).value = "$expVar"
#endregion

#region update release pipeline
Write-Output ('Updating Release Definition')
$json = @($release) | ConvertTo-Json -Depth 99
Invoke-RestMethod -Uri $releaseurl -Method Put -Body $json -ContentType "application/json" -Headers @{Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" }
#endregion

#region Get updated Release Definition
Write-Output ('Get updated Release Definition')
Write-Host "URL: $releaseurl"
$Release = Invoke-RestMethod -Uri $releaseurl -Headers @{
    Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
#endregion

#region Output Updated Release Pipeline
Write-Output ('Updated Release Pipeline variables output: {0}' -f $($Release.variables | ConvertTo-Json -Depth 10))
#endregion

แƒแƒœ

Bash

INPUT_VAR=$1
RELEASE_VAR=$2

echo Test ID: ${INPUT_VAR}

RELEASE_URL="${SYSTEM_TEAMFOUNDATIONSERVERURI}${SYSTEM_TEAMPROJECTID}/_apis/release/releases/${RELEASE_RELEASEID}?api-version=5.0"

echo release url: $RELEASE_URL

RELEASE_JSON=$(curl -H "Authorization: Bearer $SYSTEM_ACCESSTOKEN" $RELEASE_URL)

OUTPUT=`jq ''.variables.${RELEASE_VAR}.value' = '"${INPUT_VAR}"'' <<< $RELEASE_JSON`

curl -H "Authorization: Bearer $SYSTEM_ACCESSTOKEN" -H "Content-Type: application/json" -X PUT -d "$OUTPUT" $RELEASE_URL

แƒ›แƒแƒ™แƒšแƒ”แƒ“, แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒชแƒ•แƒšแƒแƒ“แƒก myVar, แƒ แƒแƒ’แƒแƒ แƒช แƒจแƒ”แƒงแƒ•แƒแƒœแƒแƒก แƒ“แƒ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก API-แƒก แƒแƒ› แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก stageVar-แƒจแƒ˜ แƒฉแƒแƒกแƒแƒ แƒ—แƒแƒ•แƒแƒ“. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ”แƒขแƒแƒžแƒ–แƒ”, แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ›แƒแƒก.

แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ Azure DevOps แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒจแƒ˜

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒแƒšแƒแƒ‘แƒ แƒ’แƒ•แƒ˜แƒฎแƒกแƒœแƒ˜แƒก แƒ™แƒแƒ แƒ’ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒก, แƒ’แƒแƒ แƒ“แƒ แƒฉแƒ”แƒ›แƒ˜ แƒฌแƒ˜แƒœแƒแƒกแƒ แƒกแƒขแƒแƒขแƒ˜แƒ”แƒ‘แƒ˜, แƒ แƒแƒชแƒ แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ”แƒขแƒแƒžแƒ–แƒ” แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ, แƒจแƒ”แƒ•แƒแƒกแƒ แƒฃแƒšแƒแƒ— แƒ›แƒแƒกแƒ—แƒแƒœ แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒ›แƒแƒœแƒ˜แƒžแƒฃแƒšแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒแƒ“. แƒ“แƒ แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒ”แƒขแƒแƒžแƒ˜ แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒœแƒแƒ“แƒ’แƒฃแƒ แƒ”แƒ‘แƒ. แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ— แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ  แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒก แƒงแƒแƒ•แƒ”แƒš แƒฏแƒ”แƒ แƒ–แƒ” แƒแƒฎแƒแƒš แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ›แƒแƒœแƒฅแƒแƒœแƒ”แƒ‘แƒ–แƒ”. แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒชแƒฎแƒแƒ•แƒ แƒแƒ‘แƒ”แƒœ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 10 แƒฌแƒฃแƒ—แƒ˜, แƒฆแƒ˜แƒ แƒก แƒ”แƒ แƒ—แƒ˜ แƒžแƒ”แƒœแƒ˜.

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜, แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘ YAML แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒ–แƒ”, แƒ‘แƒแƒšแƒ แƒ“แƒ แƒแƒก แƒ˜แƒฅ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒกแƒ˜แƒแƒฎแƒšแƒ”แƒ.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ