Folyamatösszetevők közzététele és letöltése
Azure DevOps Services
Az Azure Pipelines használatával a folyamat korábbi szakaszaiból vagy egy másik folyamatból is letöltheti az összetevőket. Az összetevőt közzéteheti egy fájlmegosztásban, 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é:
Feljegyzés
A közzétételi folyamat összetevői nem támogatottak a kiadási folyamatokban.
steps:
- publish: $(System.DefaultWorkingDirectory)/bin/WebApp
artifact: WebApp
Feljegyzés
A publish
kulcsszó a Folyamatösszetevő közzététele feladat parancsikonja.
Bár az összetevő neve nem kötelező, célszerű olyan nevet megadni, amely pontosan tükrözi az összetevő tartalmát. Ha egy másik operációs rendszeren futó feladatból szeretné felhasználni az összetevőt, győződjön meg arról, hogy az összes fájl elérési útja érvényes a célkörnyezetre. Egy karaktert \
*
tartalmazó fájlnév például 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. Miután közzétett egy csomagot, annak verziója véglegesen fenntartott lesz. A sikertelen feladatok újrafuttatása sikertelen lesz, ha a csomagot közzétették. Ezt akkor érdemes megközelíteni, ha úgy szeretné újrafuttatni 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
Feljegyzés
Nem kell fizetnie a folyamatösszetevők tárolásáért. 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ületembe.
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
Hasonló szintaxist .gitignore
használ (néhány korlátozással) annak meghatározásához, hogy mely fájlokat kell figyelmen kívül hagyni az összetevők közzétételekor. Győződjön meg arról, hogy a .artifactignore fájl a Publish Pipeline Artifacts tevékenység targetPath argumentuma által megadott könyvtárban található.
Feljegyzés
A pluszjel +
nem támogatott az URL-elérési utakban, és egyes buildelési metaadatok a csomagtípusokhoz, például a Mavenhez.
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: töltse le az aktuális folyamatfuttatás által létrehozott összetevőket. Beállítások: aktuális, adott.
Feljegyzés
A közzétett összetevők listája csak a következő függő feladatokban lesz elérhető. Ezért csak a közzétételi összetevőkkel rendelkező feladatoktól függő, különálló feladatokban használja current
a beállítást.
Tipp.
A Pipeline-erőforrások használatával egy helyen definiálhatja a forrást, és a folyamat bármely pontján használhatja.
Feljegyzés
A download
kulcsszó letölti az összetevőket. További információ: steps.download.
Ha a szervezeten belül egy másik projektből szeretne letölteni egy folyamatösszetevőt, győződjön meg arról, hogy rendelkezik a megfelelő engedélyekkel mind az alsóbb rétegbeli projekthez, mind az összetevőt létrehozó folyamathoz. Alapértelmezés szerint a fájlok a $(Pipeline.Workspace) fájlba töltődnek le. Ha nem adott meg összetevőnevet, minden letöltött összetevőhöz létrejön egy alkönyvtár. Az egyező minták használatával 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
Egyetlen letöltési lépéssel letölthet egy vagy több összetevőt. Több összetevő letöltéséhez hagyja üresen az összetevőnév mezőt, és használjon fájlmegfeleltetési mintákat a letöltendő fájlok korlátozásához. **
Az alapértelmezett fájlegyeztetési minta (az összes összetevő összes fájlja).
Egyetlen összetevő
Ha egy összetevő neve meg van adva:
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 viszonyítva történik. A minta
*.jar
például megfelel az összes fájlnak az összetevő gyökerénél lévő.jar
kiterjesztéssel.
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ó fájl.
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ő neve (vagy egyezése). Például
WebApp/**
az összetevő összes fájljánakWebApp
megfelel. A minta*/*.dll
megegyezik az egyes összetevők gyökerénél található kiterjesztéssel rendelkező összes fájllal.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'
Adott összetevő letöltése
Az alábbi példa bemutatja, hogyan tölthet le folyamatösszetevőket egy adott futtatás által létrehozott buildverzióból:
resources:
pipelines:
- pipeline: myPipeline
project: 'xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx'
source: '79'
version: '597'
steps:
- download: myPipeline
artifact: drop
patterns: '**'
displayName: 'Download Pipeline Artifact'
Összetevők a kiadási és üzembe helyezési feladatokban
Az összetevők csak az üzembe helyezési feladatokban töltődnek le automatikusan. Alapértelmezés szerint a rendszer letölti az összetevőket a következőre $(Pipeline.Workspace)
: . A letöltési összetevő-feladat csak akkor lesz automatikusan injektálva, ha az deploy
életciklus-horogot használja az üzembe helyezés során. 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, az egyik szakaszban tegye közzé, majd a függőségeket felhasználva töltse le a következő szakaszban. További részletek: Szakaszok közötti függőségek.
Példa
Az alábbi példában egy szkriptmappát másolunk é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 a javasolt módszer az összetevőkkel való együttműködésre. A Buildösszetevők közzététele tevékenységgel közzétett összetevők továbbra is letölthetők a Build-összetevők letöltésével, de javasoljuk, hogy inkább a legújabb folyamatösszetevő-feladat használatát használja.
A buildösszetevőkről a 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 nem. A Folyamatletöltési összetevő feladatban a minták nem tartalmazhatják az összetevő nevét, ha már meg van adva egy összetevő neve. További információkért tekintse meg az egyetlen összetevő kiválasztását.
Példa
- task: PublishPipelineArtifact@1
displayName: 'Publish pipeline artifact'
inputs:
targetPath: '$(Pipeline.Workspace)'
${{ if eq(variables['Build.SourceBranchName'], 'main') }}:
artifact: 'prod'
${{ else }}:
artifact: 'dev'
publishLocation: 'pipeline'
targetPath: (Kötelező) A közzétenni kívánt fájl vagy könyvtár elérési útja. Lehet abszolút vagy relatív az alapértelmezett munkakönyvtárhoz képest. Tartalmazhat változókat, de a helyettesítő karakterek nem támogatottak. Alapértelmezett: $(Pipeline.Workspace).
publishLocation: (Kötelező) Az összetevők közzétételi helye. Válassza ki, hogy az összetevőt az Azure Pipelinesban szeretné-e tárolni, vagy át szeretné-e másolni egy fájlmegosztásba, amelyet a folyamatügynöknek el kell érnie. Beállítások:
pipeline
,filepath
. Alapértelmezett: folyamat.összetevő: (Nem kötelező) A közzétenni kívánt összetevő neve. Ha nincs beállítva, az alapértelmezett érték a feladatra hatókörrel rendelkező egyedi azonosító.
Közzétett összetevők megtekintése
Miután a folyamatfuttatás befejeződött, kövesse az alábbi lépéseket a közzétett összetevő megtekintéséhez vagy letöltéséhez:
Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.
Válassza a Folyamatok lehetőséget, válassza ki a folyamatfuttatást, majd válassza az Összegzés lapot.
A kapcsolódó szakaszban válassza ki a közzétett összetevőt.
Bontsa ki a drop mappát az összetevő megkereséséhez. Ezután letöltheti az Összetevőt, és megismerheti annak tartalmát.
GYIK
K: Mik azok a buildelési ö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örölhetem a folyamatösszetevőket a sikertelen feladatok újrafuttatásakor?
Válasz: A folyamatösszetevők nem törölhetők és nem módosíthatók. Ha egy sikertelen feladat újrafuttatásakor újra szeretné létrehozni az összetevőket, a feladatazonosítót az összetevő nevére is felveheti. $(system.JobId)
a megfelelő változó erre a célra. Az előre definiált változókkal kapcsolatos további információkért tekintse meg a rendszerváltozókat.
K: Hogyan férhetek hozzá az Artifacts-hírcsatornákhoz egy tűzfal mögött?
Válasz: Ha a szervezet tűzfalat vagy proxykiszolgálót használ, győződjön meg arról, hogy engedélyezi az Azure Artifacts-tartomány URL-címeit és IP-címeit.