Azure DevOps рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╡рд╛рдкрд░рдгреЗ

рдЖрдореНтАНрд╣реА Windows рдЖрдгрд┐ рдЕрдзрд┐рдХ, Azure DevOps рдЪреНтАНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рд╕рд╛рдареА рдЕрджреНтАНрднреБрдд рд╕рд╛рдзрдирд╛рдЪреЗ рдЖрдордЪреЗ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рд╕реБрд░реВ рдареЗрд╡рддреЛ. рдпрд╛рд╡реЗрд│реА, рдкрд░реНрдпрд╛рд╡рд░рдгреАрдп рдмрджрд▓рд╛рдВрдореБрд│реЗ рдЦреВрдк рддреНрд░рд╛рд╕ рд╕рд╣рди рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧрд▓рд╛, рдореА рд╕рд░реНрд╡ рдЕрдиреБрднрд╡ рдПрдХрд╛ рд▓реЗрдЦрд╛рдд рдареЗрд╡рдгреНрдпрд╛рдЪреЗ рдард░рд╡рд▓реЗ.

рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдгрд╛рд╕рд╛рдареА рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗ рднрд┐рдиреНрди рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рдЖрд╣реЗ рдпрд╛ рд╡рд╕реНрддреБрд╕реНрдерд┐рддреАрдкрд╛рд╕реВрди рд╕реБрд░реБрд╡рд╛рдд рдХрд░реВрди, рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдЪреНрдпрд╛ рдПрдХрд╛ рдЯрдкреНрдкреНрдпрд╛рддреВрди рджреБрд╕рд░реНтАНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рдд рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдорд╛рдирдХ рдХреНрд╖рдорддрд╛ рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ.

рдореА рдЖрд░рдХреНрд╖рдг рдХрд░реЗрди рдХреА рдореБрдЦреНрдп рдЙрджрд╛рд╣рд░рдгреЗ рд░рд┐рд▓реАрдЭ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╡рд░ рдЕрд╕рддреАрд▓, рдХрд╛рд░рдг YAML рдЕрджреНрдпрд╛рдк рддреЗрдереЗ рдкреЛрд╣реЛрдЪрд▓реЗрд▓реЗ рдирд╛рд╣реА рдЖрдгрд┐ рдорд▓рд╛ рдЕрдиреЗрдХ рдЯрдкреНрдкреНрдпрд╛рдВрдЪреА рдЖрдгрд┐ рдЕрдиреЗрдХ рдХрд▓рд╛рдХреГрддреАрдВрдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╣реЗ, рдЕрд╕реЗ рджрд┐рд╕рддреЗ рдХреА, рдирд┐рдпрдорд┐рдд рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЭрд╛рд▓реЗ рдЖрд╣реЗ, рдЬреЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдордзреНрдпреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХрдкрдгреЗ рд╕рдорд╛рди рдЖрд╣реЗ. рдкрд╛рдЗрдкрд▓рд╛рдЗрди YAML рдордзреНрдпреЗ, рдЖрдореНрд╣реА рдордЬрдХреВрд░ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрд╛рд╕рд╛рдареА рдПрдХ рд▓рд╣рд╛рди рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЯреВрд▓рдЯрд┐рдк рдЬреЛрдбрд▓реА рдЖрд╣реЗ рдЬреА рд╕реЗрдЯ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ. рд╣реЗ рдЦреВрдк рд╕реЛрдпреАрд╕реНрдХрд░ рдЖрд╣реЗ; рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓рд╕рд╛рдареА рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдЬрд╛рд╡реЗ рд▓рд╛рдЧрдгрд╛рд░ рдирд╛рд╣реА. рдкрдг рдореА рдкреБрдвреАрд▓ рд▓реЗрдЦрд╛рдд рдпрд╛рдЪреЗ рд╡рд░реНрдгрди рдХрд░реЗрди, рдкрд░рдВрддреБ рд╕рдзреНрдпрд╛ рдпреЗрдереЗ рдирд╛рд╡рд┐рдиреНрдпрд╛рдЪреЗрдЪ рдЪрд┐рддреНрд░ рдЖрд╣реЗ.

