แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžขแžแŸแžšแž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ†แž–แž„แŸ‹ Azure DevOps

แž™แžพแž„แž”แž“แŸ’แžแž€แžถแžšแž–แžทแž“แžทแžแŸ’แž™แžกแžพแž„แžœแžทแž‰แžšแž”แžŸแŸ‹แž™แžพแž„แžขแŸ†แž–แžธแžงแž”แž€แžšแžŽแŸแžŠแŸแžขแžŸแŸ’แž…แžถแžšแŸ’แž™แž˜แžฝแž™แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž€แŸ’แžšแŸ„แž˜ Windows แž“แžทแž„แž…แŸ’แžšแžพแž“แž‘แŸ€แž Azure DevOpsแŸ” แž›แžพแž€แž“แŸแŸ‡ แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแžแžŸแŸŠแžผแž‡แžถแž˜แžฝแž™แžขแžแŸแžšแž”แžšแžทแžŸแŸ’แžแžถแž“ แžแŸ’แž‰แžปแŸ†แž”แžถแž“แžŸแž˜แŸ’แžšแŸแž…แž…แžทแžแŸ’แžแž…แž˜แŸ’แžšแžถแž‰แŸ‹แž”แž‘แž–แžทแžŸแŸ„แž’แž“แŸแžšแž”แžŸแŸ‹แžแŸ’แž‰แžปแŸ†แž‘แŸ…แž‡แžถแžขแžแŸ’แžแž”แž‘แžแŸ‚แž˜แžฝแž™แŸ”

แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž–แžธแž€แžถแžšแž–แžทแžแžŠแŸ‚แž›แžแžถแž–แžฝแž€แž‚แŸแž˜แžถแž“แžœแžถแž€แŸ’แž™แžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แž•แŸ’แžŸแŸแž„แž‚แŸ’แž“แžถแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แžšแžทแž™แžถแž€แžถแžŸแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž“แžธแž˜แžฝแž™แŸ—แžŠแŸ„แž™แž”แž‰แŸ’แž…แž”แŸ‹แžŠแŸ„แž™แž€แž„แŸ’แžœแŸ‡แžŸแž˜แžแŸ’แžแž—แžถแž–แžŸแŸ’แžแž„แŸ‹แžŠแžถแžšแž€แŸ’แž“แžปแž„แž€แžถแžšแž•แŸ’แž‘แŸแžšแžขแžแŸแžšแž–แžธแžŠแŸ†แžŽแžถแž€แŸ‹แž€แžถแž›แž˜แžฝแž™แž“แŸƒแž”แŸ†แž–แž„แŸ‹แž‘แŸ…แž˜แžฝแž™แž‘แŸ€แžแŸ”

แžแŸ’แž‰แžปแŸ†แž“แžนแž„แž’แŸ’แžœแžพแž€แžถแžšแž€แž€แŸ‹แž‘แžปแž€แžŠแŸ‚แž›แžงแž‘แžถแž แžšแžŽแŸแžŸแŸ†แžแžถแž“แŸ‹แŸ—แž“แžนแž„แž˜แžถแž“แž“แŸ…แž›แžพ Release Pipelines แž–แžธแž–แŸ’แžšแŸ„แŸ‡ YAML แž˜แžทแž“แž‘แžถแž“แŸ‹แž‘แŸ…แžŠแž›แŸ‹แž‘แžธแž“แŸ„แŸ‡แž“แŸ…แžกแžพแž™แž‘แŸ แž แžพแž™แžแŸ’แž‰แžปแŸ†แžแŸ’แžšแžผแžœแž€แžถแžšแž˜แžปแžแž„แžถแžšแž‡แžถแž…แŸ’แžšแžพแž“แžŠแŸ†แžŽแžถแž€แŸ‹แž€แžถแž› แž“แžทแž„แžœแžแŸ’แžแžปแž”แžปแžšแžถแžŽแž‡แžถแž…แŸ’แžšแžพแž“แŸ” แžœแžถแž แžถแž€แŸ‹แž”แžธแžŠแžผแž…แž‡แžถแž˜แžถแž“แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ†แž–แž„แŸ‹แž’แž˜แŸ’แž˜แžแžถ แžŠแŸ‚แž›แžœแžถแžŸแŸ’แž˜แžพแž“แžนแž„แž–แžฝแž€แžœแžถแž“แŸ…แž€แŸ’แž“แžปแž„แž˜แžปแžแž„แžถแžšแŸ” แž“แŸ…แž€แŸ’แž“แžปแž„ Pipelines 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)แŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž…แž„แŸ‹แž”แŸ’แžšแžพแžœแžถแž“แŸ…แž€แŸ’แž“แžปแž„แžŸแŸ’แž‚แŸ’แžšแžธแž” 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)  )

