Publikování a stažení artefaktů sestavení
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Poznámka:
Pro zajištění rychlejšího výkonu doporučujeme použít stažení artefaktů kanálu a publikování artefaktů kanálu.
Azure Artifacts umožňuje týmům používat informační kanály a upstreamové zdroje ke správě jejich závislostí. Azure Pipelines můžete použít k publikování a stahování různých typů artefaktů v rámci pracovního postupu CI/CD.
Publikování artefaktů
Artefakty je možné publikovat v libovolné fázi kanálu. K publikování balíčků můžete použít YAML nebo klasický editor Azure DevOps.
- 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: cesta k artefaktu. Může to být absolutní nebo relativní cesta. Zástupné kóty nejsou podporované.
- artifactName: název artefaktu.
Poznámka:
Při publikování artefaktu se ujistěte, že nepoužíváte jeden z názvů rezervovaných složek. Další podrobnosti najdete v tématu Složky aplikací.
Příklad: Použití více úkolů
- 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: cesta k artefaktu. Může to být absolutní nebo relativní cesta. Zástupné kóty nejsou podporované.
- artifactName: název artefaktu.
Příklad: Kopírování a publikování binárních souborů
- 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: složka obsahující soubory, které chcete kopírovat. Pokud necháte toto prázdné, kopírování se provede z $(Build.SourcesDirectory).
- obsah: Cesty k souborům, které se mají zahrnout jako součást kopie.
- targetFolder: cílová složka.
- pathToPublish: složka nebo cesta k souboru k publikování. Může to být absolutní nebo relativní cesta. Zástupné kóty nejsou podporované.
- artifactName: název artefaktu, který chcete vytvořit.
Poznámka:
Ujistěte se, že nepoužíváte vyhrazený název pro artifactName, jako je bin nebo App_Data. Další podrobnosti najdete v tématu ASP.NET Struktura složek webového projektu.
Poznámka:
Build.ArtifactStagingDirectory
cesta se po každém sestavení vyčistí. Pokud k publikování artefaktu používáte tuto cestu, před krokem publikování nezapomeňte zkopírovat obsah, který chcete publikovat do tohoto adresáře.
Stažení artefaktů
- 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: Určete, které artefakty sestavení se stáhnou:
current
(výchozí hodnota) nebo z konkrétního sestavení. - downloadType: Zvolte, jestli chcete stáhnout jeden artefakt nebo všechny artefakty konkrétního sestavení.
- artifactName: název artefaktu, který se stáhne.
- downloadPath: cesta na počítači agenta, kde se stáhnou artefakty.
Poznámka:
Pokud používáte úlohu nasazení, můžete odkazovat na artefakty sestavení pomocí $(Agent.BuildDirectory). Další podrobnosti najdete v tématu Proměnné agenta.
Po dokončení spuštění kanálu přejděte do části Souhrn a prozkoumejte nebo stáhněte artefakt.
Stažení konkrétního artefaktu
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
Tipy
Pokud k povolení ověřování pomocí osobního přístupového tokenu používáte Azure DevOps Server, zakažte základní ověřování služby IIS. Další podrobnosti najdete v tématu Základní ověřování a paty služby IIS.
V argumentech cesty k souboru použijte lomítka. V agentech macOS/Linux nefungují zpětná lomítka.
Artefakty sestavení jsou uloženy v systému souborů Systému Windows, což způsobí ztrátu všech oprávnění systému UNIX, včetně spouštěcí bit. Po stažení artefaktů ze služby Azure Pipelines možná budete muset obnovit správná oprávnění systému UNIX.
Build.ArtifactStagingDirectory
aBuild.StagingDirectory
jsou zaměnitelné.Build.ArtifactStagingDirectory
cesta se po každém sestavení vyčistí.Odstranění sestavení přidruženého k balíčkům publikovaným ve sdílené složce způsobí odstranění všech artefaktů v této cestě UNC.
Pokud balíčky publikujete do sdílené složky, ujistěte se, že poskytujete přístup k agentovi sestavení.
Pokud vaše organizace používá bránu firewall, ujistěte se, že povolujete adresy URL a IP adresy domény Azure Artifacts.