Iji mgbanwe dị na pipeline Azure DevOps

Anyị na-aga n'ihu nyochaa ngwa ọrụ magburu onwe ya maka mmepe maka Windows na ndị ọzọ, Azure DevOps. Oge a, ebe m na-ata ahụhụ dị ukwuu na mgbanwe gburugburu ebe obibi, ekpebiri m itinye ahụmahụ niile n'ime otu isiokwu.

Malite n'eziokwu na ha nwere syntax dị iche iche maka ebe ọ bụla a na-egbu egbu, na-ejedebe na enweghị ikike ọkọlọtọ iji nyefee mgbanwe site n'otu ọkwa nke pipeline gaa na nke ọzọ.

M ga-edebe ndoputa na isi ihe atụ ga-abụ na tọhapụ pipelines, n'ihi na YAML erutebeghị ebe ahụ, na m chọrọ ọrụ nke ọtụtụ nkebi na ọtụtụ artifacts. Nke a, ọ dị ka ọ dị na Pipeline mgbe niile, nke na-eme ka ha nhata na arụ ọrụ. Na Pipelines YAML, anyị gbakwunyere obere ihe osise eserese na nnochite anya ederede nwere oke nwere ike ịtọ. Ọ dị mma nke ukwuu; ịkwesighi ịgafe akwụkwọ maka modul ọ bụla. Ma m ga-akọwa nke a n'isiokwu na-esonụ, ma ugbu a, ebe a bụ foto nke ọhụrụ n'onwe ya.

Iji mgbanwe dị na pipeline Azure DevOps

Nchekwa na ojiji

Ka anyị malite n'eziokwu na anyị nwere mgbanwe ndabara na sistemụ. Ha na-amalite, dabere na mmalite ha, jiri okwu Mwepụta, Sistemu, wdg. Ndepụta zuru ezu (dị ka ọ na-apụta, ọ bụghị), dị na akwụkwọ. E ji ihe atụ sitere na akwụkwọ dị n'okpuru gosi schizophrenia niile nwere syntax. Otu mgbanwe ahụ nwere ihe nnọchianya atọ, dabere na ebe anyị na-akpọ ya.

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)

Ọ bụrụ na ịtọọ mgbanwe na onye nnọchi anya nke a na-arụ ọrụ ahụ, ọ bụ $(System.AccessToken). Ọ bụrụ na ịchọrọ iji ya n'ime edemede powershell na otu onye nnọchite anya, ọ ga-abụrịrị $env:SYSTEM_ACCESSTOKEN. Ọ bụrụ na ị, Chukwu ekwela, ịchọrọ iji mgbanwe a na ụfọdụ ndị ọbịa dịpụrụ adịpụ na-eji PowerShell na ọrụ igwe ebumnuche, ịkwesịrị ịgafe nke a site na arụmụka na edemede ahụ site na iji. ihe. Site na bash ọ dị mfe karị, ị nwere ike ibufe ya n'ime ya site na iji arụmụka na syntax $ SYSTEM_ACCESSTOKEN.

Otu iwu ahụ anaghị emetụta mgbanwe nke gị; ebe a ị na-ahụ maka syntax ahụ. Enwere ike ịtọ mgbanwe na mpaghara na ọrụ ọ bụla.

Iji mgbanwe dị na pipeline Azure DevOps

Ma ọ bụ n'ụwa niile na ụlọ ahịa agbanwe agbanwe, wee jikọta ha na ụlọ ahịa ahụ. Dị nnọọ mma.

Iji mgbanwe dị na pipeline Azure DevOps

Dị ka ego, ọ bụrụ na mgbanwe ndị ahụ bụ ihe nzuzo, enwere ike ịchekwa ha na igwe ojii Azure na nchekwa a na-akpọ Azure Vault; ị nwere ike jikọta Vault na ọrụ ahụ na Library.

Iji mgbanwe dị na pipeline Azure DevOps