Azure DevOps рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╡рд╛рдкрд░рдгреЗ

рд╕реНрдЯреЛрд░реЗрдЬ рдЖрдгрд┐ рд╡рд╛рдкрд░

рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рдбреАрдлреЙрд▓реНрдЯ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдЖрд╣реЗрдд рдпрд╛ рд╡рд╕реНрддреБрд╕реНрдерд┐рддреАрдкрд╛рд╕реВрди рд╕реБрд░реБрд╡рд╛рдд рдХрд░реВрдпрд╛. рддреЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдЙрддреНрдкрддреНрддреАрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди, рд░рд┐рд▓реАрдЭ, рд╕рд┐рд╕реНрдЯрдо рдЗрддреНрдпрд╛рджреА рд╢рдмреНрджрд╛рдВрд╕рд╣ рд╕реБрд░реВ рдХрд░рддрд╛рдд. рд╕рдВрдкреВрд░реНрдг рдпрд╛рджреА (рдЬрд╕реЗ рдмрд╛рд╣реЗрд░ рд╡рд│рддреЗ, рдирд╛рд╣реА), рдпреЗрдереЗ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг. рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рдЕрд╕рд▓реЗрд▓реЗ рд╕рд░реНрд╡ рд╕реНрдХрд┐рдЭреЛрдлреНрд░реЗрдирд┐рдпрд╛ рдЦрд╛рд▓реАрд▓ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рддреАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рджреНрд╡рд╛рд░реЗ рд╕реНрдкрд╖реНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ. рддреНрдпрд╛рдЪ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рд▓рд╛ рдЖрдкрдг рдХреЛрдареЗ рдХреЙрд▓ рдХрд░рддреЛ рдпрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рддреАрди рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЖрд╣реЗрдд.

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) рдЖрд╣реЗ. рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рдЪ рдПрдЬрдВрдЯрд╡рд░реАрд▓ рдкреЙрд╡рд░рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдордзреНрдпреЗ рд╡рд╛рдкрд░рд╛рдпрдЪреЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреЗ рдЖрдзреАрдкрд╛рд╕реВрдирдЪ $env:SYSTEM_ACCESTOKEN рдЕрд╕реЗрд▓. рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛, рджреЗрд╡рд╛рдиреЗ рдордирд╛рдИ рдХреЗрд▓реА рддрд░, рдкреЙрд╡рд░рд╢реЗрд▓ рдСрди рдЯрд╛рд░реНрдЧреЗрдЯ рдорд╢реАрди рдЯрд╛рд╕реНрдХ рд╡рд╛рдкрд░реВрди рдХрд╛рд╣реА рд░рд┐рдореЛрдЯ рд╣реЛрд╕реНрдЯрд╡рд░ рд╣реЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╡рд╛рдкрд░реВ рдЗрдЪреНрдЫрд┐рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реЗ рд╡рд╛рдкрд░реВрди рд╕реНрдХреНрд░рд┐рдкреНрдЯрдордзреНрдпреЗ рдпреБрдХреНрддрд┐рд╡рд╛рджрд╛рджреНрд╡рд╛рд░реЗ рдкрд╛рд╕ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдорд╛рдЭреЗ рдкреИрд╕реЗ. bash рд╕рд╣ рд╣реЗ рд╕реЛрдкреЗ рдЖрд╣реЗ, рддреБрдореНрд╣реА рдлрдХреНрдд $SYSTEM_ACCESTOKEN рд╡рд┐рддрд░реНрдХ рдЖрдгрд┐ рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рд╡рд╛рдкрд░реВрди рдЖрдд рдкрд╛рд╕ рдХрд░реВ рд╢рдХрддрд╛.

