Ke hoʻomau nei mākou i kā mākou loiloi i kahi mea hana kupanaha no ka hoʻomohala ʻana no Windows a ʻoi aku, ʻo Azure DevOps. I kēia manawa, me ka loaʻa ʻana o ka pilikia me nā ʻano hoʻololi kaiapuni, ua hoʻoholo wau e kau i nā ʻike āpau i hoʻokahi ʻatikala.
E hoʻomaka ana mai ka ʻoiaʻiʻo he ʻokoʻa kā lākou syntax no kēlā me kēia wahi hoʻokō, e hoʻopau ana me ka nele o ka hiki ke hoʻololi i nā mea hoʻololi mai kahi pae o ka pipeline i kekahi.
E hoʻopaʻa wau i nā hiʻohiʻona nui ma Release Pipelines, no ka mea ʻaʻole i hiki ʻo YAML i laila, a pono wau i ka hana o nā pae he nui a me nā mea hana he nui. Me he mea lā, ua loaʻa kēia i nā Pipelines maʻamau, e like me lākou i ka hana. Ma Pipelines YAML, ua hoʻohui mākou i kahi mea hana kiʻi liʻiliʻi i ka hōʻike kikokikona me nā ʻāpana hiki ke hoʻonohonoho. He maʻalahi loa ia; ʻaʻole pono ʻoe e hele i nā palapala no kēlā me kēia module. Akā e wehewehe wau i kēia ma ka ʻatikala aʻe, akā i kēia manawa eia kahi kiʻi o ka mea hou.
Waiho a hoʻohana
E hoʻomaka kākou me ka loaʻa ʻana o nā mea hoʻololi paʻamau i ka ʻōnaehana. Hoʻomaka lākou, ma muli o ko lākou kumu, me nā huaʻōlelo Release, System, etc. Loaʻa ka papa inoa piha (e like me ka mea i ʻike ʻia, ʻaʻole).
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)
Inā hoʻonoho ʻoe i kahi mea hoʻololi i ka luna kahi i hoʻokō ʻia ai ka hana, ʻo ia ka $(System.AccessToken). Inā makemake ʻoe e hoʻohana iā ia i loko o kahi palapala powershell ma ka ʻelele hoʻokahi, e lilo ia i $ env:SYSTEM_ACCESSTOKEN. Inā ʻaʻole ʻoe, makemake ʻoe e hoʻohana i kēia ʻano hoʻololi ma kekahi mea mamao me ka hoʻohana ʻana i ka PowerShell ma ka hana mīkini i hoʻopaʻa ʻia, pono ʻoe e hāʻawi i kēia ma kahi hoʻopaʻapaʻa i ka palapala me ka hoʻohana ʻana.
ʻAʻole pili nā kānāwai like i kāu mau hoʻololi ponoʻī; eia ʻoe ke kuleana no ka syntax. Hiki ke hoʻonohonoho ʻia nā ʻano like ʻole ma kēlā me kēia hana.
A i ʻole ma ka honua holoʻokoʻa i ka hale kūʻai loli, a laila e hoʻopili iā lākou mai ka hale kūʻai. ʻoluʻolu loa.
Ma ke ʻano he bonus, inā he mea huna loa nā mea hoʻololi, hiki ke mālama ʻia i ke ao Azure i kahi waihona i kapa ʻia ʻo Azure Vault; hiki iā ʻoe ke hoʻopili iā Vault i ka papahana ma ka Hale Waihona Puke.
Ma keʻano laulā, maopopo nā mea āpau me nā loli; ma nā pipeline hiki ke hoʻonohonoho lima ʻia no kēlā me kēia hoʻolaha; i ka hoʻokuʻu ʻana ʻaʻohe hana like. Hiki iā ʻoe ke ʻike i kāu mea e hoʻololi hou ai i ka pipeline i loko o nā logs initialization agent, akā e hoʻomanaʻo ʻoe aia lākou i laila ma ke ʻano hoʻololi.
Nā mea hoʻololi hoʻoikaika kino
Hoʻomaka ka leʻaleʻa ke makemake mākou e loaʻa i kahi waiwai ma kahi pae a hāʻawi i kahi aʻe.
ʻAʻole mākou i hāʻawi ʻia me ia ʻano hana. Akā ʻaʻole ko mākou mau lima no ka luhi a me ke kōkua o Google ua loaʻa kahi hopena. Mahalo i ke Akua, loaʻa iā Azure DevOps kahi API e hiki ai iā mākou ke hana i kahi mea liʻiliʻi ma mua o ka mea i hōʻike ʻia ma ka interface.
No laila, pono mākou i kahi kelepona e hoʻonui i nā ʻano hoʻololi honua, e hana pololei mākou mai loko mai o ka pipeline. Lawe ʻia ka helu wahi mai nā ʻano hoʻololi kaiapuni, nā mea like ʻole kahi huaʻōlelo e pili ana i ka palapala, e like me ka mea i ʻōlelo ʻia ma mua. Hiki iā ʻoe ke hoʻonohonoho iā ʻoe iho a i ʻole, ʻoi aku ka paʻakikī iā lākou inā pani lākou i ka hale kūʻai.
$releaseurl = ('{0}{1}/_apis/release/releases/{2}?api-version=5.0' -f $($env:SYSTEM_TEAMFOUNDATIONSERVERURI), $($env:SYSTEM_TEAMPROJECTID), $($env:RELEASE_RELEASEID) )
Hoʻonoho mākou i ka waiwai ʻole o ka mea hoʻololi a mākou e makemake ai e hoʻololi, hoʻonohonoho i ka Scope - Release
No ka laʻana, hana mākou i kekahi mea hoʻoheheʻe waiwai. E noʻonoʻo i ka syntax o ka haʻi ʻana i kahi loli i loko o kēia pae; ua hoʻokomo ʻia kēia hana.
I ka pae aʻe, hāʻawi mākou i ka loli i ka palapala, ʻae, ʻae, ʻaʻole hiki pololei, pono ma o ka hoʻopaʻapaʻa.
Kākau ma lalo o ka 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
ʻO
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
Ma kahi pōkole, lawe kā mākou palapala i ka myVar hoʻololi i mea hoʻokomo a hoʻohana i ka API e hoʻokomo i ka waiwai o kēia hoʻololi i stageVar. I ka pae aʻe, me ka hoʻohana ʻana i ka syntax variable system, hiki iā mākou ke nānā iā ia.
He mea maʻalahi ka hiʻohiʻona, akā ua wehe ka hana i nā manawa kūpono no mākou, ma kahi o kaʻu mua
I ka ʻatikala aʻe, inā pono, e kamaʻilio wau e pili ana i nā pipelines YAML; ua nui nā mea hoihoi hou ma laila i kēia mau lā.
Source: www.habr.com