Как вы импортируете артефакты из одного конвейера Bitbucket в другой?

#continuous-integration #bitbucket-pipelines

Вопрос:

У нас сложная система сборки, со множеством взаимосвязей между нашими библиотеками и нашими приложениями. Мы помещаем каждую библиотеку и приложение в ее собственный репозиторий и используем выходные данные сборок библиотек в наших сборках приложений.

На нашем старом сервере Дженкинса мы просто создали пользовательское рабочее пространство и распределили проекты по стандартизированным относительным путям, чтобы они могли находить друг друга. После выполнения шагов сборки гарантируется, что только успешные сборки копируются в центральную папку bin по ожидаемому относительному пути.

На нашем сервере Bamboo наш репозиторий был перенесен в каталог проверки по ожидаемому относительному пути, и мы могли извлекать артефакты из других сборок и помещать их в центральную папку bin по ожидаемому относительному пути.

Теперь я пытаюсь настроить некоторые конвейеры Bitbucket, и я не вижу очевидного способа сделать нечто подобное. Рабочая папка устанавливается автоматически конвейерами, я не могу поместить это хранилище в подпапку, которая находится относительно других результатов сборки. Я могу создавать артефакты, но, похоже, не могу импортировать их в другие конвейеры. Я могу создавать кэши, но, опять же, я не могу импортировать их в другие конвейеры.

Библиотека bitbucket-конвейеры.yml

 image: mcr.microsoft.com/dotnet/sdk:5.0

pipelines:
  branches:
     master:
     eCRF2:
        - step:
            name: Build and Test
            caches:
              - dotnetcore
              - platform2
            script:
              - dotnet restore ./NET5/Platform2.sln
              - dotnet build ./NET5/Platform2.sln --no-restore --configuration Release
            artifacts:
              - NET5/Platform2/bin/**
definitions:
    caches:
        platform2: NET5/Platform2/bin
 

Приложение bitbucket-конвейеры.yml

 image: mcr.microsoft.com/dotnet/sdk:5.0

pipelines:
  default:
        - step:
            name: Build and Test
            caches:
              - dotnetcore
              - platform2
            script:
              - export PROJECT_NAME=./PlatformDataService.sln
              - dotnet restore ${PROJECT_NAME}
              - dotnet build ${PROJECT_NAME} --no-restore --configuration Release
            artifacts:
              - PlatformDataService/bin/**
 

https://support.atlassian.com/bitbucket-cloud/docs/deploy-build-artifacts-to-bitbucket-downloads/ заставил меня загрузить файл в раздел Загрузки репозитория, но как мне перенести его в другой конвейер?

Есть ли способ решить эту проблему в самих конвейерах bitbucket или мне нужно получить сервер nuget, доступный за пределами моей VPN?

Комментарии:

1. bitbucket.org/product/features/pipelines/… заставил меня загрузить файл в раздел Загрузки репозитория, но как мне перенести его в другой конвейер?

2. Существует возможность иметь отдельное репозиторий только для сборки, в котором есть файл конвейеров и куча подмодулей git, которые импортируют код в правильных относительных положениях, но это означает, что мы перестраиваем библиотеки для каждого приложения.

3. Nuget не понравился мой URL-адрес для загрузки в качестве источника nuget. Может быть, вы могли бы выполнить предварительный этап сборки, чтобы получить имена файлов, доступные в REST, затем загрузить файл, а затем использовать локальный репозиторий nuget?