Muna ci gaba da bitar mu na kayan aiki mai ban mamaki don haɓakawa don Windows da ƙari, Azure DevOps. A wannan lokacin, na sha wahala da yawa tare da sauye-sauyen yanayi, na yanke shawarar sanya duk kwarewa a cikin labarin daya.
Farawa daga gaskiyar cewa suna da nau'i-nau'i daban-daban na kowane yanayi na kisa, yana ƙarewa tare da rashin daidaitaccen ikon canja wurin masu canji daga wani mataki na bututun zuwa wani.
Zan yi ajiyar cewa manyan misalan za su kasance akan Bututun Saki, saboda YAML bai isa wurin ba tukuna, kuma ina buƙatar ayyukan matakai da yawa da kayan tarihi da yawa. Wannan, da alama, ya zama samuwa a cikin Bututun yau da kullun, wanda a zahiri ya yi daidai da su a cikin aiki. A cikin Pipelines YAML, mun ƙara ƙaramin kayan aiki mai hoto zuwa wakilcin rubutu tare da sigogi waɗanda za'a iya saita su. Yana da matukar dacewa; ba dole ba ne ku shiga cikin takaddun ga kowane module. Amma zan bayyana hakan a kasida ta gaba, amma a yanzu ga hoton bidi'a da kanta.
Adana da amfani
Bari mu fara da gaskiyar cewa muna da tsoffin masu canji a cikin tsarin. Suna farawa, gwargwadon asalinsu, da kalmomin Saki, Tsarin, da sauransu. Cikakkun lissafin (kamar yadda ya fito, ba), yana samuwa a
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)
Idan ka saita mai canzawa akan wakilin da aka aiwatar da aikin, shine $ (System.AccessToken). Idan kana son amfani da shi a cikin rubutun powershell akan wakili iri ɗaya, zai zama $env:SYSTEM_ACCESSTOKEN. Idan ku, Allah ya kiyaye, kuna son yin amfani da wannan canjin akan wasu rukunin nesa ta amfani da PowerShell akan aikin injina, kuna buƙatar wuce wannan ta hanyar gardama ga rubutun ta amfani da
Dokokin iri ɗaya ba sa aiki ga masu canjin ku; a nan kun riga kuka ɗauki alhakin daidaitawa. Ana iya saita masu canji a cikin gida a kowane ɗawainiya.
Ko a duniya zuwa kantin sayar da canji, sannan ku haɗa su daga shagon. Cikin kwanciyar hankali.
A matsayin kari, idan masu canji suna da sirri sosai, ana iya adana su a cikin girgijen Azure a cikin ma'ajiyar ajiya mai suna Azure Vault; zaku iya haɗa Vault zuwa aikin a cikin Laburare.
Gabaɗaya, komai ya bayyana tare da masu canji; a cikin bututun mai har yanzu ana iya saita su da hannu don kowane ƙaddamarwa; a cikin sakin babu irin wannan aikin. Kuna iya sake ganin abin da kuke turawa zuwa bututun a cikin rajistan ayyukan farko na wakili, amma ku tuna cewa sun riga sun kasance a cikin sigar da aka canza.
Sauyi masu ƙarfi
Nishaɗin yana farawa lokacin da muke son karɓar wasu ƙima a mataki ɗaya kuma mu wuce zuwa na gaba.
Ba a ba mu irin wannan aikin ba. Amma hannayenmu ba don gajiyawa ba kuma tare da taimakon Google an sami mafita. Na gode Allah, Azure DevOps yana da API wanda ke ba mu damar yin ɗan ƙaramin abin da aka kwatanta a cikin keɓancewa.
Don haka, za mu buƙaci kira don sabunta masu canji na duniya, wanda za mu yi kai tsaye daga cikin bututun. Ana ɗaukar adireshin daga sauye-sauyen yanayi, irin waɗanda babu kalma game da su a cikin takaddun, kamar yadda aka ambata a baya. Kuna iya saita su da kanku ko, menene ƙari, hardcode su idan sun rufe shagon.
$releaseurl = ('{0}{1}/_apis/release/releases/{2}?api-version=5.0' -f $($env:SYSTEM_TEAMFOUNDATIONSERVERURI), $($env:SYSTEM_TEAMPROJECTID), $($env:RELEASE_RELEASEID) )
Mun saita ƙimar mara amfani na madaidaicin da muke son canjawa, saita Iyakar - Saki
Misali, muna yin wani janareta mai ƙima. Kula da tsarin jumla na ayyana maɓalli a cikin wannan matakin; an gabatar da wannan aikin.
A mataki na gaba, muna ƙaddamar da m zuwa rubutun, a, a, ba zai yiwu ba kai tsaye, dole ne ya kasance ta hanyar jayayya.
Rubutun ƙarƙashin ɓarna
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
Ko
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
A taƙaice, rubutun mu yana ɗaukar m myVar a matsayin shigarwa kuma yana amfani da API don sanya ƙimar wannan canjin cikin stageVar. A mataki na gaba, ta amfani da tsarin daidaita tsarin, za mu iya duba shi.
Misalin abu ne mai sauƙi, amma aikin yana buɗe mana dama mai kyau, ban da na baya
A cikin labarin na gaba, idan ya cancanta, zan yi magana game da bututun YAML; an sami sabbin abubuwa masu ban sha'awa da yawa a can kwanan nan.
source: www.habr.com