Aufgabe "Build-Artefakte veröffentlichen"

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

Hinweis

Diese Aufgabe ist veraltet. Es wird empfohlen, stattdessen die Aufgabe "Pipeline-Artefakte" zu verwenden. Die aktuelle Version der Pipeline-Artefakte skaliert besser, ermöglicht parallele Uploads und ist schneller.

Verwenden Sie diese Aufgabe in einer Buildpipeline, um Buildartefakte in Azure Pipelines, TFS oder einer Dateifreigabe zu veröffentlichen.

Forderungen

Keine

YAML-Codeausschnitt

# Publish build artifacts
# Publish build artifacts to Azure Pipelines or a Windows file share
- task: PublishBuildArtifacts@1
  inputs:
    #pathToPublish: '$(Build.ArtifactStagingDirectory)' 
    #artifactName: 'drop' 
    #publishLocation: 'Container' # Options: container, filePath
    #targetPath: # Required when publishLocation == FilePath
    #parallel: false # Optional
    #parallelCount: # Optional
    #fileCopyOptions: #Optional
    #storeAsTar: false # Optional

Argumente

Argument BESCHREIBUNG
pathToPublish
Pfad für Veröffentlichung
erforderlich
Der zu veröffentlichende Ordner oder Dateipfad. Dies kann ein vollqualifizierter Pfad oder ein Pfad relativ zum Stamm des Repositorys sein. Platzhalter werden nicht unterstützt. Siehe Artefakte in Azure-Pipelines.
Standardwert: $(Build.ArtifactStagingDirectory)
ArtifactName
Artefaktname
erforderlich
Geben Sie den Namen des Artefaktes an, das Sie erstellen möchten. Es kann alles sein, was Sie wünschen.
Standardwert: drop
publishLocation
Veröffentlichungsort für Artefakte
erforderlich
Wählen Sie aus, ob das Artefakte in Azure Pipelines (Container) gespeichert oder in eine Dateifreigabe (FilePath) kopiert werden soll, auf die über den Build-Agent zugegriffen werden muss. Weitere Informationen finden Sie unter Artefakte in Azure-Pipelines.
Standardwert: Container
TargetPath
Dateifreigabepfad
erforderlich, wenn publishLocation=FilePath
Geben Sie den Pfad zur Dateifreigabe an, an der Sie die Dateien kopieren möchten. Der Pfad muss ein vollqualifizierter Pfad oder ein gültiger Pfad relativ zum Stammverzeichnis Ihres Repositorys sein. Die Veröffentlichung von Artefakten aus einem Linux- oder macOS-Agent in eine Dateifreigabe wird nicht unterstützt.
Parallel
Parallelkopie (Azure Pipelines, TFS 2018 oder neuer)
Wählen Sie aus, ob Dateien parallel mit mehreren Threads für einen größeren potenziellen Durchsatz kopiert werden sollen. Wenn diese Einstellung nicht aktiviert ist, wird ein einzelner Thread verwendet.
ParallelCount
Parallele Anzahl (Azure Pipelines, TFS 2018 oder neuer)
Geben Sie den Grad des Parallelismus (die Anzahl der Threads) ein, die zum Ausführen der Kopie verwendet werden. Der Wert muss mindestens 1 und nicht größer als 128 sein. Wählen Sie einen Wert basierend auf CPU-Funktionen des Build-Agents aus.
Standardwert: 8
FileCopyOptions
Dateikopieoptionen
Übergeben Sie zusätzliche Optionen an den Robocopy-Befehl. Beispiel: Das rekursive Minimatch-Muster **/*.
StoreAsTar
Taren des Artefaktes vor dem Hochladen
Fügen Sie alle Dateien aus dem Veröffentlichungspfad zu einem Tar-Archiv hinzu, bevor Sie hochladen. Mit dieser Option können Sie die UNIX-Dateiberechtigungen beibehalten. Verwenden Sie die extractTars Option "DownloadBuildArtifacts ", um die heruntergeladenen Elemente automatisch zu extrahieren. Auf Windows ignoriert.
Standardwert: false
Steuerelementoptionen

Hinweis

Sie können Bin-,App_Data - und andere Ordnernamen, die von IIS als Artefaktnamen reserviert sind, nicht verwenden, da dieser Inhalt nicht als Reaktion auf Webanforderungen bereitgestellt wird. Weitere Details finden Sie in ASP.NET Web Project-Ordnerstruktur .

Beispiel

steps:
- task: CopyFiles@2
  inputs:
    contents: '_buildOutput/**'
    targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: $(Build.ArtifactStagingDirectory)
    artifactName: MyBuildOutputs

Häufig gestellte Fragen

F: Ich habe Probleme beim Veröffentlichen meiner Artefakte. Wie kann ich die detaillierten Protokolle anzeigen?

So aktivieren Sie detaillierte Protokolle für Ihre Pipeline:

  1. Bearbeiten Der Pipeline und Auswählen von Variablen
  2. Hinzufügen einer neuen Variable mit dem Namen System.Debug und dem Wert true
  3. Speichern

F: Welche Variablen stehen mir zur Verfügung?

A: $(Build.SourcesDirectory) und $(Agent.BuildDirectory) sind nur wenige der Variablen, die Sie in Ihrer Pipeline verwenden können. Variablen sind als Ausdrücke oder Skripts verfügbar.

Weitere Informationen zu den verschiedenen Variablentypen finden Sie unter Definieren von Variablen, vordefinierten Variablenund klassischen Versionen und Artefakten .

F: Aufgabe ermöglicht es mir, Artefakte im Bereitstellungsauftrag in yaml-Pipeline zu veröffentlichen, aber ich bin nicht in der Lage, es in der downstream-Pipeline zu verwenden?

A: Bereitstellungsaufträge verfügen nicht über den Kontext von Quellzweigen und sind daher nicht für die Veröffentlichung von Artefakten geeignet. Sie wurden in erster Linie zum Verbrauch von Artefakten entwickelt. Eine Problemumgehung wäre es, diese Logik in einen separaten Auftrag zu isolieren (mit Abhängigkeiten zu Ihren Bereitstellungsaufträgen).