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é:

Megjegyzés:

A közzétételi folyamat összetevői nem támogatottak a kiadási folyamatokban.

steps:
- publish: $(System.DefaultWorkingDirectory)/bin/WebApp
  artifact: WebApp

Megjegyzés:

A publish kulcsszó a Folyamatösszetevő közzététele feladat 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é 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. A csomag közzététele után 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

Megjegyzé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.

Figyelem

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ó.

Megjegyzé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 .exe fájlok kivételével az összes fájl figyelmen kívül hagyása:

**/*
!*.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.

Megjegyzé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.

Megjegyzés:

A download kulcsszó letölti az összetevőket. További információ: steps.download.

Ha egy folyamatösszetevőt egy másik projektből szeretne letölteni a szervezeten belül, győződjön meg arról, hogy a megfelelő engedélyekkel rendelkezik mind az alsóbb rétegbeli, mind az alsóbb rétegbeli projekthez. 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:

  1. A rendszer csak az adott összetevő fájljait tölti le. Ha az összetevő nem létezik, a feladat sikertelen lesz.

  2. 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:

  1. Több összetevő is letölthető, és a feladat nem hiúsul meg, ha nem található fájl.

  2. Minden összetevőhöz létrejön egy alkönyvtár.

  3. 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ának WebApp 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'

Ö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'

Screenshot showing the PowerShell task output

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:

  1. 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.

  2. 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ó.

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.