#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?