Siyaqhubeka nokubuyekeza kwethu ithuluzi elihle lokuthuthukisa iWindows nokunye, i-Azure DevOps. Kulokhu, njengoba ngihlupheke kakhulu ngokuhlukahluka kwemvelo, nganquma ukubeka konke okuhlangenwe nakho esihlokweni esisodwa.
Kusukela eqinisweni lokuthi bane-syntax ehlukile yendawo ngayinye yokwenza, egcina ngokuntula ikhono elijwayelekile lokudlulisa okuguquguqukayo ukusuka kwesinye isigaba sepayipi ukuya kwesinye.
Ngizokwenza ukubhuka ukuthi izibonelo eziyinhloko zizoba Kumapayipi Okukhishwa, ngoba i-YAML ayikafiki lapho, futhi ngidinga ukusebenza kwezigaba eziningi nezinto zobuciko eziningi. Lokhu, kubonakala, sekutholakala kumaPipelines avamile, alingana nawo ngokusebenza. Emapayipini e-YAML, sengeze ithiphu elincane lesithombe ekumelelweni kombhalo ngamapharamitha angasethwa. Kulula kakhulu; awudingi ukudlula imibhalo yemojuli ngayinye. Kodwa ngizokuchaza lokhu esihlokweni esilandelayo, kodwa okwamanje nansi isithombe se-innovation ngokwayo.
Isitoreji kanye nokusetshenziswa
Ake siqale ngeqiniso lokuthi sinokuguquguquka okuzenzakalelayo ohlelweni. Aqala, kuye ngemvelaphi yawo, ngamagama athi Khulula, Uhlelo, njll. Uhlu olugcwele (njengoba luvela, akunjalo), luyatholakala ku-
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)
Uma usetha okuguquguqukayo kumenzeli lapho umsebenzi wenziwe khona, kungu-$(System.AccessToken). Uma ufuna ukuyisebenzisa ngaphakathi kweskripthi se-powershell kumenzeli ofanayo, isizoba ngu-$env:SYSTEM_ACCESSTOKEN. Uma wena, uNkulunkulu ekwenqabela, ufuna ukusebenzisa lokhu okuguquguqukayo kumsingathi othile oqhelile usebenzisa i-PowerShell emshinini oqondiwe umsebenzi, udinga ukudlulisa lokhu ngempikiswano ukuya kuskripthi usebenzisa.
Imithetho efanayo ayisebenzi kokuguquguqukayo kwakho; lapha usuvele unesibopho se-syntax. Okuguquguqukayo kungasethwa endaweni emsebenzini ngamunye.
Noma emhlabeni jikelele esitolo esiguquguqukayo, bese uwaxhuma esitolo. Ngokunethezeka kakhulu.
Njengebhonasi, uma okuguquguqukayo kuyimfihlo kakhulu, kungagcinwa efwini le-Azure endaweni yokugcina ebizwa nge-Azure Vault; ungaxhuma i-Vault kuphrojekthi ekuLabhulali.
Ngokuvamile, yonke into icacile ngezinto eziguquguqukayo; kumapayipi asengakwazi ukusethwa mathupha ekuqalisweni ngakunye; ekukhishweni akukho ukusebenza okunjalo. Ungabona ukuthi yini oyidlulisela epayipini futhi kumalogi okuqalisa umenzeli, kodwa khumbula ukuthi asevele ekhona ngendlela eguquliwe.
Izinguquko Ezinamandla
Ubumnandi buqala lapho sifuna ukwamukela inani elithile esigabeni esisodwa bese silidlulisela kwesinye.
Asizange sinikezwe ukusebenza okunjalo. Kodwa izandla zethu akuzona ezesithukuthezi futhi ngosizo lwe-Google kwatholakala isisombululo. Siyabonga uNkulunkulu, i-Azure DevOps ine-API esivumela ukuthi senze okungaphezu kwalokho obekuvezwe kusixhumi esibonakalayo.
Ngakho-ke, sizodinga ucingo ukuze sibuyekeze okuguquguqukayo komhlaba wonke, esizokwenza ngokuqondile kusukela ngaphakathi kwepayipi. Ikheli lithathwe ezintweni eziguquguqukayo zemvelo, lawo afanayo elingekho igama ngawo embhalweni, njengoba kushiwo ngaphambili. Ungawasetha wena noma, ngaphezu kwalokho, uwafake nge-hardcode uma evala isitolo.
$releaseurl = ('{0}{1}/_apis/release/releases/{2}?api-version=5.0' -f $($env:SYSTEM_TEAMFOUNDATIONSERVERURI), $($env:SYSTEM_TEAMPROJECTID), $($env:RELEASE_RELEASEID) )
Setha inani elingenalutho lokuguquguquka esifuna ukukudlulisa, setha Ububanzi - Ukukhishwa
Isibonelo, senza ijeneretha yenani elithile elingahleliwe. Naka i-syntax yokumemezela okuhlukile ngaphakathi kwalesi sigaba; lokhu kusebenza kwethulwa.
Esinyathelweni esilandelayo, sidlulisela okuguquguqukayo kusikripthi, yebo, yebo, akunakwenzeka ngokuqondile, kufanele kube ngokuphikisana.
Iskripthi ngaphansi kwe-spoiler
I-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
Noma
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
Kafushane, iskripthi sethu sithatha okuguquguqukayo kwe-myVar njengokufaka futhi sisebenzisa i-API ukubeka inani lalokhu kuguquguquka ku-stageVar. Esinyathelweni esilandelayo, sisebenzisa i-syntax eguquguqukayo yesistimu, singayibheka.
Isibonelo silula, kepha ukusebenza kusivulela amathuba amahle, ngaphezu kweyami eyedlule
Esihlokweni esilandelayo, uma kunesidingo, ngizokhuluma ngamapayipi e-YAML; sekube nezinto ezintsha eziningi ezithokozisayo lapho muva nje.
Source: www.habr.com