Amfani da masu canji a cikin bututun Azure DevOps

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.

Amfani da masu canji a cikin bututun Azure DevOps

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 takardun. Duk schizophrenia tare da syntax an kwatanta shi da misali daga takardun da ke ƙasa. Maɓalli ɗaya yana da wakilci guda uku, dangane da inda muke kiransa.

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 siga. Tare da bash ya fi sauƙi, za ku iya kawai shigar da shi ciki ta amfani da mahawara da daidaita $SYSTEM_ACCESSTOKEN.

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.

Amfani da masu canji a cikin bututun Azure DevOps

Ko a duniya zuwa kantin sayar da canji, sannan ku haɗa su daga shagon. Cikin kwanciyar hankali.

Amfani da masu canji a cikin bututun Azure DevOps

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.

Amfani da masu canji a cikin bututun Azure DevOps

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.

Amfani da masu canji a cikin bututun Azure DevOps

Sauyi masu ƙarfi

Nishaɗin yana farawa lokacin da muke son karɓar wasu ƙima a mataki ɗaya kuma mu wuce zuwa na gaba.

Amfani da masu canji a cikin bututun Azure DevOps

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

Amfani da masu canji a cikin bututun Azure DevOps

Misali, muna yin wani janareta mai ƙima. Kula da tsarin jumla na ayyana maɓalli a cikin wannan matakin; an gabatar da wannan aikin.

Amfani da masu canji a cikin bututun Azure DevOps

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.

Amfani da masu canji a cikin bututun Azure DevOps

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.

Amfani da masu canji a cikin bututun Azure DevOps

Misalin abu ne mai sauƙi, amma aikin yana buɗe mana dama mai kyau, ban da na baya labarin, lokacin da za mu iya ƙirƙirar na'ura mai kama-da-wane a matakin farko na gwaji, yi wasu ƙarin magudi da shi, kuma da yawa a layi daya. Kuma mataki na ƙarshe shine a lalata shi. Yanzu muna gudanar da gwajin atomatik na samfurin kowane lokaci akan sabbin injina. Idan aka yi la'akari da cewa suna rayuwa na kusan minti 10, yana biyan dinari.

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

Add a comment