Veröffentlichen und Herunterladen von Buildartefakten

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

Hinweis

Für eine verbesserte Leistung wird die Verwendung von Pipelineartefakte herunterladen und Pipelineartefakte veröffentlichen empfohlen.

Mit Azure Artifacts können Teams Feeds und Upstreamquellen verwenden, um ihre Abhängigkeiten zu verwalten. Sie können Azure Pipelines verwenden, um verschiedene Arten von Artefakten als Teil Ihres CI/CD-Workflows zu veröffentlichen und herunterzuladen.

Veröffentlichen von Artefakten

Artefakte können in jeder Stage Ihrer Pipeline veröffentlicht werden. Sie können YAML oder den klassischen Azure DevOps-Editor verwenden, um Ihre Pakete zu veröffentlichen.

- 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: Der Pfad Ihres Artefakts. Dies kann ein absoluter oder relativer Pfad sein. Platzhalter werden nicht unterstützt.
  • artifactName: Name Ihres Artefakts

Hinweis

Achten Sie darauf, beim Veröffentlichen Ihres Artefakts keinen der reservierten Ordnernamen zu verwenden. Weitere Informationen finden Sie unter Anwendungsordner.

Beispiel: Verwenden mehrerer Aufgaben

- 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: Der Pfad Ihres Artefakts. Dies kann ein absoluter oder relativer Pfad sein. Platzhalter werden nicht unterstützt.
  • artifactName: Name Ihres Artefakts

Beispiel: Kopieren und Veröffentlichen von Binärdateien

- 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: Der Ordner mit den Dateien, die Sie kopieren möchten. Wenn Sie dies leer lassen, erfolgt das Kopieren aus $(Build.SourcesDirectory).
  • contents: Dateipfade, die als Teil der Kopie eingeschlossen werden sollen
  • targetFolder: Zielordner
  • pathToPublish: Der Ordner oder Dateipfad, in den veröffentlicht werden soll. Dies kann ein absoluter oder relativer Pfad sein. Platzhalter werden nicht unterstützt.
  • artifactName: Name des Artefakts, das Sie erstellen möchten

Hinweis

Achten Sie darauf, keinen reservierten Namen wie Bin oder App_Data für artifactName zu verwenden. Weitere Informationen finden Sie unter ASP.NET-Webprojektordnerstruktur.

Hinweis

Der Build.ArtifactStagingDirectory-Pfad wird nach jedem Build bereinigt. Wenn Sie diesen Pfad verwenden, um Ihr Artefakt zu veröffentlichen, stellen Sie sicher, dass Sie den Inhalt kopieren, den Sie in diesem Verzeichnis veröffentlichen möchten, bevor Sie den Veröffentlichungsschritt ausführen.

Herunterladen von Artefakten

- 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: Geben Sie an, welche Buildartefakte heruntergeladen werden sollen: current (Standardwert) oder aus einem bestimmten Build.
  • downloadType: Wählen Sie aus, ob ein einzelnes Artefakt oder alle Artefakte eines bestimmten Builds heruntergeladen werden sollen.
  • artifactName: der Name des Artefakts, das heruntergeladen wird
  • downloadPath: der Pfad auf dem Agentcomputer, in den die Artefakte heruntergeladen werden

Hinweis

Wenn Sie eine Bereitstellungsaufgabe verwenden, können Sie mithilfe von $(Agent.BuildDirectory) auf Ihre Buildartefakte verweisen. Weitere Informationen finden Sie unter Agentvariablen.

Wenn die Pipelineausführung abgeschlossen ist, navigieren Sie zu Zusammenfassung, um Ihr Artefakt zu erkunden oder herunterzuladen.

Veröffentlichtes Buildartefakt

Herunterladen eines bestimmten Artefakts

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

Tipps

  • Deaktivieren Sie die IIS-Standardauthentifizierung, wenn Sie Azure DevOps Server verwenden, um die Authentifizierung mit Ihrem persönlichen Zugriffstoken zuzulassen. Weitere Informationen finden Sie unter IIS-Standardauthentifizierung und PATs.

  • Verwenden Sie Schrägstriche in Dateipfadargumenten. Umgekehrte Schrägstriche funktionieren in macOS-/Linux-Agents nicht.

  • Buildartefakte werden in einem Windows-Dateisystem gespeichert, wodurch alle UNIX-Berechtigungen einschließlich des Ausführungsbits verloren gehen. Möglicherweise müssen Sie die richtigen UNIX-Berechtigungen wiederherstellen, nachdem Sie Ihre Artefakte aus Azure Pipelines heruntergeladen haben.

  • Build.ArtifactStagingDirectory und Build.StagingDirectory können synonym verwendet werden.

  • Der Build.ArtifactStagingDirectory-Pfad wird nach jedem Build bereinigt.

  • Das Löschen eines Builds mit zugeordneten Paketen, die in einer Dateifreigabe veröffentlicht wurden, führt zum Löschen aller Artefakte in diesem UNC-Pfad.

  • Wenn Sie Ihre Pakete in einer Dateifreigabe veröffentlichen, achten Sie darauf, Zugriff auf den Build-Agent zu gewähren.

  • Wenn Ihre Organisation eine Firewall verwendet, stellen Sie sicher, dass Sie Azure Artifacts-Domänen-URLs und IP-Adressen zulassen.