Publicera och ladda ned byggartefakter

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

Kommentar

Vi rekommenderar att du använder Ladda ned pipelineartefakter och publicera pipelineartefakter för snabbare prestanda.

Med Azure Artifacts kan team använda feeds och överordnade källor för att hantera sina beroenden. Du kan använda Azure Pipelines för att publicera och ladda ned olika typer av artefakter som en del av ditt CI/CD-arbetsflöde.

Publicera artefakter

Artefakter kan publiceras i alla steg i pipelinen. Du kan använda YAML eller den klassiska Azure DevOps-redigeraren för att publicera dina paket.

- 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: sökvägen till artefakten. Detta kan vara en absolut eller relativ sökväg. Jokertecken stöds inte.
  • artifactName: namnet på artefakten.

Kommentar

Kontrollera att du inte använder något av de reserverade mappnamnen när du publicerar artefakten. Mer information finns i Programmappar .

Exempel: Använd flera uppgifter

- 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: sökvägen till artefakten. Detta kan vara en absolut eller relativ sökväg. Jokertecken stöds inte.
  • artifactName: namnet på artefakten.

Exempel: Kopiera och publicera binärfiler

- 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: mappen som innehåller de filer som du vill kopiera. Om du lämnar detta tomt görs kopiering från $(Build.SourcesDirectory).
  • innehåll: Filsökvägar som ska inkluderas som en del av kopian.
  • targetFolder: målmapp.
  • pathToPublish: mappen eller filsökvägen som ska publiceras. Det kan vara en absolut eller relativ sökväg. Jokertecken stöds inte.
  • artifactName: namnet på artefakten som du vill skapa.

Kommentar

Se till att inte använda reserverat namn för artifactName , till exempel bin eller App_Data. Mer information finns i ASP.NET mappstruktur för webbprojekt.

Kommentar

Build.ArtifactStagingDirectory sökvägen rensas efter varje version. Om du använder den här sökvägen för att publicera artefakten ska du kopiera det innehåll som du vill publicera till den här katalogen före publiceringssteget.

Ladda ned artefakter

- 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: ange vilka byggartefakter som ska laddas ned: current (standardvärdet) eller från en specifik version.
  • downloadType: välj om du vill ladda ned en enskild artefakt eller alla artefakter i en specifik version.
  • artifactName: namnet på artefakten som ska laddas ned.
  • downloadPath: sökväg på agentdatorn där artefakterna laddas ned.

Kommentar

Om du använder en distributionsuppgift kan du referera till dina byggartefakter med hjälp av $(Agent.BuildDirectory). Mer information finns i Agentvariabler .

När pipelinekörningen är klar går du till Sammanfattning för att utforska eller ladda ned artefakten.

Publicerad byggartefakt

Ladda ned en specifik artefakt

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

  • Inaktivera grundläggande IIS-autentisering om du använder Azure DevOps Server för att tillåta autentisering med din personliga åtkomsttoken. Mer information finns i Grundläggande autentisering och PAT för IIS.

  • Använd snedstreck i filsökvägsargument. Omvänt snedstreck fungerar inte i macOS/Linux-agenter.

  • Byggartefakter lagras i ett Windows-filsystem, vilket gör att alla UNIX-behörigheter går förlorade, inklusive körningsbiten. Du kan behöva återställa rätt UNIX-behörigheter när du har laddat ned artefakterna från Azure Pipelines.

  • Build.ArtifactStagingDirectory och Build.StagingDirectory är utbytbara.

  • Build.ArtifactStagingDirectory sökvägen rensas efter varje version.

  • Om du tar bort en version som är associerad med paket som publicerats till en filresurs tas alla artefakter bort i unc-sökvägen.

  • Om du publicerar dina paket till en filresurs kontrollerar du att du ger åtkomst till byggagenten.

  • Se till att du tillåter URL:er och IP-adresser för Azure Artifacts-domäner om din organisation använder en brandvägg.