แž™แžพแž„แž€แŸ†แžŽแžแŸ‹แžแž˜แŸ’แž›แŸƒแž‘แž‘แŸแž“แŸƒแžขแžแŸแžšแžŠแŸ‚แž›แž™แžพแž„แž…แž„แŸ‹แž•แŸ’แž‘แŸแžš แž€แŸ†แžŽแžแŸ‹แžœแžทแžŸแžถแž›แž—แžถแž– - แž…แŸแž‰แž•แŸ’แžŸแžถแž™

แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžขแžแŸแžšแž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ†แž–แž„แŸ‹ Azure DevOps

แžงแž‘แžถแž แžšแžŽแŸ แž™แžพแž„แž”แž„แŸ’แž€แžพแžแžแž˜แŸ’แž›แŸƒแž…แŸƒแžŠแž“แŸ’แž™แž˜แžฝแž™แž…แŸ†แž“แžฝแž“แŸ” แž™แž€แž…แžทแžแŸ’แžแž‘แžปแž€แžŠแžถแž€แŸ‹แž…แŸ†แž–แŸ„แŸ‡แžœแžถแž€แŸ’แž™แžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แž“แŸƒแž€แžถแžšแž”แŸ’แžšแž€แžถแžŸแžขแžแŸแžšแž“แŸ…แž€แŸ’แž“แžปแž„แžŠแŸ†แžŽแžถแž€แŸ‹แž€แžถแž›แž“แŸแŸ‡ แž˜แžปแžแž„แžถแžšแž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แžŽแŸ‚แž“แžถแŸ†แŸ”

แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžขแžแŸแžšแž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ†แž–แž„แŸ‹ Azure DevOps

แž“แŸ…แž‡แŸ†แž แžถแž“แž”แž“แŸ’แž‘แžถแž”แŸ‹ แž™แžพแž„แž”แž‰แŸ’แž‡แžผแž“แžขแžแŸแžšแž‘แŸ…แžŸแŸ’แž‚แŸ’แžšแžธแž” แž”แžถแž‘/แž…แžถแžŸ แž”แžถแž‘ แžœแžถแž˜แžทแž“แžขแžถแž…แž‘แŸ…แžšแžฝแž…แžŠแŸ„แž™แž•แŸ’แž‘แžถแž›แŸ‹แž‘แŸ แžœแžถแžแŸ’แžšแžผแžœแžแŸ‚แž†แŸ’แž›แž„แž€แžถแžแŸ‹แžขแžถแž‚แžปแž™แž˜แŸ‰แž„แŸ‹แž˜แžฝแž™แŸ”

แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžขแžแŸแžšแž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ†แž–แž„แŸ‹ Azure DevOps

แžŸแŸ’แž‚แŸ’แžšแžธแž”แž“แŸ…แž€แŸ’แžšแŸ„แž˜ spoiler

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

แžฌ

แžแžผแž…

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

แž‘แžทแž‰แž€แžถแžšแž”แž„แŸ’แž แŸ„แŸ‡แžŠแŸ‚แž›แžขแžถแž…แž‘แžปแž€แž…แžทแžแŸ’แžแž”แžถแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‚แŸแž แž‘แŸ†แž–แŸแžšแžŠแŸ‚แž›แž˜แžถแž“แž€แžถแžšแž€แžถแžšแž–แžถแžš DDoS, แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ VPS VDS ๐Ÿ”ฅ แž‘แžทแž‰แžŸแŸแžœแžถแž”แž„แŸ’แž แŸ„แŸ‡แž‚แŸแž แž‘แŸ†แž–แŸแžšแžŠแŸ‚แž›แžขแžถแž…แž‘แžปแž€แž…แžทแžแŸ’แžแž”แžถแž“แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž€แžถแžšแž–แžถแžš DDoS แž“แžทแž„แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ VPS VDS | ProHoster