Копирование результатов развертывания из размещенного агента Azure Mac в частный агент Windows

В Azure DevOps у меня есть определение выпуска, в котором выполняется команда productbuild --component $(System.DefaultWorkingDirectory)/$(RELEASE.PRIMARYARTIFACTSOURCEALIAS)/My/Folder.app/ /Applications My.pkg для создания нового файла pkg, начиная с созданного артефакта. Эта команда выполняется на агенте, размещенном на Mac.

введите описание изображения здесь

Теперь мне нужно поместить пакет на определенный путь к машине Windows, на которой у меня есть частный агент Azure DevOps. Моя проблема заключается в операции копирования с компьютера Mac на частный компьютер с частным агентом. Есть ли способ выполнить эту задачу?

Спасибо


comment
Привет. У вас есть возможность проверить обходной путь ниже, используя задачу универсального пакета. Как прошло?   -  person Levi Lu-MSFT    schedule 07.12.2020
comment
@ LeviLu-MSFT нет, я не могу опубликовать pkg в определении сборки, потому что во время выпуска я настраивал его для целевой среды. Я успешно выполнил выпуск после решения Krzysztof Madej, используя учетную запись хранения Azure для временного хранения.   -  person gvdm    schedule 07.12.2020
comment
вам не нужно публиковать пакет в определении сборки. Вы можете добавить задачу универсального пакета в определение выпуска после задачи, которая настроила ваш пакет. Затем вам просто нужно добавить другое задание агента в определение выпуска и настроить его для работы на собственном агенте. И загрузите пакет, все еще используя эту задачу универсального пакета.   -  person Levi Lu-MSFT    schedule 09.12.2020
comment
Да, это то, что я делаю, но с учетной записью хранения Azure   -  person gvdm    schedule 09.12.2020


Ответы (2)


Поскольку вы не можете переместить создание pkg для построения конвейера, вам необходимо загрузить его, например, в хранилище BLOB-объектов (если вы уже используете Azure, это не должно быть проблемой) или на FTP (это может быть на вашем хост-агенте или нет), тогда вы должны запустить конвейер / выпуск (используя это расширение и передавая URL / расположение загружаемого файла pkg.

person Krzysztof Madej    schedule 02.12.2020
comment
Да, я знаю, что определения сборки могут публиковать артефакты, используемые в выпусках. Это то, что я уже делаю со скомпилированным программным обеспечением, которое публикую как артефакт. Затем в выпуске мне нужно настроить его для целевой среды и создать файл pkg. Этот файл pkg я должен скопировать на машину Windows (где я не могу запустить команду создания pkg, потому что она не выходит в Windows) - person gvdm; 02.12.2020
comment
Возможно, вы можете рассмотреть возможность переноса создания pkg для создания конвейера (например, как отдельный этап / задание), таким образом, вы можете использовать нестандартный подход к совместному использованию артефактов между конвейерами (его не нужно собирать - выпускать, его можно собрать - строить). Я предлагаю это, поскольку невозможно опубликовать артефакт из конвейера выпуска. В противном случае вам придется скопировать файлы по ftp или в какое-то облачное хранилище, а затем запустить pipeline marketplace.visualstudio.com/ - person Krzysztof Madej; 02.12.2020
comment
В вопрос не включен этап настройки, который выполняется на распакованном артефакте и позволяет настроить артефакт для развертывания на конкретной машине. Это означает, что создание pkg должно быть выполнено в выпуске. - person gvdm; 02.12.2020
comment
Я думаю, что нет готового решения, поскольку я понял, что вы хотите запустить конвейер в Windows и использовать там этот файл pkg. Пожалуйста, проверьте мой отредактированный ответ, и если что-то непонятно, скажите мне, и я постараюсь уточнить это. - person Krzysztof Madej; 02.12.2020
comment
@gvdm Можете ли вы проголосовать за мой ответ, если он был вам полезен? - person Krzysztof Madej; 07.12.2020

Вы можете опубликовать файл pkg в фиде артефактов Azure в конвейере выпуска, используя Задача универсального пакета. А затем загрузите файл pkg на свой личный компьютер. См. Шаги ниже:

1. Создайте ссылку фид Azure Artifacts с портала DevOps Azure.

введите описание изображения здесь

2. Добавьте задачу универсального пакета в конвейер выпуска, чтобы опубликовать файл pkg как универсальный пакет в указанном выше потоке артефактов.

- task: UniversalPackages@0
  displayName: 'Universal publish'
  inputs:
    command: publish
    publishDirectory: '$(Build.ArtifactStagingDirectory)/package.pkg'
    vstsFeedPublish: 'FeedId'
    vstsFeedPackagePublish: 'package_name'

3. Добавьте задание агента на этап конвейера выпуска. И настройте его для работы на вашем частном агенте.

Затем вы можете добавить задачу универсального пакета в это задание агента, чтобы загрузить этот файл pkg на свой частный компьютер.

введите описание изображения здесь

person Levi Lu-MSFT    schedule 03.12.2020