Megosztás a következőn keresztül:


Buildösszetevők közzététele és letöltése

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Feljegyzés

Javasoljuk, hogy a gyorsabb teljesítmény érdekében használja a folyamatösszetevők letöltését és a folyamatösszetevők közzétételét.

Az Azure Artifacts lehetővé teszi a csapatok számára, hogy hírcsatornákat és felsőbb rétegbeli forrásokat használjanak függőségeik kezeléséhez. Az Azure Pipelines használatával különböző típusú összetevőket tehet közzé és tölthet le a CI/CD-munkafolyamat részeként.

Összetevők közzététele

Az összetevők a folyamat bármely szakaszában közzétehetők. A csomagok közzétételéhez használhatja a YAML-t vagy a klasszikus Azure DevOps-szerkesztőt.

- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt

- task: CopyFiles@2
  inputs:
    sourceFolder: '$(Build.SourcesDirectory)'
    contents: '**/$(BuildConfiguration)/**/?(*.exe|*.dll|*.pdb)'
    targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: '$(Build.ArtifactStagingDirectory)'
    artifactName: drop
  • pathToPublish: az összetevő elérési útja. Ez lehet abszolút vagy relatív elérési út. A helyettesítő karakterek nem támogatottak.
  • artifactName: az összetevő neve.

Feljegyzés

Győződjön meg arról, hogy az összetevő közzétételekor nem használja a fenntartott mappanevek egyikét. További részletekért tekintse meg az Alkalmazásmappák című témakört.

Példa: Több tevékenység használata

- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt

- task: CopyFiles@2
  inputs:
    sourceFolder: '$(Build.SourcesDirectory)'
    contents: '**/$(BuildConfiguration)/**/?(*.exe|*.dll|*.pdb)'
    targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: '$(Build.ArtifactStagingDirectory)'
    artifactName: drop1
- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: '$(Build.ArtifactStagingDirectory)'
    artifactName: drop2
  • pathToPublish: az összetevő elérési útja. Ez lehet abszolút vagy relatív elérési út. A helyettesítő karakterek nem támogatottak.
  • artifactName: az összetevő neve.

Példa: Bináris fájlok másolása és közzététele

- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt

- task: CopyFiles@2
  inputs:
    sourceFolder: '$(Build.SourcesDirectory)'
    contents: '**/$(BuildConfiguration)/**/?(*.exe|*.dll|*.pdb)'
    targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: '$(Build.ArtifactStagingDirectory)'
    artifactName: drop
  • sourceFolder: a másolni kívánt fájlokat tartalmazó mappa. Ha ezt üresen hagyja, a másolás a $(Build.SourcesDirectory) fájlból történik.
  • tartalom: A másolat részeként belefoglalandó fájlelérési utak.
  • targetFolder: célmappa.
  • pathToPublish: a közzétenni kívánt mappa vagy fájl elérési útja. Lehet abszolút vagy relatív elérési út. A helyettesítő karakterek nem támogatottak.
  • artifactName: a létrehozni kívánt összetevő neve.

Feljegyzés

Ügyeljen arra, hogy ne használjon fenntartott nevet az artifactName,például a Bin vagy a App_Data számára. További részletekért lásd ASP.NET webes projektmappa-struktúrát .

Feljegyzés

Build.ArtifactStagingDirectory az elérési út minden build után törlődik. Ha ezt az elérési utat használja az összetevő közzétételéhez, a közzétételi lépés előtt mindenképpen másolja a könyvtárba a közzétenni kívánt tartalmat.

Összetevők letöltése

- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt

- task: DownloadBuildArtifacts@0
  inputs:
    buildType: 'current'
    downloadType: 'single'
    artifactName: 'drop'
    downloadPath: '$(System.ArtifactsDirectory)'
  • buildType: adja meg, hogy mely buildösszetevők töltődnek le: current (az alapértelmezett érték) vagy egy adott buildből.
  • downloadType: válassza ki, hogy egy összetevőt vagy egy adott build összes összetevőét szeretné-e letölteni.
  • artifactName: a letöltendő összetevő neve.
  • downloadPath: elérési út azon az ügynökgépen, amelyen az összetevők le lesznek töltve.

Feljegyzés

Ha üzembehelyezési feladatot használ, a $(Agent.BuildDirectory) használatával hivatkozhat a buildösszetevőkre. További részletekért tekintse meg az ügynökváltozókat .

Ha a folyamatfuttatás befejeződött, lépjen az Összegzés elemre az összetevő felderítéséhez vagy letöltéséhez.

Közzétett buildösszetevő

Adott összetevő letöltése

steps:
- task: DownloadBuildArtifacts@1
  displayName: 'Download Build Artifacts'
  inputs:
    buildType: specific
    project: 'xxxxxxxxxx-xxxx-xxxx-xxxxxxxxxxx'
    pipeline: 20
    buildVersionToDownload: specific
    buildId: 128
    artifactName: drop
    extractTars: false

Tippek

  • Tiltsa le az alapszintű IIS-hitelesítést, ha az Azure DevOps Servert használja a személyes hozzáférési jogkivonattal történő hitelesítés engedélyezéséhez. További részletekért lásd: IIS Basic Authentication és PATs .

  • Perjelek használata a fájl elérési útjának argumentumaiban. A fordított perjelek nem működnek a macOS/Linux-ügynökökben.

  • A buildösszetevők windowsos fájlrendszerben vannak tárolva, ami miatt az összes UNIX-engedély elveszik, beleértve a végrehajtási bitet is. Előfordulhat, hogy az összetevők Azure Pipelinesból való letöltése után vissza kell állítania a megfelelő UNIX-engedélyeket.

  • Build.ArtifactStagingDirectory és Build.StagingDirectory felcserélhetők.

  • Build.ArtifactStagingDirectory az elérési út minden build után törlődik.

  • A fájlmegosztásban közzétett csomagokhoz társított build törlése az adott UNC-elérési út összes összetevőjének törlését eredményezi.

  • Ha a csomagokat fájlmegosztásban teszi közzé, győződjön meg arról, hogy hozzáférést biztosít a buildügynökhöz.

  • Győződjön meg arról, hogy engedélyezi az Azure Artifacts-tartomány URL-címeit és IP-címeit , ha a szervezet tűzfalat használ.