Gwida għal CI/CD f'GitLab għall-Bidu (kważi) assolut
Jew kif tikseb badges sbieħ għall-proġett tiegħek f'lejla waħda ta 'kodifikazzjoni faċli
Probabbilment, kull żviluppatur li għandu mill-inqas proġett domestiku wieħed f'xi punt għandu ħakk dwar badges sbieħ bi status, kopertura tal-kodiċi, verżjonijiet tal-pakketti f'nuget ... U dan il-ħakk wassalni biex nikteb dan l-artikolu. Bi tħejjija biex niktebha, sibt din is-sbuħija f'wieħed mill-proġetti tiegħi:
Dan l-artikolu ser jimxik permezz tas-setup bażiku ta 'integrazzjoni u kunsinna kontinwi għal proġett ta' librerija tal-klassi .Net Core f'GitLab, jippubblika dokumentazzjoni għal GitLab Pages, u jimbotta pakketti mibnija għal għalf privat f'Azure DevOps.
VS Code intuża bħala l-ambjent ta 'żvilupp bl-estensjoni Fluss tax-Xogħol GitLab (għall-validazzjoni tal-fajl tas-settings direttament mill-ambjent tal-iżvilupp).
Introduzzjoni qasira
CD - huwa meta inti biss imbuttat, u kollox diġà waqa 'fuq il-klijent?
X'inhu CI / CD u għaliex għandek bżonnha - tista 'faċilment google. Sib dokumentazzjoni kompleta dwar il-konfigurazzjoni tal-pipelines f'GitLab faċli wkoll. Hawnhekk ser niddeskrivi fil-qosor u, jekk possibbli, mingħajr difetti, il-proċess tas-sistema minn għajn ta' għasfur:
l-iżviluppatur jibgħat impenn lir-repożitorju, joħloq talba għall-għaqda permezz tas-sit, jew b'xi mod ieħor, espliċitament jew impliċitament jibda l-pipeline,
il-kompiti kollha jintgħażlu mill-konfigurazzjoni, li l-kundizzjonijiet tagħha jippermettu li jiġu varati fil-kuntest partikolari,
il-kompiti huma organizzati skont l-istadji tagħhom,
l-istadji huma esegwiti min-naħa tagħhom - i.e. paralleli il-kompiti kollha ta' dan l-istadju jitlestew,
jekk l-istadju ifalli (jiġifieri, mill-inqas wieħed mill-kompiti tal-istadju jfalli), il-pipeline jieqaf (kważi dejjem),
jekk l-istadji kollha jitlestew b'suċċess, il-pipeline jitqies bħala suċċess.
Għalhekk, għandna:
pipeline - sett ta' kompiti organizzati fi stadji li fihom tista' tibni, tittestja, tippakkja kodiċi, tiskjera bini lest għal servizz cloud, eċċ.,
stadju (istadju) — unità ta' organizzazzjoni tal-pipeline, fiha 1+ kompitu,
kompitu (xogħol) hija unità ta' xogħol fil-pipeline. Tikkonsisti fi skript (obbligatorju), kundizzjonijiet ta 'tnedija, settings għall-pubblikazzjoni/caching ta' artifacts, u ħafna aktar.
Għaldaqstant, il-kompitu meta twaqqaf CI / CD niżel għall-ħolqien ta 'sett ta' kompiti li jimplimentaw l-azzjonijiet kollha meħtieġa għall-bini, l-ittestjar u l-pubblikazzjoni tal-kodiċi u l-artifacts.
Qabel ma tibda: għaliex?
Għaliex Gitlab?
Minħabba li meta sar meħtieġ li jinħolqu repożitorji privati għal proġetti domestiċi, dawn tħallsu fuq GitHub, u jien kont greedy. Ir-repożitorji saru ħielsa, iżda s'issa din mhix raġuni biżżejjed biex niċċaqlaq għal GitHub.
Għaliex mhux Azure DevOps Pipelines?
Minħabba li hemm l-issettjar huwa elementari - l-għarfien tal-linja tal-kmand lanqas biss huwa meħtieġ. Integrazzjoni ma 'fornituri esterni ta' git - fi ftit klikks, importazzjoni ta 'ċwievet SSH biex tibgħat impenji lir-repożitorju - ukoll, il-pipeline huwa kkonfigurat faċilment anki mhux minn mudell.
Pożizzjoni tal-bidu: dak li għandek u dak li trid
Għandna:
repożitorju f'GitLab.
Irridu:
assemblaġġ awtomatiku u ttestjar għal kull talba għall-għaqda,
bini ta 'pakketti għal kull talba ta' amalgamazzjoni u imbuttar lill-kaptan, sakemm ikun hemm ċerta linja fil-messaġġ ta 'kommit,
tibgħat pakketti mibnija lil għalf privat f'Azure DevOps,
assemblaġġ ta' dokumentazzjoni u pubblikazzjoni fil-Paġni GitLab,
badges!11
Ir-rekwiżiti deskritti organikament jaqgħu fuq il-mudell tal-pipeline li ġej:
Stadju 1 - assemblaġġ
Aħna niġbru l-kodiċi, nippubblikaw il-fajls tal-output bħala artifacts
Meta tikklikkja fuq il-buttuna Oħloq, il-proġett jinħoloq u inti tiġi ridirett lejn il-paġna tiegħu. F'din il-paġna, tista' tiddiżattiva karatteristiċi mhux meħtieġa billi tmur fis-settings tal-proġett (link t'isfel fil-lista fuq ix-xellug -> Ħarsa ġenerali -> Blokk Azure DevOps Services)
Mur Atrifacts, ikklikkja Oħloq għalf
Daħħal l-isem tas-sors
Agħżel il-viżibilità
Uncheck Inkludi pakketti minn sorsi pubbliċi komuni, sabiex is-sors ma jinbidilx fi klonu dump nuget
Mur fis-settings tal-kont, agħżel Personal Access Token
Oħloq token ta' aċċess ġdid
Isem - arbitrarju
Organizzazzjoni - Kurrenti
Validu għal massimu ta' sena
Skop - Ippakkjar/Aqra & Kitba
Ikkopja t-token maħluq - wara li tingħalaq it-tieqa modali, il-valur ma jkunx disponibbli
Mur fis-settings tar-repożitorju f'GitLab, agħżel is-settings tas-CI / CD
Tespandi l-blokka Varjabbli, żid waħda ġdida
Isem - kwalunkwe mingħajr spazji (se jkun disponibbli fil-qoxra tal-kmand)
Valur - token ta' aċċess mill-paragrafu 9
Agħżel Maskra varjabbli
Dan itemm il-konfigurazzjoni minn qabel.
Tħejjija tal-qafas tal-konfigurazzjoni
B'mod awtomatiku, il-konfigurazzjoni CI/CD f'GitLab tuża l-fajl .gitlab-ci.yml mill-għerq tar-repożitorju. Tista 'tissettja mogħdija arbitrarja għal dan il-fajl fis-settings tar-repożitorju, iżda f'dan il-każ mhux meħtieġ.
Kif tistgħu taraw mill-estensjoni, il-fajl fih konfigurazzjoni fil-format YAML. Id-dokumentazzjoni tiddettalja liema ċwievet jistgħu jkunu jinsabu fil-livell ta 'fuq tal-konfigurazzjoni, u f'kull wieħed mil-livelli nested.
L-ewwel, ejja nżidu link għall-immaġni docker fil-fajl tal-konfigurazzjoni, li fih se jitwettqu l-kompiti. Għal dan insibu Il-paġna tal-immaġini .Net Core fuq Docker Hub. Fil GitHub hemm gwida dettaljata dwar liema immaġini tagħżel għal kompiti differenti. Immaġini b'.Net Core 3.1 hija adattata biex nibnu, għalhekk tħossok liberu li żżid l-ewwel linja mal-konfigurazzjoni
image: mcr.microsoft.com/dotnet/core/sdk:3.1
Issa, meta l-pipeline jiġi mniedi mir-repożitorju tal-immaġni ta 'Microsoft, l-immaġni speċifikata se titniżżel, li fiha l-kompiti kollha mill-konfigurazzjoni se jiġu eżegwiti.
Il-pass li jmiss huwa li żżid istadju's. B'mod awtomatiku, GitLab jiddefinixxi 5 stadji:
.pre - imwettaq sal-istadji kollha,
.post - imwettaq wara l-istadji kollha,
build - l-ewwel wara .pre stadju,
test - it-tieni fażi,
deploy - it-tielet stadju.
Xejn ma jżommek milli tiddikjarahom b'mod espliċitu, madankollu. L-ordni li fiha l-passi huma elenkati taffettwa l-ordni li fiha jitwettqu. Għall-kompletezza, ejja nżidu mal-konfigurazzjoni:
stages:
- build
- test
- deploy
Għad-debugging, jagħmel sens li tinkiseb informazzjoni dwar l-ambjent li fih jitwettqu l-kompiti. Ejja nżidu sett globali ta 'kmandi li se jiġu esegwiti qabel kull kompitu ma before_script:
before_script:
- $PSVersionTable.PSVersion
- dotnet --version
- nuget help | select-string Version
Fadal li żżid mill-inqas kompitu wieħed sabiex meta jintbagħtu l-commits, jibda l-pipeline. Għalissa, ejja nżidu kompitu vojt biex nuru:
dummy job:
script:
- echo ok
Nibdew il-validazzjoni, nirċievu messaġġ li kollox huwa tajjeb, nimpenjaw ruħhom, nimbottaw, inħarsu lejn ir-riżultati fuq is-sit ... U nġibu żball fl-iskrittura - bash: .PSVersion: command not found. wtf?
Kollox huwa loġiku - b'mod awtomatiku, runners (responsabbli għall-eżekuzzjoni ta' skripts tal-kompiti u pprovduti minn GitLab) jużaw bash biex tesegwixxi kmandi. Tista' tirranġa dan billi tispeċifika b'mod espliċitu fid-deskrizzjoni tal-kompitu liema tags għandu jkollu l-pipeline runner li jwettaq:
dummy job on windows:
script:
- echo ok
tags:
- windows
Kbir! Il-pipeline issa qed jaħdem.
Qarrej attent, wara li rrepeta l-passi indikati, jinduna li l-kompitu tlesta fl-istadju test, għalkemm ma speċifikajniex l-istadju. Kif tista’ taħsbu test huwa l-pass default.
Ejja nkomplu noħolqu l-iskeletru tal-konfigurazzjoni billi nżidu l-kompiti kollha deskritti hawn fuq:
build job:
script:
- echo "building..."
tags:
- windows
stage: build
test and cover job:
script:
- echo "running tests and coverage analysis..."
tags:
- windows
stage: test
pack and deploy job:
script:
- echo "packing and pushing to nuget..."
tags:
- windows
stage: deploy
pages:
script:
- echo "creating docs..."
tags:
- windows
stage: deploy
Aħna ltqajna pipeline mhux partikolarment funzjonali, iżda madankollu korrett.
It-twaqqif ta' triggers
Minħabba l-fatt li l-ebda filtri grillu huma speċifikati għal xi kompiti, il-pipeline se kompletament tiġi eżegwita kull darba li kommit jiġi mbuttat fir-repożitorju. Peress li din mhix l-imġieba mixtieqa b'mod ġenerali, aħna se nwaqqfu filtri ta 'attivazzjoni għall-kompiti.
Il-filtri jistgħu jiġu kkonfigurati f'żewġ formati: biss/ħlief и regoli. Fil-qosor, only/except jippermettilek tikkonfigura l-filtri minn triggers (merge_request, per eżempju - jistabbilixxi l-kompitu li għandu jiġi esegwit kull darba li tinħoloq talba ta 'ġibda u kull darba li l-kommessi jintbagħtu lill-fergħa li hija s-sors fit-talba għall-għaqda) u l-ismijiet tal-fergħat (inkluż l-użu ta' espressjonijiet regolari); rules jippermettilek tippersonalizza sett ta' kundizzjonijiet u, b'mod fakultattiv, tibdel il-kundizzjoni tal-eżekuzzjoni tal-kompitu skont is-suċċess tal-kompiti preċedenti (when f'GitLab CI/CD).
Ejja nfakkru sett ta 'rekwiżiti - assemblaġġ u ttestjar biss għal talba ta' amalgamazzjoni, ippakkjar u trażmissjoni lil Azure DevOps - għal talba ta 'għaqda u pushes lill-kaptan, ġenerazzjoni ta' dokumentazzjoni - għal pushes lill-kaptan.
L-ewwel, ejja nwaqqfu l-kompitu tal-bini tal-kodiċi billi żżid regola li tispara biss fuq talba għall-għaqda:
build job:
# snip
only:
- merge_request
Issa ejja nwaqqfu l-kompitu tal-imballaġġ biex jisparaw fuq it-talba tal-għaqda u żid impenji mal-kaptan:
Waqt kompitu build job ser ikollna nibnu artifacts li jistgħu jerġgħu jintużaw f'ħidmiet sussegwenti. Biex tagħmel dan, għandek bżonn iżżid il-mogħdijiet għall-konfigurazzjoni tal-kompitu, il-fajls li fuqhom ser ikollok bżonn issalva u tuża mill-ġdid fil-kompiti li ġejjin, maċ-ċavetta artifacts:
Il-mogħdijiet jappoġġjaw il-wildcards, li żgur tagħmilhom aktar faċli biex jiġu stabbiliti.
Jekk kompitu joħloq artifacts, allura kull kompitu sussegwenti jkun jista 'jaċċessahom - ikunu jinsabu tul l-istess mogħdijiet relattivi għall-għerq tar-repożitorju li nġabru mill-kompitu oriġinali. Artifacts huma wkoll disponibbli biex jitniżżlu fuq is-sit.
Issa li għandna l-qafas tal-konfigurazzjoni lest (u ttestjat), nistgħu nipproċedu biex fil-fatt niktbu skripts għall-kompiti.
Aħna niktbu skripts
Forsi, darba, f'galaxie 'l bogħod, 'il bogħod, proġetti ta' bini (inklużi dawk fuq .net) mil-linja tal-kmand kien ta 'uġigħ. Issa tista' tibni, tittestja u tippubblika l-proġett fi 3 timijiet:
dotnet build
dotnet test
dotnet pack
Naturalment, hemm xi sfumaturi li minħabba fihom se nikkomplikaw xi ftit il-kmandi.
Irridu build rilaxx, mhux build debug, għalhekk inżidu ma 'kull kmand -c Release
Meta nittestjaw, irridu niġbru d-dejta tal-kopertura tal-kodiċi, għalhekk jeħtieġ li ninkludu analizzatur tal-kopertura fil-libreriji tat-test:
GitLab jippermettilek li tispeċifika espressjoni regolari biex tikseb statistika, li mbagħad tista 'tinkiseb fil-forma ta' badge. L-espressjoni regolari hija speċifikata fis-settings tal-kompitu biċ-ċavetta coverage; l-espressjoni għandu jkun fiha grupp ta' qbid, li l-valur tiegħu jiġi mgħoddi lill-badge:
test and cover job:
# snip
coverage: /|s*Totals*|s*(d+[,.]d+%)/
Hawnhekk inġibu statistika minn linja b'kopertura totali tal-linja.
Ippubblika pakketti u dokumentazzjoni
Iż-żewġ azzjonijiet huma skedati għall-aħħar stadju tal-pipeline - peress li l-assemblaġġ u t-testijiet għaddew, nistgħu naqsmu l-iżviluppi tagħna mad-dinja.
L-ewwel, ikkunsidra li tippubblika fis-sors tal-pakkett:
Jekk il-proġett m'għandux fajl ta' konfigurazzjoni nuget (nuget.config), oħloq waħda ġdida: dotnet new nugetconfig
Għalxiex: l-immaġni jista' ma jkollhiex aċċess għall-kitba għal konfigurazzjonijiet globali (utent u magna). Sabiex ma naqbdux żbalji, aħna sempliċement noħolqu konfigurazzjoni lokali ġdida u naħdmu magħha.
Aħna nibagħtu l-pakketti kollha mid-direttorju attwali, għalhekk *.nupkg.
name - mill-pass t'hawn fuq.
key - kwalunkwe linja. F'Azure DevOps, fit-tieqa Connect to feed, l-eżempju huwa dejjem il-linja az.
-skipduplicate - meta tipprova tibgħat pakkett diġà eżistenti mingħajr din iċ-ċavetta, is-sors jirritorna żball 409 Conflict; biċ-ċavetta, il-bgħit se jinqabeż.
Issa ejja nwaqqfu l-ħolqien tad-dokumentazzjoni:
L-ewwel, fir-repożitorju, fil-fergħa prinċipali, inizjalizzaw il-proġett docfx. Biex tagħmel dan, mexxi l-kmand mill-għerq docfx init u ssettja b'mod interattiv il-parametri ewlenin għad-dokumentazzjoni tal-bini. Deskrizzjoni dettaljata tas-setup minimu tal-proġett hawn.
Meta tikkonfigura, huwa importanti li tispeċifika d-direttorju tal-output ..public - GitLab b'mod awtomatiku jieħu l-kontenut tal-folder pubbliku fl-għerq tar-repożitorju bħala sors għall-Paġni. Għax il-proġett se jkun jinsab fil-folder nested fil-repożitorju - żid output għal-livell up fil-passaġġ.
nuget install docfx.console -version 2.51.0 - tinstalla docfx; il-verżjoni hija speċifikata biex tiżgura li l-mogħdijiet ta 'installazzjoni tal-pakkett huma korretti.
.docfx.console.2.51.0toolsdocfx.exe .docfx_projectdocfx.json - ġbir ta' dokumentazzjoni
Artifacts tan-nodi:
pages:
# snip
artifacts:
paths:
- public
Digressjoni lirika dwar docfx
Preċedentement, meta twaqqaf proġett, speċifikajt is-sors tal-kodiċi għad-dokumentazzjoni bħala fajl tas-soluzzjoni. L-iżvantaġġ ewlieni huwa li d-dokumentazzjoni tinħoloq ukoll għal proġetti tat-test. F'każ li dan ma jkunx meħtieġ, tista' tissettja dan il-valur għan-node metadata.src:
metadata.src.src: "../" - immorru livell wieħed 'il fuq relattiv għall-post docfx.json, għax fil-mudelli, it-tiftix fis-siġra tad-direttorju ma taħdimx.
metadata.src.files: ["**/*.csproj"] - mudell globali, aħna niġbru l-proġetti C # kollha mid-direttorji kollha.
metadata.src.exclude: ["*.tests*/**"] - mudell globali, teskludi kollox minn folders ma .tests Fit-titlu
Subtotal
Konfigurazzjoni sempliċi bħal din tista 'tinħoloq f'nofs siegħa biss u ftit kikkri tal-kafè, li jippermettulek tiċċekkja li l-kodiċi huwa mibni u t-testijiet jgħaddu, tibni pakkett ġdid, taġġorna d-dokumentazzjoni u jekk jogħġbok l-għajn b'sabiħa badges fil-README tal-proġett ma' kull talba ta' amalgamazzjoni u tibgħat lill-kaptan.
Finali .gitlab-ci.yml
image: mcr.microsoft.com/dotnet/core/sdk:3.1
before_script:
- $PSVersionTable.PSVersion
- dotnet --version
- nuget help | select-string Version
stages:
- build
- test
- deploy
build job:
stage: build
script:
- dotnet build -c Release
tags:
- windows
only:
- merge_requests
- master
artifacts:
paths:
- your/path/to/binaries
test and cover job:
stage: test
tags:
- windows
script:
- dotnet test -c Release /p:CollectCoverage=true
coverage: /|s*Totals*|s*(d+[,.]d+%)/
only:
- merge_requests
- master
pack and deploy job:
stage: deploy
tags:
- windows
script:
- dotnet pack -c Release -o .
- dotnet new nugetconfig
- nuget sources add -name feedName -source https://pkgs.dev.azure.com/your-organization/_packaging/your-feed/nuget/v3/index.json -username your-organization -password $nugetFeedToken -configfile nuget.config -StorePasswordInClearText
- nuget push -source feedName -skipduplicate -apikey az *.nupkg
only:
- master
pages:
tags:
- windows
stage: deploy
script:
- nuget install docfx.console -version 2.51.0
- $env:path = "$env:path;$($(get-location).Path)"
- .docfx.console.2.51.0toolsdocfx.exe .docfxdocfx.json
artifacts:
paths:
- public
only:
- master
Taħdit ta badges
Minħabba minnhom, wara kollox, kollox beda!
Badges bi status tal-pipeline u kopertura tal-kodiċi huma disponibbli f'GitLab fis-settings CI/CD fil-blokk tal-pipelines Gtntral:
Ħloqt badge b'link għad-dokumentazzjoni fuq il-pjattaforma Shields.io - kollox huwa pjuttost sempliċi hemmhekk, tista 'toħloq il-badge tiegħek stess u tirċeviha billi tuża talba.
![Пример с Shields.io](https://img.shields.io/badge/custom-badge-blue)
Azure DevOps Artifacts jippermettilek ukoll li toħloq badges għal pakketti bl-aħħar verżjoni. Biex tagħmel dan, fis-sors fuq is-sit Azure DevOps, trid tikklikkja fuq Oħloq badge għall-pakkett magħżul u tikkopja l-markdown tal-markdown:
Żieda tas-sbuħija
L-enfasi ta' Frammenti ta' Konfigurazzjoni Komuni
Waqt il-kitba tal-konfigurazzjoni u t-tiftix fid-dokumentazzjoni, iltqajt ma 'karatteristika interessanti ta' YAML - użu mill-ġdid ta 'frammenti.
Kif tistgħu taraw mis-settings tal-kompitu, kollha jeħtieġu t-tikketta windows fil-runner, u jiġu attivati meta tintbagħat talba għall-għaqda lill-kaptan/maħluq (ħlief dokumentazzjoni). Ejja nżidu dan mal-framment li ser nużaw mill-ġdid:
U issa nistgħu daħħal il-framment iddikjarat aktar kmieni fid-deskrizzjoni tal-kompitu:
build job:
<<: *common_tags
<<: *common_only
L-ismijiet tal-frammenti għandhom jibdew b'tikka, sabiex ma jiġux interpretati bħala kompitu.
Verżjoni tal-pakkett
Meta joħloq pakkett, il-kompilatur jiċċekkja l-iswiċċijiet tal-linja tal-kmand, u fin-nuqqas tagħhom, il-fajls tal-proġett; meta ssib node Verżjoni, tieħu l-valur tagħha bħala l-verżjoni tal-pakkett li qed jinbena. Jirriżulta li sabiex tibni pakkett b'verżjoni ġdida, trid jew taġġornah fil-fajl tal-proġett jew tgħaddih bħala argument tal-linja tal-kmand.
Ejja nżidu Wishlist waħda oħra - ħalli ż-żewġ numri minuri fil-verżjoni jkunu s-sena u d-data tal-bini tal-pakkett, u żid verżjonijiet ta 'prerelease. Naturalment, tista 'żżid din id-dejta fil-fajl tal-proġett u tiċċekkja qabel kull sottomissjoni - iżda tista' wkoll tagħmel dan fil-pipeline, tiġbor il-verżjoni tal-pakkett mill-kuntest u tgħaddiha permezz tal-argument tal-linja tal-kmand.
Ejja naqblu li jekk il-messaġġ tal-kommit fih linja simili release (v./ver./version) <version number> (rev./revision <revision>)?, allura nieħdu l-verżjoni tal-pakkett minn din il-linja, nissupplimentawha bid-data attwali u ngħadduha bħala argument lill-kmand dotnet pack. Fin-nuqqas ta 'linja, aħna sempliċement mhux se niġbru l-pakkett.
L-iskrittura li ġejja ssolvi din il-problema:
# регулярное выражение для поиска строки с версией
$rx = "releases+(v.?|ver.?|version)s*(?<maj>d+)(?<min>.d+)?(?<rel>.d+)?s*((rev.?|revision)?s+(?<rev>[a-zA-Z0-9-_]+))?"
# ищем строку в сообщении коммита, передаваемом в одной из предопределяемых GitLab'ом переменных
$found = $env:CI_COMMIT_MESSAGE -match $rx
# совпадений нет - выходим
if (!$found) { Write-Output "no release info found, aborting"; exit }
# извлекаем мажорную и минорную версии
$maj = $matches['maj']
$min = $matches['min']
# если строка содержит номер релиза - используем его, иначе - текущий год
if ($matches.ContainsKey('rel')) { $rel = $matches['rel'] } else { $rel = ".$(get-date -format "yyyy")" }
# в качестве номера сборки - текущие месяц и день
$bld = $(get-date -format "MMdd")
# если есть данные по пререлизной версии - включаем их в версию
if ($matches.ContainsKey('rev')) { $rev = "-$($matches['rev'])" } else { $rev = '' }
# собираем единую строку версии
$version = "$maj$min$rel.$bld$rev"
# собираем пакеты
dotnet pack -c Release -o . /p:Version=$version
Żieda ta' skript ma' kompitu pack and deploy job u osserva l-assemblaġġ tal-pakketti strettament fil-preżenza ta 'sekwenza partikolari fil-messaġġ ta' impenn.
B'kollox
Wara li qattajna madwar nofs siegħa jew siegħa tikteb il-konfigurazzjoni, debugging fil-powershell lokali u, possibilment, koppja ta 'tnedija mingħajr suċċess, aħna ltqajna konfigurazzjoni sempliċi għall-awtomatizzazzjoni tal-kompiti ta' rutina.
Naturalment, GitLab CI / CD huwa ħafna aktar estensiv u multidimensjonali milli jidher wara li taqra din il-gwida - dak mhu veru xejn. Hemm anke Auto DevOps huwatippermetti
awtomatikament jiskopri, jibni, ittestja, skjerament, u jimmonitorja l-applikazzjonijiet tiegħek
Issa l-pjanijiet huma li jiġi kkonfigurat pipeline għall-iskjerament ta 'applikazzjonijiet għal Azure, bl-użu ta' Pulumi u tiddetermina awtomatikament l-ambjent fil-mira, li se jkun kopert fl-artikolu li jmiss.