рд╕рдорд╛рди рдХрд╛рдпрджреЗ рддреБрдордЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рд╡рд░ рд▓рд╛рдЧреВ рд╣реЛрдд рдирд╛рд╣реАрдд; рдпреЗрдереЗ рддреБрдореНрд╣реА рд╕рд┐рдВрдЯреЕрдХреНрд╕рд╕рд╛рдареА рдЖрдзреАрдЪ рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣рд╛рдд. рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдкреНрд░рддреНрдпреЗрдХ рдЯрд╛рд╕реНрдХрдордзреНрдпреЗ рд╕реНрдерд╛рдирд┐рдХ рдкрд╛рддрд│реАрд╡рд░ рд╕реЗрдЯ рдХрд░рддрд╛ рдпреЗрддрд╛рдд.

Azure DevOps рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╡рд╛рдкрд░рдгреЗ

рдХрд┐рдВрд╡рд╛ рдЬрд╛рдЧрддрд┐рдХ рд╕реНрддрд░рд╛рд╡рд░ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╕реНрдЯреЛрдЕрд░рд╡рд░, рдЖрдгрд┐ рдирдВрддрд░ рддреНрдпрд╛рдВрдирд╛ рд╕реНрдЯреЛрдЕрд░рдордзреВрди рд▓рд┐рдВрдХ рдХрд░рд╛. рдЕрдЧрджреА рдЖрд░рд╛рдорд╛рдд.

Azure DevOps рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╡рд╛рдкрд░рдгреЗ

рдмреЛрдирд╕ рдореНрд╣рдгреВрди, рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдЕрддрд┐рд╢рдп рдЧреБрдкреНрдд рдЕрд╕рд▓реНрдпрд╛рд╕, рддреЗ Azure рдХреНрд▓рд╛рдЙрдбрдордзреНрдпреЗ Azure Vault рдирд╛рд╡рд╛рдЪреНрдпрд╛ рд╕реНрдЯреЛрд░реЗрдЬрдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд; рддреБрдореНрд╣реА Vault рд▓рд╛ рд▓рд╛рдпрдмреНрд░рд░реАрдордзреАрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯрд╢реА рд▓рд┐рдВрдХ рдХрд░реВ рд╢рдХрддрд╛.

Azure DevOps рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╡рд╛рдкрд░рдгреЗ

рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рд╕рд╣ рд╕рд░реНрд╡ рдХрд╛рд╣реА рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ; рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рддреЗ рдЕрджреНрдпрд╛рдк рдкреНрд░рддреНрдпреЗрдХ рд▓реЙрдиреНрдЪрд╕рд╛рдареА рд╡реНрдпрдХреНрддрд┐рдЪрд▓рд┐рддрдкрдгреЗ рд╕реЗрдЯ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд; рд░рд┐рд▓реАрдЭрдордзреНрдпреЗ рдЕрд╢реА рдХреЛрдгрддреАрд╣реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдирд╛рд╣реА. рдПрдЬрдВрдЯ рдЗрдирд┐рд╢рд┐рдПрд▓рд╛рдпрдЭреЗрд╢рди рд▓реЙрдЧрдордзреНрдпреЗ рддреБрдореНрд╣реА рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рдХрд╛рдп рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рдд рдЖрд╣рд╛рдд рддреЗ рддреБрдореНрд╣реА рдкрд╛рд╣реВ рд╢рдХрддрд╛, рдкрд░рдВрддреБ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА рддреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рд╕реНрд╡рд░реВрдкрд╛рдд рдЖрдзреАрдкрд╛рд╕реВрдирдЪ рдЖрд╣реЗрдд.

Azure DevOps рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╡рд╛рдкрд░рдгреЗ

рдбрд╛рдпрдиреЕрдорд┐рдХ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕

рдордЬрд╛ рд╕реБрд░реВ рд╣реЛрддреЗ рдЬреЗрд╡реНрд╣рд╛ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдПрдХрд╛ рдЯрдкреНрдкреНрдпрд╛рдд рдХрд╛рд╣реА рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рд╛рдпрдЪреЗ рдЕрд╕рддреЗ рдЖрдгрд┐ рддреЗ рджреБрд╕рд▒реНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рдд рджреНрдпрд╛рдпрдЪреЗ рдЕрд╕рддреЗ.

