Folyamatösszetevők közzététele és letöltése
Azure DevOps Services
Az Azure Pipelines használatával összetevőket tölthet le a folyamat korábbi szakaszaiból vagy egy másik folyamatból. Az összetevőt közzéteheti egy fájlmegosztáson, vagy elérhetővé teheti folyamatösszetevőként.
Összetevők közzététele
Az összetevőket a YAML, a klasszikus szerkesztő vagy az Azure CLI használatával teheti közzé:
Megjegyzés
A kiadási folyamatok nem támogatják a folyamatösszetevők közzétételét.
steps:
- publish: $(System.DefaultWorkingDirectory)/bin/WebApp
artifact: WebApp
Megjegyzés
A publish kulcsszó a Folyamatösszetevő közzététele tevékenység parancsikonja.
Bár az összetevő neve nem kötelező, ajánlott olyan nevet megadni, amely pontosan tükrözi az összetevő tartalmát. Ha egy másik operációs rendszeren futó feladatból szeretné használni az összetevőt, győződjön meg arról, hogy az összes fájlelérési út érvényes a célkörnyezetre. Például egy karaktert \ tartalmazó fájlnév, vagy * nem tölthető le Windows rendszeren.
A közzétenni kívánt fájl/mappa elérési útja kötelező. Ez lehet abszolút vagy relatív elérési út.$(System.DefaultWorkingDirectory)
Az Azure Artifacts csomagjai nem módosíthatók. A csomag közzététele után annak verziója véglegesen le lesz foglalva. A sikertelen feladatok újrafuttatása sikertelen lesz, ha a csomagot közzétették. Ezt akkor érdemes megközelíteni, ha úgy szeretné újrafuttetni a sikertelen feladatokat, hogy már létezik hibacsomag, a Feltételek használatával csak akkor futhat, ha az előző feladat sikeres volt.
jobs:
- job: Job1
steps:
- script: echo Hello Job1!
- job: Job2
steps:
- script: echo Hello Job2!
dependsOn: Job1
Megjegyzés
A folyamatösszetevők tárolásáért nem kell fizetnie. A folyamat gyorsítótárazása szintén mentesül a tárterület számlázása alól. Tekintse meg , hogy mely összetevők számítanak bele a teljes számlázott tárterületbe.
Figyelemfelhívás
A folyamatfuttatás törlése a futtatáshoz társított összes összetevő törlését eredményezi.
A .artifactignore használata
.artifactignore uses a similar syntax to .gitignore (with few limitations) to specify which files should be ignored when publishing artifacts. További részletekért lásd: .artifactignore fájl használata .
Megjegyzés
A pluszjel karakter + nem támogatott az URL-útvonalakban, és egyes buildelési metaadatok olyan csomagtípusokhoz, mint a Maven.
Példa: az összes fájl figyelmen kívül hagyása .exe fájlok kivételével:
**/*
!*.exe
Fontos
Az Azure Artifacts automatikusan figyelmen kívül hagyja a .git mappa elérési útját, ha nem rendelkezik .artifactignore fájllal. Ezt megkerülheti egy üres .artifactignore fájl létrehozásával.
Összetevők letöltése
Az összetevőket a YAML, a klasszikus szerkesztő vagy az Azure CLI használatával töltheti le.
steps:
- download: current
artifact: WebApp
- current: az aktuális folyamatfuttatás által létrehozott összetevők letöltése. Beállítások: aktuális, adott.
Megjegyzés
A közzétett összetevők listája csak a következő függő feladatokban érhető el. Ezért csak olyan különálló feladatokban használja current a beállítást, amelyek függnek a közzétételi összetevő-tevékenységekkel rendelkező feladatoktól.
Tipp
A Pipeline-erőforrások használatával egy helyen definiálhatja a forrást, és bárhol használhatja a folyamatban.
Megjegyzés
A download kulcsszó a Folyamatösszetevő letöltése feladat parancsikonja.
Alapértelmezés szerint a fájlok a $(Pipeline.Workspace)-be lesznek letöltve. Ha nincs megadva összetevőnév, minden letöltött összetevőhöz létrejön egy alkönyvtár. Az egyező minták segítségével korlátozhatja, hogy mely fájlok töltődnek le. További részletekért tekintse meg a fájlegyeztetési mintákat .
steps:
- download: current
artifact: WebApp
patterns: |
**/*.js
**/*.zip
Összetevők kijelölése
Egy letöltési lépés egy vagy több összetevőt is letölthet. Több összetevő letöltéséhez hagyja üresen az összetevő neve mezőt, és használjon fájlegyeztetési mintákat a letöltendő fájlok korlátozásához. ** A az alapértelmezett fájlegyeztetési minta (az összes összetevő összes fájlja).
Egyetlen összetevő
Összetevőnév megadásakor:
A rendszer csak az adott összetevő fájljait tölti le. Ha az összetevő nem létezik, a feladat sikertelen lesz.
A fájlegyeztetési minták kiértékelése az összetevő gyökeréhez képest történik. A minta
*.jarpéldául egyezik az összes fájllal, amelynek.jarkiterjesztése az összetevő gyökerénél található.
Az alábbi példa bemutatja, hogyan tölthet le mindent *.js egy összetevőből WebApp:
steps:
- download: current
artifact: WebApp
patterns: '**/*.js'
Több összetevő
Ha nincs megadva összetevőnév:
Több összetevő is letölthető, és a feladat nem hiúsul meg, ha nem találhatók fájlok.
Minden összetevőhöz létrejön egy alkönyvtár.
A fájlegyeztetési minták feltételezik, hogy a minta első szegmense egy összetevőnév (vagy egyezés). Például az
WebApp/**összetevő összes fájljánakWebAppmegfelel. A minta*/*.dllmegegyezik az egyes összetevők gyökerénél található kiterjesztésű fájlokkal.dll.
Az alábbi példa bemutatja, hogyan töltheti le az összes .zip fájlt az összes összetevőből:
steps:
- download: current
patterns: '**/*.zip'
Kiadási és üzembehelyezési feladatok összetevői
Az összetevők csak az üzembehelyezési feladatokban töltődnek le automatikusan. Alapértelmezés szerint a rendszer letölti az összetevőket a következőbe System.ArtifactsDirectory: . A letöltési összetevő feladat csak akkor lesz automatikusan injektálva, ha az deploy életciklus-horogot használja az üzemelő példányban. Ha meg szeretné akadályozni az összetevők automatikus letöltését, adjon hozzá egy download lépést, és állítsa az értékét egyikre sem.
Egy normál buildelési feladatban explicit módon kell használnia a download lépés kulcsszót vagy a Folyamatösszetevő letöltése feladatot. A többi horogtípusról további információt az életciklus-horgok című témakörben talál.
steps:
- download: none
Összetevők használata szakaszok között
Ha a folyamat különböző szakaszaiban szeretné elérni az összetevőt, közzéteheti az összetevőt egy fázisban, majd letöltheti azt a következő fázisban a függőségek kihasználásával. További részleteket a függőségek szakaszában talál.
Példa
Az alábbi példában egy szkriptmappát másolunk ki és teszünk közzé az adattárból a $(Build.ArtifactStagingDirectory). A második szakaszban letöltjük és futtatjuk a szkriptet.
trigger:
- main
stages:
- stage: build
jobs:
- job: run_build
pool:
vmImage: 'windows-latest'
steps:
- task: VSBuild@1
inputs:
solution: '**/*.sln'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
platform: 'Any CPU'
configuration: 'Release'
- task: CopyFiles@2
displayName: 'Copy scripts'
inputs:
contents: 'scripts/**'
targetFolder: '$(Build.ArtifactStagingDirectory)'
- publish: '$(Build.ArtifactStagingDirectory)/scripts'
displayName: 'Publish script'
artifact: drop
- stage: test
dependsOn: build
jobs:
- job: run_test
pool:
vmImage: 'windows-latest'
steps:
- download: current
artifact: drop
- task: PowerShell@2
inputs:
filePath: '$(Pipeline.Workspace)\drop\test.ps1'
Migrálás buildösszetevőkből
A folyamatösszetevők a buildösszetevők következő generációja, és az összetevőkkel való munka ajánlott módja. A Buildösszetevők közzététele feladattal közzétett összetevők továbbra is letölthetők az Összeállítási összetevők letöltése funkcióval, de azt javasoljuk, hogy inkább a legújabb folyamatösszetevő-letöltési feladatot használja.
Buildösszetevőkről folyamatösszetevőkre való migráláskor:
Alapértelmezés szerint a Folyamatösszetevő letöltése feladat fájlokat tölt le.
$(Pipeline.Workspace)Ez az alapértelmezett és ajánlott elérési út az összes összetevőtípushoz.A buildösszetevők letöltése feladat fájlegyeztetési mintái várhatóan az összetevő nevével kezdődnek (vagy megegyeznek), függetlenül attól, hogy adott összetevő van-e megadva vagy sem. A Folyamatösszetevő letöltése feladatban a minták nem tartalmazhatják az összetevő nevét, ha egy összetevő neve már meg van adva. További információkért tekintse meg az egyetlen összetevő kiválasztását.
Példa
- task: PublishPipelineArtifact@1
displayName: 'Publish'
inputs:
targetPath: $(Build.ArtifactStagingDirectory)/**
${{ if eq(variables['Build.SourceBranchName'], 'main') }}:
artifactName: 'prod'
${{ else }}:
artifactName: 'dev'
artifactType: 'pipeline'
GYIK
K: Mik azok a buildösszetevők?
Válasz: A buildösszetevők a build által létrehozott fájlok. A buildösszetevők közzétételéről és felhasználásáról további információt a Build Artifacts című témakörben talál.
K: Támogatja az összetevők megosztott mappában való közzétételét?
Válasz: Jelenleg nem, de ez a funkció tervezett.
K: Törölhetek folyamatösszetevőket sikertelen feladatok újrafuttatásakor?
Válasz: A folyamatösszetevők nem törölhetők vagy felülírhatók. Ha egy sikertelen feladat újrafuttatásakor újra létre szeretné hozni az összetevőket, a feladatazonosítót belefoglalhatja az összetevő nevére. $(system.JobId) A a megfelelő változó ehhez a célra. Az előre definiált változókkal kapcsolatos további információkért tekintse meg a rendszerváltozókat.
Folyamatösszetevő közzététele feladatot.
Folyamatösszetevő letöltése feladatot.