Paket + FAKE + обмен зависимостей в инструменте CI - PullRequest
0 голосов
/ 30 октября 2018

Я возился с некоторыми ФАКЕ, Пакетом (на F #) и Дженкинсом, не совсем уверен, что знаю, что делаю, но знаю, что ХОЧУ делать.

Краткое описание: я хочу, чтобы сервер сборки создавал целое семейство связанных служб на основе указанного пакета, но пакет поставляется в разных вариантах (но с одним и тем же базовым именем пространства / имен модулей).

длинное описание; У меня есть семейство услуг, которые сидят на вершине внешнего API. то есть все они ссылаются на какой-то внешний пакет и получают к нему доступ через модули и т. д.

, например

ServiceA.fsprj

...

let f (x : ExternalApi.Foo) = ....

---------------

ServiceB.fsprj

...

let g (x : ExternalApi.Foo) = ....

Разработчик, вероятно, будет разрабатывать против наиболее распространенного варианта, скажем, ExternalApiVanilla. Разработчик будет использовать Paket, Fake для инструментов сборки и Jenkins.

Когда код возвращается, я хочу, чтобы служба сборки пыталась создать его против ванильного аромата ... но также против шоколада, клубники и банана.

Ароматы не являются «версиями» в смысле номера версии, это отдельные продукты со своими собственными пакетами nuget. Поэтому я думаю (каким-то образом), что я хочу параметризовать папку jenkins со всеми заданиями с именем пакета api, передать это в скрипт сборки, а затем заставить скрипт сборки поменять все, на что ссылался инженер, и сослаться на параметр .

Конечно, некоторые компиляции потерпят неудачу, мы должны разработать различные варианты сервисов для обработки некоторых вариантов API, но 90% наших вещей работают на всех версиях, нам просто нужен автоматический способ проверить сборку, а затем создавать новые варианты услуг и рабочих мест, обрабатывать их.


Кроме того, мы делаем некоторые вещи с C # и cake / nuget, но контролируем управление версиями, передавая папку nuget и заставляя сборку находить конкретные версии 1 флейвора ... Я понял это, хотя я бы не стал быть в состоянии написать это, но я хочу сделать еще один шаг и заменить саму ссылку другой.

-------

Я попытаюсь просмотреть файлы ссылок paket.dependencies / paket в сценарии сборки, удалить существующую ссылку и добавить определенные из jenkins из оболочки и пакета и узнать, что происходит, особенно не нравится, я зависим на формат этих файлов, и я надеялся, что это будет основной

1 Ответ

0 голосов
/ 02 ноября 2018

Я решил это, по крайней мере, в контексте cake + nuget (и применимо то же решение), просто выполнив поиск, заменив ссылку на пакет (используя XDocument) в скрипте торт на параметр ссылки, заданный в задании. параметры.

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

...