Azure DevOps рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╡рд╛рдкрд░рдгреЗ

рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрд╢реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реА рдирд╛рд╣реА. рдкрдг рдЖрдордЪреЗ рд╣рд╛рдд рдХрдВрдЯрд╛рд│рд╡рд╛рдгреНрдпрд╛рдВрд╕рд╛рдареА рдирд╛рд╣реАрдд рдЖрдгрд┐ рдЧреБрдЧрд▓рдЪреНрдпрд╛ рдорджрддреАрдиреЗ рдпрд╛рд╡рд░ рдЙрдкрд╛рдп рд╕рд╛рдкрдбрд▓рд╛. рджреЗрд╡рд╛рдЪреЗ рдЖрднрд╛рд░, 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 рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╡рд╛рдкрд░рдгреЗ

рд╕реНрдкреЙрдпрд▓рд░ рдЕрдВрддрд░реНрдЧрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ

рдкреЙрд╡рд░рд╢реЗрд▓

#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

рдХрд┐рдВрд╡рд╛

рдмреЕрд╢

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 рд╡рд╛рдкрд░рддреЗ. рдкреБрдвреАрд▓ рдЪрд░рдгрд╛рдд, рд╕рд┐рд╕реНрдЯрдо рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╕рд┐рдВрдЯреЕрдХреНрд╕ рд╡рд╛рдкрд░реВрди, рдЖрдкрдг рддреЗ рдкрд╛рд╣реВ рд╢рдХрддреЛ.

Azure DevOps рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╡рд╛рдкрд░рдгреЗ

рдЙрджрд╛рд╣рд░рдг рдЕрдЧрджреА рд╕реЛрдкреЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдорд╛рдЭреНрдпрд╛ рдорд╛рдЧреАрд▓ рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рд╕рдВрдзреА рдЙрдШрдбрддреЗ рд▓реЗрдЦ, рдЬреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА рдЪрд╛рдЪрдгреАрдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддреЛ, рддреЗрд╡реНрд╣рд╛ рддреНрдпрд╛рдЪреНрдпрд╛рд╕рд╣ рдЖрдгрдЦреА рдХрд╛рд╣реА рдлреЗрд░рдлрд╛рд░ рдХрд░реВ рд╢рдХрддреЛ рдЖрдгрд┐ рдЕрдиреЗрдХ рд╕рдорд╛рдВрддрд░. рдЖрдгрд┐ рд╢реЗрд╡рдЯрдЪрд╛ рдЯрдкреНрдкрд╛ рдореНрд╣рдгрдЬреЗ рддреЛ рдирд╖реНрдЯ рдХрд░рдгреЗ. рдЖрддрд╛ рдЖрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рдирд╡реАрди рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирд╡рд░ рдЙрддреНрдкрд╛рджрдирд╛рдЪреА рдСрдЯреЛрдЯреЗрд╕реНрдЯ рдЪрд╛рд▓рд╡рддреЛ. рддреЗ рд╕реБрдорд╛рд░реЗ 10 рдорд┐рдирд┐рдЯреЗ рдЬрдЧрддрд╛рдд рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд╛, рддреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдкреИрд╕рд╛ рдЦрд░реНрдЪ рд╣реЛрддреЛ.

рдкреБрдвреАрд▓ рд▓реЗрдЦрд╛рдд, рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕, рдореА YAML рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдмрджреНрджрд▓ рдмреЛрд▓реЗрди; рдЕрд▓реАрдХрдбреЗ рддреЗрдереЗ рдмрд░реЗрдЪ рдордиреЛрд░рдВрдЬрдХ рдирд╡рдХрд▓реНрдкрдирд╛ рдЖрд╣реЗрдд.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