N'ozuzu, ihe niile doro anya na mgbanwe dị iche iche; na pipeline ha ka nwere ike iji aka ha mee maka mmalite ọ bụla; na ntọhapụ ọ dịghị ọrụ dị otú ahụ. Ị nwere ike ịhụ ihe ị na-ebufe na pipeline ọzọ na ndekọ mmalite mmalite, mana buru n'uche na ha adịlarị n'ụdị ntụgharị.

Iji mgbanwe dị na pipeline Azure DevOps

Mgbanwe dị iche iche

The fun na-amalite mgbe anyị chọrọ ịnata ụfọdụ uru na otu ogbo ma nyefee ya na-esonụ.

Iji mgbanwe dị na pipeline Azure DevOps

E nyeghị anyị ụdị ọrụ ahụ. Ma aka anyị abụghị maka ike ọgwụgwụ na site n'enyemaka nke Google a chọtara ngwọta. Daalụ Chineke, Azure DevOps nwere API nke na-enye anyị ohere ime ntakịrị karịa ihe e gosipụtara na interface ahụ.

Ya mere, anyị ga-achọ oku iji melite mgbanwe mgbanwe ụwa, nke anyị ga-eme ozugbo site na pipeline. A na-ewere adreesị ahụ site na mgbanwe gburugburu ebe obibi, otu ndị ahụ na-enweghị okwu gbasara ya na akwụkwọ ahụ, dịka ekwuru na mbụ. Ị nwere ike ịtọ ha n'onwe gị ma ọ bụ, ihe ọzọ, hardcode ha ma ọ bụrụ na ha mechie ụlọ ahịa ahụ.

$releaseurl = ('{0}{1}/_apis/release/releases/{2}?api-version=5.0' -f $($env:SYSTEM_TEAMFOUNDATIONSERVERURI), $($env:SYSTEM_TEAMPROJECTID), $($env:RELEASE_RELEASEID)  )

Anyị na-edobe uru efu nke mgbanwe anyị chọrọ ịnyefe, setịpụ Oke - Ntọhapụ

Iji mgbanwe dị na pipeline Azure DevOps

Dị ka ihe atụ, anyị na-eme ụfọdụ random uru generator. Lezienụ anya na syntax nke ikwuwapụta mgbanwe n'ime ọkwa a; ewebata ọrụ a.

Iji mgbanwe dị na pipeline Azure DevOps

Na nzọụkwụ ọzọ, anyị na-enyefe mgbanwe na edemede, ee, ee, ọ gaghị ekwe omume ozugbo, ọ ghaghị ịbụ site na arụmụka.

Iji mgbanwe dị na pipeline Azure DevOps

Ederede n'okpuru spoiler

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

Ma ọ bụ

kụọ

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

Na nkenke, edemede anyị na-ewere myVar agbanwe dị ka ntinye wee jiri API tinye uru nke mgbanwe a n'ime stageVar. Na nzọụkwụ ọzọ, iji usoro mgbanwe syntax, anyị nwere ike ile ya anya.

Iji mgbanwe dị na pipeline Azure DevOps

Ihe atụ dị nnọọ mfe, ma ọrụ na-emepere anyị ohere dị mma, na mgbakwunye na nke m gara aga edemede, mgbe anyị nwere ike ịmepụta igwe mebere na ọkwa mbụ nke nnwale, jiri ya rụọ ọrụ ọzọ, yana ọtụtụ n'otu n'otu. Na ikpeazụ ogbo bụ ibibi ya. Ugbu a, anyị na-eji igwe mebere ọhụrụ na-agba ọsọ ngwa ngwa. N'iburu n'uche na ha na-ebi ihe dị ka nkeji iri, ọ na-efu otu penny.

N'isiokwu na-esote, ọ bụrụ na ọ dị mkpa, m ga-ekwu maka pipeline YAML; enweela ọtụtụ ihe ọhụrụ na-adọrọ mmasị ebe ahụ n'oge na-adịbeghị anya.

isi: www.habr.com

Tinye a comment