Tha sinn a’ leantainn leis an ath-bhreithneachadh againn air inneal leasachaidh mìorbhaileach airson Windows agus barrachd, Azure DevOps. An turas seo, às deidh dhomh mòran fhulang le caochladairean àrainneachd, chuir mi romham an eòlas gu lèir a chuir ann an aon artaigil.
A 'tòiseachadh bhon fhìrinn gu bheil co-chòrdadh eadar-dhealaichte aca airson gach àrainneachd cur gu bàs, a' crìochnachadh le dìth comas àbhaisteach caochladairean a ghluasad bho aon ìre den loidhne-phìoban gu ìre eile.
Nì mi cinnteach gum bi na prìomh eisimpleirean air Pìoban Fuasglaidh, oir chan eil YAML air faighinn ann fhathast, agus tha feum agam air comasachd iomadh ìre agus mòran artifacts. Tha seo, tha e coltach, air fàs ri fhaighinn ann am Pìoban cunbhalach, a tha gu ìre mhòr co-ionann riutha ann an comas-gnìomh. Ann am Pipelines YAML, chuir sinn inneal beag grafaigeach ris an riochdachadh teacsa le paramadairean a ghabhas suidheachadh. Tha e gu math goireasach; chan fheum thu a dhol tro na sgrìobhainnean airson gach modal. Ach bheir mi cunntas air seo san ath artaigil, ach airson a-nis seo dealbh den innleachdas fhèin.
Stòradh is cleachdadh
Feuch an tòisich sinn leis an fhìrinn gu bheil caochladairean bunaiteach againn san t-siostam. Bidh iad a’ tòiseachadh, a rèir an tùs, leis na faclan Release, System, msaa. Tha an liosta slàn (mar a thionndaidh e a-mach, chan eil), ri fhaighinn aig
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)
Ma shuidhicheas tu caochladair air an àidseant air a bheil an gnìomh air a chur gu bàs, is e $ (System.AccessToken) a th’ ann. Ma tha thu airson a chleachdadh am broinn sgriobt powershell air an aon àidseant, bidh e mu thràth $env:SYSTEM_ACCESSTOKEN. Ma tha thu, Dia a’ toirmeasg, airson an caochladair seo a chleachdadh air aoigheachd iomallach a’ cleachdadh gnìomh PowerShell air innealan targaid, feumaidh tu seo a chuir tro argamaid chun sgriobt a’ cleachdadh
Chan eil na h-aon laghan a’ buntainn ris na caochladairean agad fhèin; an seo tha thu mar-thà an urra ris a’ cho-chòrdadh. Faodar caochladairean a shuidheachadh gu h-ionadail anns gach gnìomh.
No air feadh na cruinne ris a’ bhùth chaochlaideach, agus an uairsin gan ceangal bhon stòr. Gu math comhfhurtail.
Mar bhuannachd, ma tha na caochladairean gu math dìomhair, faodar an stòradh ann an sgòth Azure ann an stòr ris an canar Azure Vault; faodaidh tu Vault a cheangal ris a ’phròiseact anns an Leabharlann.
San fharsaingeachd, tha a h-uile dad soilleir le caochladairean; ann an loidhnichean-phìoban faodaidh iad fhathast a bhith air an suidheachadh le làimh airson gach cur air bhog; ann an sgaoileadh chan eil an leithid de ghnìomhachd ann. Chì thu na tha thu a’ gluasad chun loidhne-phìoban a-rithist anns na logaichean tòiseachaidh àidseant, ach cumaibh cuimhne gu bheil iad ann mar-thà ann an cruth tionndaidh.
Caochlaidhean fiùghantach
Bidh an spòrs a’ tòiseachadh nuair a tha sinn airson beagan luach fhaighinn ann an aon ìre agus a thoirt don ath cheum.
Cha d’ fhuair sinn a leithid de ghnìomhachd. Ach chan eil ar làmhan airson dòrainn agus le cuideachadh bho Google chaidh fuasgladh a lorg. Tapadh le Dia, tha API aig Azure DevOps a leigeas leinn beagan a bharrachd a dhèanamh na bha air a nochdadh san eadar-aghaidh.
Mar sin, bidh feum againn air gairm gus caochladairean cruinne ùrachadh, rud a nì sinn gu dìreach bhon taobh a-staigh den loidhne-phìoban. Tha an seòladh air a thoirt bho chaochladairean àrainneachd, an aon fheadhainn nach eil facal mu dheidhinn anns na sgrìobhainnean, mar a chaidh ainmeachadh roimhe. Faodaidh tu iad fhèin a shuidheachadh no, a bharrachd air an sin, an còd cruaidh ma dhùineas iad a’ bhùth.
$releaseurl = ('{0}{1}/_apis/release/releases/{2}?api-version=5.0' -f $($env:SYSTEM_TEAMFOUNDATIONSERVERURI), $($env:SYSTEM_TEAMPROJECTID), $($env:RELEASE_RELEASEID) )
Shuidhich sinn luach falamh an caochladair a tha sinn airson a ghluasad, suidhich Scope - Release
Mar eisimpleir, bidh sinn a 'dèanamh cuid de ghineadair luach air thuaiream. Thoir aire don cho-chòrdadh a thaobh a bhith ag ainmeachadh caochladair taobh a-staigh na h-ìre seo; chaidh an gnìomh seo a thoirt a-steach.
Anns an ath cheum, bheir sinn seachad an caochladair chun sgriobt, tha, tha, chan eil e comasach gu dìreach, feumaidh e bhith tro argamaid.
Sgriobt fo 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
No
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
Ann an ùine ghoirid, bidh an sgriobt againn a’ toirt an caochladair myVar mar chur-a-steach agus a’ cleachdadh an API gus luach a’ chaochladair seo a chuir ann an stageVar. Anns an ath cheum, a 'cleachdadh siostam caochlaideach co-chòrdadh, faodaidh sinn coimhead air.
Tha an eisimpleir gu math sìmplidh, ach tha an comas-gnìomh a’ fosgladh chothroman math dhuinn, a bharrachd air na bha agam roimhe
Anns an ath artaigil, ma tha sin riatanach, bruidhnidh mi mu phìoban YAML; tha tòrr innleachdan inntinneach air a bhith ann o chionn ghoirid.
Source: www.habr.com