Я возился с некоторыми ФАКЕ, Пакетом (на 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 из оболочки и пакета и узнать, что происходит, особенно не нравится, я зависим на формат этих файлов, и я надеялся, что это будет основной