Isticmaalka doorsoomayaasha dhuumaha Azure DevOps

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.

Isticmaalka doorsoomayaasha dhuumaha Azure DevOps

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 dukumentiyo. Dhammaan schizophrenia ee leh syntax waxaa lagu muujiyey tusaale dukumentiyada hoose. Doorsoome isku mid ah wuxuu leeyahay saddex matalaad, iyadoo ku xiran meesha aan ugu yeerno.

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 lacagtaydii. Bash way ka sahlan tahay, waxaad si fudud ugu gudbin kartaa gudaha adiga oo isticmaalaya doodda iyo syntax $SYSTEM_ACCESSTOKEN.

Xeerar isku mid ah kuma khuseeyaan doorsoomayaashaada, halkan adigaa mar hore masuul ka ah syntax. Kala duwanaansho ayaa loo dejin karaa gudaha hawl kasta.

Isticmaalka doorsoomayaasha dhuumaha Azure DevOps

Ama caalami ahaan dukaanka variable, ka dibna ku xidho dukaanka. Aad u raaxo leh.

Isticmaalka doorsoomayaasha dhuumaha Azure DevOps

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.

Isticmaalka doorsoomayaasha dhuumaha Azure DevOps

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.

Isticmaalka doorsoomayaasha dhuumaha Azure DevOps

Isbeddellada Dhaqdhaqaaqa

Madadaalada waxay bilaabataa marka aan rabno inaan helno qiime hal mar ah oo aan u gudubno kan xiga.

Isticmaalka doorsoomayaasha dhuumaha Azure DevOps

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

Isticmaalka doorsoomayaasha dhuumaha Azure DevOps

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.

Isticmaalka doorsoomayaasha dhuumaha Azure DevOps

Talaabada xigta, waxaan u gudbinaa doorsoomiyaha qoraalka, haa, haa, si toos ah uma suurta galeyso, waa inay noqotaa mid muran ah.

Isticmaalka doorsoomayaasha dhuumaha Azure DevOps

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.

Isticmaalka doorsoomayaasha dhuumaha Azure DevOps

Tusaalaha waa wax fudud, laakiin shaqeyntu waxay noo furaysaa fursado wanaagsan, marka lagu daro kii hore maqaallo, Marka aan samayn karno mashiinka farsamada ee marxaladda koowaad ee imtixaanka, ku samee qaar ka mid ah khalkhalgelinta dheeraadka ah, iyo dhowr isku mid ah. Marxaladda ugu dambeysana waa in la burburiyo. Hadda waxaanu ku wadnaa tijaabinta alaabta mar kasta mashiinada casriga ah ee cusub. Iyadoo la tixgelinayo inay nool yihiin ilaa 10 daqiiqo, waxay ku kacaysaa dinaar.

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

Add a comment