Sdílet prostřednictvím


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.

Publikovaný artefakt sestavení

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 a Build.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.