Публикация и скачивание артефактов сборки
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Примечание.
Мы рекомендуем скачать артефакты конвейера и опубликовать артефакты конвейера для повышения производительности.
Артефакты 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@0
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
downloadPath: '$(System.ArtifactsDirectory)'
- buildType: укажите, какие артефакты сборки будут загружены:
current
(значение по умолчанию) или из определенной сборки. - downloadType: выберите, следует ли скачать один артефакт или все артефакты определенной сборки.
- artifactName: имя артефакта, который будет скачан.
- downloadPath: путь на компьютере агента, где будут загружены артефакты.
Примечание.
Если вы используете задачу развертывания, можно ссылаться на артефакты сборки с помощью $(Agent.BuildDirectory). Дополнительные сведения см . в переменных агента.
После завершения выполнения конвейера перейдите к сводке , чтобы изучить или скачать артефакт.
Скачивание определенного артефакта
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
Советы
Отключите обычную проверку подлинности IIS, если вы используете Azure DevOps Server, чтобы разрешить проверку подлинности с помощью личного маркера доступа. Дополнительные сведения см. в разделе "Базовая проверка подлинности IIS" и PATs .
Используйте косую черту в аргументах пути к файлу. Обратные листы не работают в агентах macOS или Linux.
Артефакты сборки хранятся в файловой системе Windows, что приводит к потере всех разрешений UNIX, включая бит выполнения. Возможно, потребуется восстановить правильные разрешения UNIX после скачивания артефактов из Azure Pipelines.
Build.ArtifactStagingDirectory
иBuild.StagingDirectory
взаимозаменяемы.Build.ArtifactStagingDirectory
путь очищается после каждой сборки.Удаление сборки, связанной с пакетами, опубликованными в общей папке, приведет к удалению всех артефактов в этом пути UNC.
Если вы публикуете пакеты в общую папку, убедитесь, что вы предоставляете доступ к агенту сборки.
Убедитесь, что вы разрешаете URL-адреса и IP-адреса домена Azure artifacts, если ваша организация использует брандмауэр.