Waxaan sii wadeynaa dib u eegistayada qalab cajiib ah oo loogu talagalay horumarinta Windows iyo in ka badan, Azure DevOps. Markan, aniga oo wax badan la kulmay doorsoomayaasha deegaanka, waxaan go'aansaday inaan khibradda oo dhan ku dhejiyo hal maqaal.
Laga bilaabo xaqiiqda ah in ay leeyihiin syntax kala duwan ee deegaan kasta oo fulin ah, oo ku dhammaanaya la'aanta awoodda caadiga ah ee lagu wareejinayo doorsoomayaasha hal marxalad oo dhuumo ah oo kale.
Waxaan sameyn doonaa boos celin ah in tusaalooyinka ugu muhiimsan ay ku jiri doonaan Dhuumaha Siideynta, sababtoo ah YAML weli halkaas ma gaarin, waxaanan u baahanahay shaqeynta marxalado badan iyo waxyaabo badan oo farshaxan ah. Tani, waxay u muuqataa, inay noqotay mid laga heli karo Dhuumaha caadiga ah, kuwaas oo si dhab ah u siman iyaga xagga shaqeynta. Pipelines YAML, waxaan ku darnay qalab yar oo garaaf ah matalaadda qoraalka oo leh cabbirro la dejin karo. Aad bay u habboon tahay; uma baahnid inaad dhex marto dukumeentiyada cutub kasta. Laakiin tan waxaan ku tilmaami doonaa maqaalka soo socda, laakiin hadda halkan waa sawirka hal-abuurka laftiisa.
Kaydinta iyo isticmaalka
Aan ku bilowno xaqiiqda ah in aan leenahay doorsoomayaasha caadiga ah ee nidaamka. Waxay ku bilaabaan, iyadoo ku xiran asalkooda, ereyada sii deynta, nidaamka, iwm. Liiska buuxa (sida ay soo baxday, maya), ayaa laga heli karaa
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)
Haddii aad dejiso doorsoome wakiilka hawsha lagu fuliyay, waa $(System.AccessToken). Haddii aad rabto in aad ku dhex isticmaashid qoraalka powershell isla wakiilka, waxay mar hore noqon doontaa $env:SYSTEM_ACCESSTOKEN. Haddii adiga, Ilaahay ha xafido, aad rabto inaad u isticmaasho doorsoomahan qaar ka mid ah martigeliyaha fog adoo isticmaalaya PowerShell hawsha mishiinnada bartilmaameedka ah, waxaad u baahan tahay inaad tan u gudubto dood qoraalka adoo isticmaalaya
Xeerar isku mid ah kuma khuseeyaan doorsoomayaashaada, halkan adigaa mar hore masuul ka ah syntax. Kala duwanaansho ayaa loo dejin karaa gudaha hawl kasta.
Ama caalami ahaan dukaanka variable, ka dibna ku xidho dukaanka. Aad u raaxo leh.
Gunno ahaan, haddii doorsoomayaashu ay yihiin kuwo sir ah, waxaa lagu kaydin karaa daruuraha Azure ee kaydinta loo yaqaan Azure Vault; waxaad ku xidhi kartaa Vault mashruuca maktabadda.
Guud ahaan, wax walbaa way ku cad yihiin doorsoomayaasha, tuubooyinka weli gacanta ayaa lagu dejin karaa bilow kasta; marka la sii daayo ma jiro hawl noocaas ah. Waxa aad mar kale ku arki kartaa waxa aad ku wareejinayso dhuumaha galka bilowga wakiilka, laakiin maskaxda ku hay in ay hore ugu jireen qaab la beddelay.
Isbeddellada Dhaqdhaqaaqa
Madadaalada waxay bilaabataa marka aan rabno inaan helno qiime hal mar ah oo aan u gudubno kan xiga.
Nalooma siin shaqadan oo kale. Laakin gacmaheenu caajis ma aha oo Google-ka ayaa xal la helay. Ilaah baa mahad leh, Azure DevOps waxay leedahay API taasoo noo ogolaanaysa inaan samayno wax yar oo ka badan waxa lagu sawiray interface-ka.
Markaa, waxaan u baahan doonaa wicitaan si loo cusboonaysiiyo doorsoomayaasha caalamiga ah, taas oo aan si toos ah uga samayn doono gudaha dhuumaha. Cinwaanka waxaa laga soo qaatay doorsoomayaasha deegaanka, isla kuwa aan kelmad ku jirin dukumeentiga, sidaan hore u soo sheegnay. Waad dejin kartaa laftaada ama, waxa ka sii badan, hardcode haddii ay xidhaan dukaanka.
$releaseurl = ('{0}{1}/_apis/release/releases/{2}?api-version=5.0' -f $($env:SYSTEM_TEAMFOUNDATIONSERVERURI), $($env:SYSTEM_TEAMPROJECTID), $($env:RELEASE_RELEASEID) )
Waxaan dejinay qiimaha madhan doorsoomayaasha aan rabno inaan wareejinno, dejinno Baaxadda - Siideynta
Tusaale ahaan, waxaanu samaynaa wax dhaliye qiime random ah. Fiiro gaar ah u yeelo habraaca ku dhawaaqida doorsoomayaasha gudaha marxaladan;shaqayntan ayaa la soo bandhigay.
Talaabada xigta, waxaan u gudbinaa doorsoomiyaha qoraalka, haa, haa, si toos ah uma suurta galeyso, waa inay noqotaa mid muran ah.
Script hoos qasbi
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
Ama
Man uted
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
Isku soo wada duuboo, qoraalkayagu waxa uu u qaataa doorsoomiyaha myVar sidii galinta oo waxa uu isticmaalaa API si uu u geliyo qiimaha doorsoomahan stageVar. Talaabada xigta, annagoo adeegsanayna nidaamka doorsoomayaasha syntax, waan eegi karnaa.
Tusaalaha waa wax fudud, laakiin shaqeyntu waxay noo furaysaa fursado wanaagsan, marka lagu daro kii hore
Maqaalka soo socda, haddii loo baahdo, waxaan ka hadli doonaa dhuumaha YAML; waxaa jiray waxyaabo badan oo cusub oo xiiso leh beryahan dambe.
Source: www.habr.com