Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Примечание.
Мы рекомендуем скачать артефакты конвейера и опубликовать артефакты конвейера для повышения производительности.
Артефакты Azure позволяют командам использовать веб-каналы и источники вышестоящей версии для управления их зависимостями. Azure Pipelines можно использовать для публикации и скачивания различных типов артефактов в рамках рабочего процесса CI/CD.
Публикация артефактов
Артефакты можно публиковать на любом этапе конвейера. Для публикации пакетов можно использовать YAML или классический редактор 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: путь артефакта. Это может быть абсолютный или относительный путь. Подстановочные знаки не поддерживаются.
- artifactName: имя артефакта.
Примечание.
Убедитесь, что при публикации артефакта не используется одно из зарезервированных имен папок. Дополнительные сведения см. в папках приложений .
Пример. Использование нескольких задач
- 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: путь артефакта. Это может быть абсолютный или относительный путь. Подстановочные знаки не поддерживаются.
- artifactName: имя артефакта.
Пример: копирование и публикация двоичных файлов
- 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: папка, содержащая файлы, которые нужно скопировать. Если оставить это пустым, копирование будет выполнено из $(Build.SourcesDirectory).
- содержимое: пути к файлам, которые необходимо включить в копию.
- targetFolder: целевая папка.
- pathToPublish: папка или путь к файлу для публикации. Это может быть абсолютный или относительный путь. Подстановочные знаки не поддерживаются.
- artifactName: имя артефакта, который требуется создать.
Примечание.
Не используйте зарезервированное имя для артефакта, например Bin или App_Data. Дополнительные сведения см. в разделе ASP.NET Структура папок веб-проекта.
Примечание.
Build.ArtifactStagingDirectory путь очищается после каждой сборки. Если вы используете этот путь для публикации артефакта, скопируйте содержимое, которое вы хотите опубликовать в этом каталоге перед этапом публикации.
Скачивание артефактов
- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt
- task: DownloadBuildArtifacts@1
inputs:
buildType: 'current' # Options: 'current' | 'specific'. Specify which build artifacts will be downloaded: `current` or from a specific build
downloadType: 'single' # Options: 'single' | 'specific'. Choose whether to download a single artifact or all artifacts of a specific build.
artifactName: 'drop' # Required when downloadType == single. The name of the artifact that will be downloaded.
downloadPath: '$(System.ArtifactsDirectory)' # Path on the agent machine where the artifacts will be downloaded. Default: $(System.ArtifactsDirectory).
Примечание.
Если вы используете задачу развертывания, можно ссылаться на артефакты сборки с помощью $(Agent.BuildDirectory). Дополнительные сведения см . в переменных агента.
После завершения выполнения конвейера перейдите к сводке , чтобы изучить или скачать артефакт.
Скачивание определенного артефакта
steps:
- task: DownloadBuildArtifacts@1
displayName: 'Download Build Artifacts'
inputs:
buildType: specific # Options: 'current' | 'specific'. Specify which build artifacts will be downloaded: `current` or from a specific build
project: 'xxxxxxxxxx-xxxx-xxxx-xxxxxxxxxxx' # Required when buildType == specific. Project ID.
pipeline: 20 # Required when buildType == specific. Build pipeline.
buildVersionToDownload: specific # Options: 'latest' | 'latestFromBranch' | 'specific'. Required when buildType == specific. Build version to download.
buildId: 128 # Required when buildType == specific && buildVersionToDownload == specific. Build ID.
artifactName: drop # The name of the artifact that will be downloaded.
extractTars: false # boolean. Extract all files that are stored inside tar archives.
Советы
Отключите обычную проверку подлинности IIS, если вы используете Azure DevOps Server, чтобы разрешить проверку подлинности с помощью личного маркера доступа. Дополнительные сведения см. в статье Почему мой PAT перестал работать?.
Используйте косую черту в аргументах пути к файлу. Обратные листы не работают в агентах macOS или Linux.
Артефакты сборки хранятся в файловой системе Windows, что приводит к потере всех разрешений UNIX, включая бит выполнения. Возможно, потребуется восстановить правильные разрешения UNIX после скачивания артефактов из Azure Pipelines.
Build.ArtifactStagingDirectoryиBuild.StagingDirectoryвзаимозаменяемы.Build.ArtifactStagingDirectoryпуть очищается после каждой сборки.Удаление сборки, связанной с пакетами, опубликованными в общей папке, приведет к удалению всех артефактов в этом пути UNC.
Если вы публикуете пакеты в общую папку, убедитесь, что вы предоставляете доступ к агенту сборки.
Убедитесь, что вы разрешаете URL-адреса и IP-адреса домена Azure artifacts, если ваша организация использует брандмауэр.
Служебная программа: копирование файлов
Служебная программа: публикация артефактов сборки
Служебная программа: скачивание артефактов сборки