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: 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: 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).

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.

Opublikowany artefakt kompilacji

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 system UNIX uprawnień, w tym bit wykonywania. Po pobraniu artefaktów z usługi Azure Pipelines może być konieczne przywrócenie odpowiednich uprawnień system UNIX.

  • Build.ArtifactStagingDirectory i Build.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.