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.
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
enBuild.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.
Verwante artikelen:
- Publish and download artifacts in Azure Pipelines (Artefacten publiceren en downloaden in Azure-pijplijnen)
- Uw klassieke pijplijn met meerdere fasen definiëren
- Risico's beperken bij het gebruik van privépakketfeeds