Delen via


Buildartefacten publiceren en downloaden

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

Notitie

We raden u aan pijplijnartefacten te downloaden en pijplijnartefacten te publiceren voor snellere prestaties.

Met Azure Artifacts kunnen teams feeds en upstream-bronnen gebruiken om hun afhankelijkheden te beheren. U kunt Azure Pipelines gebruiken om verschillende soorten artefacten te publiceren en te downloaden als onderdeel van uw CI/CD-werkstroom.

Artefacten publiceren

Artefacten kunnen worden gepubliceerd in elke fase van uw pijplijn. U kunt YAML of de klassieke Azure DevOps-editor gebruiken om uw pakketten te publiceren.

- 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: het pad van uw artefact. Dit kan een absoluut of een relatief pad zijn. Jokertekens worden niet ondersteund.
  • artifactName: de naam van uw artefact.

Notitie

Zorg ervoor dat u geen gereserveerde mapnamen gebruikt bij het publiceren van uw artefact. Zie Toepassingsmappen voor meer informatie.

Voorbeeld: Meerdere taken gebruiken

- 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: het pad van uw artefact. Dit kan een absoluut of een relatief pad zijn. Jokertekens worden niet ondersteund.
  • artifactName: de naam van uw artefact.

Voorbeeld: Binaire bestanden kopiëren en publiceren

- 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: de map met de bestanden die u wilt kopiëren. Als u dit leeg laat, wordt het kopiëren uitgevoerd vanaf $(Build.SourcesDirectory).
  • inhoud: Bestandspaden die moeten worden opgenomen als onderdeel van de kopie.
  • targetFolder: doelmap.
  • pathToPublish: de map of het bestandspad om te publiceren. Dit kan een absoluut of een relatief pad zijn. Jokertekens worden niet ondersteund.
  • artifactName: de naam van het artefact dat u wilt maken.

Notitie

Zorg ervoor dat u geen gereserveerde naam gebruikt voor artifactName , zoals Bin of App_Data. Zie ASP.NET webprojectmapstructuur voor meer informatie.

Notitie

Build.ArtifactStagingDirectory het pad wordt na elke build opgeschoond. Als u dit pad gebruikt om uw artefact te publiceren, moet u ervoor zorgen dat u vóór de publicatiestap de inhoud kopieert die u in deze map wilt publiceren.

Artefacten downloaden

- 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: geef op welke build-artefacten worden gedownload: current (de standaardwaarde) of vanuit een specifieke build.
  • downloadType: kies of u één artefact of alle artefacten van een specifieke build wilt downloaden.
  • artifactName: de naam van het artefact dat wordt gedownload.
  • downloadPath: pad op de agentcomputer waar de artefacten worden gedownload.

Notitie

Als u een implementatietaak gebruikt, kunt u verwijzen naar uw buildartefacten met behulp van $(Agent.BuildDirectory).< Zie Agentvariabelen voor meer informatie.

Wanneer de pijplijnuitvoering is voltooid, gaat u naar Samenvatting om uw artefact te verkennen of te downloaden.

Gepubliceerd buildartefact

Een specifiek artefact downloaden

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

Tips

  • Schakel IIS-basisverificatie uit als u Azure DevOps Server gebruikt om verificatie met uw persoonlijke toegangstoken toe te staan. Zie IIS-basisverificatie en PAT's voor meer informatie.

  • Gebruik slashes in bestandspadargumenten. Backslashes werken niet in macOS-/Linux-agents.

  • Buildartefacten worden opgeslagen in een Windows-bestandssysteem, waardoor alle UNIX-machtigingen verloren gaan, inclusief de uitvoeringsbit. Mogelijk moet u de juiste UNIX-machtigingen herstellen nadat u uw artefacten hebt gedownload uit Azure Pipelines.

  • Build.ArtifactStagingDirectory en Build.StagingDirectory zijn uitwisselbaar.

  • Build.ArtifactStagingDirectory het pad wordt na elke build opgeschoond.

  • Als u een build verwijdert die is gekoppeld aan pakketten die zijn gepubliceerd naar een bestandsshare, wordt alle artefacten in dat UNC-pad verwijderd.

  • Als u uw pakketten publiceert naar een bestandsshare, moet u ervoor zorgen dat u toegang verleent tot de buildagent.

  • Zorg ervoor dat u AZURE Artifacts-domein-URL's en IP-adressen toestaat als uw organisatie een firewall gebruikt.