Anyị na-aga n'ihu nyochaa ngwa ọrụ magburu onwe ya maka mmepe maka Windows na ndị ọzọ, Azure DevOps. Oge a, ebe m na-ata ahụhụ dị ukwuu na mgbanwe gburugburu ebe obibi, ekpebiri m itinye ahụmahụ niile n'ime otu isiokwu.
Malite n'eziokwu na ha nwere syntax dị iche iche maka ebe ọ bụla a na-egbu egbu, na-ejedebe na enweghị ikike ọkọlọtọ iji nyefee mgbanwe site n'otu ọkwa nke pipeline gaa na nke ọzọ.
M ga-edebe ndoputa na isi ihe atụ ga-abụ na tọhapụ pipelines, n'ihi na YAML erutebeghị ebe ahụ, na m chọrọ ọrụ nke ọtụtụ nkebi na ọtụtụ artifacts. Nke a, ọ dị ka ọ dị na Pipeline mgbe niile, nke na-eme ka ha nhata na arụ ọrụ. Na Pipelines YAML, anyị gbakwunyere obere ihe osise eserese na nnochite anya ederede nwere oke nwere ike ịtọ. Ọ dị mma nke ukwuu; ịkwesighi ịgafe akwụkwọ maka modul ọ bụla. Ma m ga-akọwa nke a n'isiokwu na-esonụ, ma ugbu a, ebe a bụ foto nke ọhụrụ n'onwe ya.
Nchekwa na ojiji
Ka anyị malite n'eziokwu na anyị nwere mgbanwe ndabara na sistemụ. Ha na-amalite, dabere na mmalite ha, jiri okwu Mwepụta, Sistemu, wdg. Ndepụta zuru ezu (dị ka ọ na-apụta, ọ bụghị), dị na
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)
Ọ bụrụ na ịtọọ mgbanwe na onye nnọchi anya nke a na-arụ ọrụ ahụ, ọ bụ $(System.AccessToken). Ọ bụrụ na ịchọrọ iji ya n'ime edemede powershell na otu onye nnọchite anya, ọ ga-abụrịrị $env:SYSTEM_ACCESSTOKEN. Ọ bụrụ na ị, Chukwu ekwela, ịchọrọ iji mgbanwe a na ụfọdụ ndị ọbịa dịpụrụ adịpụ na-eji PowerShell na ọrụ igwe ebumnuche, ịkwesịrị ịgafe nke a site na arụmụka na edemede ahụ site na iji.
Otu iwu ahụ anaghị emetụta mgbanwe nke gị; ebe a ị na-ahụ maka syntax ahụ. Enwere ike ịtọ mgbanwe na mpaghara na ọrụ ọ bụla.
Ma ọ bụ n'ụwa niile na ụlọ ahịa agbanwe agbanwe, wee jikọta ha na ụlọ ahịa ahụ. Dị nnọọ mma.
Dị ka ego, ọ bụrụ na mgbanwe ndị ahụ bụ ihe nzuzo, enwere ike ịchekwa ha na igwe ojii Azure na nchekwa a na-akpọ Azure Vault; ị nwere ike jikọta Vault na ọrụ ahụ na Library.
N'ozuzu, ihe niile doro anya na mgbanwe dị iche iche; na pipeline ha ka nwere ike iji aka ha mee maka mmalite ọ bụla; na ntọhapụ ọ dịghị ọrụ dị otú ahụ. Ị nwere ike ịhụ ihe ị na-ebufe na pipeline ọzọ na ndekọ mmalite mmalite, mana buru n'uche na ha adịlarị n'ụdị ntụgharị.
Mgbanwe dị iche iche
The fun na-amalite mgbe anyị chọrọ ịnata ụfọdụ uru na otu ogbo ma nyefee ya na-esonụ.
E nyeghị anyị ụdị ọrụ ahụ. Ma aka anyị abụghị maka ike ọgwụgwụ na site n'enyemaka nke Google a chọtara ngwọta. Daalụ Chineke, Azure DevOps nwere API nke na-enye anyị ohere ime ntakịrị karịa ihe e gosipụtara na interface ahụ.
Ya mere, anyị ga-achọ oku iji melite mgbanwe mgbanwe ụwa, nke anyị ga-eme ozugbo site na pipeline. A na-ewere adreesị ahụ site na mgbanwe gburugburu ebe obibi, otu ndị ahụ na-enweghị okwu gbasara ya na akwụkwọ ahụ, dịka ekwuru na mbụ. Ị nwere ike ịtọ ha n'onwe gị ma ọ bụ, ihe ọzọ, hardcode ha ma ọ bụrụ na ha mechie ụlọ ahịa ahụ.
$releaseurl = ('{0}{1}/_apis/release/releases/{2}?api-version=5.0' -f $($env:SYSTEM_TEAMFOUNDATIONSERVERURI), $($env:SYSTEM_TEAMPROJECTID), $($env:RELEASE_RELEASEID) )
Anyị na-edobe uru efu nke mgbanwe anyị chọrọ ịnyefe, setịpụ Oke - Ntọhapụ
Dị ka ihe atụ, anyị na-eme ụfọdụ random uru generator. Lezienụ anya na syntax nke ikwuwapụta mgbanwe n'ime ọkwa a; ewebata ọrụ a.
Na nzọụkwụ ọzọ, anyị na-enyefe mgbanwe na edemede, ee, ee, ọ gaghị ekwe omume ozugbo, ọ ghaghị ịbụ site na arụmụka.
Ederede n'okpuru 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
Ma ọ bụ
kụọ
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
Na nkenke, edemede anyị na-ewere myVar agbanwe dị ka ntinye wee jiri API tinye uru nke mgbanwe a n'ime stageVar. Na nzọụkwụ ọzọ, iji usoro mgbanwe syntax, anyị nwere ike ile ya anya.
Ihe atụ dị nnọọ mfe, ma ọrụ na-emepere anyị ohere dị mma, na mgbakwunye na nke m gara aga
N'isiokwu na-esote, ọ bụrụ na ọ dị mkpa, m ga-ekwu maka pipeline YAML; enweela ọtụtụ ihe ọhụrụ na-adọrọ mmasị ebe ahụ n'oge na-adịbeghị anya.
isi: www.habr.com