Publikowanie i pobieranie artefaktów kompilacji
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Uwaga
Zalecamy używanie funkcji Download Pipeline Artifacts i Publish Pipeline Artifacts w celu uzyskania szybszej wydajności.
Usługa Azure Artifacts umożliwia zespołom zarządzanie zależnościami przy użyciu kanałów informacyjnych i źródeł nadrzędnych. Usługa Azure Pipelines umożliwia publikowanie i pobieranie różnych typów artefaktów w ramach przepływu pracy ciągłej integracji/ciągłego wdrażania.
Publikowanie artefaktów
Artefakty można publikować na dowolnym etapie potoku. Aby opublikować pakiety, możesz użyć języka YAML lub klasycznego edytora usługi Azure DevOps.
- 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: ścieżka artefaktu. Może to być ścieżka bezwzględna lub względna. Symbole wieloznaczne nie są obsługiwane.
- artifactName: nazwa artefaktu.
Uwaga
Upewnij się, że podczas publikowania artefaktu nie używasz jednej z nazw zarezerwowanych folderów. Aby uzyskać więcej informacji, zobacz Foldery aplikacji.
Przykład: używanie wielu zadań
- 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: ścieżka artefaktu. Może to być ścieżka bezwzględna lub względna. Symbole wieloznaczne nie są obsługiwane.
- artifactName: nazwa artefaktu.
Przykład: kopiowanie i publikowanie plików binarnych
- 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: folder zawierający pliki, które chcesz skopiować. Jeśli pozostawisz to puste, kopiowanie zostanie wykonane z pliku $(Build.SourcesDirectory).
- zawartość: ścieżki do pliku do uwzględnienia w ramach kopii.
- targetFolder: folder docelowy.
- pathToPublish: ścieżka folderu lub pliku do opublikowania. Może to być ścieżka bezwzględna lub względna. Symbole wieloznaczne nie są obsługiwane.
- artifactName: nazwa artefaktu, który chcesz utworzyć.
Uwaga
Pamiętaj, aby nie używać nazwy zarezerwowanej dla artifactName , takiej jak Bin lub App_Data. Aby uzyskać więcej informacji, zobacz ASP.NET Web Project Folder Structure (Struktura folderów projektu sieci Web).
Uwaga
Build.ArtifactStagingDirectory
ścieżka jest czyszczona po każdej kompilacji. Jeśli używasz tej ścieżki do publikowania artefaktu, przed krokiem publikowania skopiuj zawartość, którą chcesz opublikować w tym katalogu.
Pobieranie artefaktów
- 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: określ, które artefakty kompilacji zostaną pobrane:
current
(wartość domyślna) lub z określonej kompilacji. - downloadType: wybierz, czy pobrać pojedynczy artefakt, czy wszystkie artefakty określonej kompilacji.
- artifactName: nazwa artefaktu, który zostanie pobrany.
- downloadPath: ścieżka na maszynie agenta, na której zostaną pobrane artefakty.
Uwaga
Jeśli używasz zadania wdrażania, możesz odwołać się do artefaktów kompilacji przy użyciu elementu $(Agent.BuildDirectory). Aby uzyskać więcej informacji, zobacz Zmienne agenta .
Po zakończeniu przebiegu potoku przejdź do pozycji Podsumowanie , aby eksplorować lub pobrać artefakt.
Pobieranie określonego artefaktu
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
Wskazówki
Wyłącz uwierzytelnianie podstawowe usług IIS, jeśli używasz usługi Azure DevOps Server, aby zezwolić na uwierzytelnianie przy użyciu osobistego tokenu dostępu. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie podstawowe usług IIS i usługi PAT .
Użyj ukośników w argumentach ścieżki pliku. Ukośniki odwrotne nie działają w agentach systemu macOS/Linux.
Artefakty kompilacji są przechowywane w systemie plików systemu Windows, co powoduje utratę wszystkich uprawnień systemu UNIX, w tym bit wykonywania. Po pobraniu artefaktów z usługi Azure Pipelines może być konieczne przywrócenie odpowiednich uprawnień systemu UNIX.
Build.ArtifactStagingDirectory
iBuild.StagingDirectory
są zamienne.Build.ArtifactStagingDirectory
ścieżka jest czyszczona po każdej kompilacji.Usunięcie kompilacji skojarzonej z pakietami opublikowanymi w udziale plików spowoduje usunięcie wszystkich artefaktów w tej ścieżce UNC.
Jeśli publikujesz pakiety w udziale plików, upewnij się, że masz dostęp do agenta kompilacji.
Upewnij się, że zezwalasz na adresy URL i adresy IP domeny usługi Azure Artifacts, jeśli twoja organizacja korzysta z zapory.