Jenkins & Artifacts, нормально ли будет сделать так?

Суть: есть приложение с gRPC, соответственно .proto файлы описаны в отдельном проекте, который лежит рядом в одном решении, чтобы можно было его независимо собрать и подцепить .dll с моделями в любой другой проект. Нужно добиться того, что после сборки .dll проект должен опубликовываться в локальный NuGet, а сервис разворачивался в docker'e.

Как быть в такой ситуации, поделить репозиторий с этим проектом на 2 и собирать отдельно их отдельно, чтобы без проблем публиковать .dll в NuGet, а сам проект запускать в docker'e?

Или как-то можно обойтись одним репозиторием, но сделать так, что сначала собирается .dll, публикуется в NuGet, а потом разворачивается приложение? Знаю решение в лоб, но смысл такой, что версия для публикации в NuGet должна браться из тэга в репозитории, то есть Jenkins как-то должен понимать, что:

  1. Библиотека изменилась на основании тэга версии (v1.0.0, v1.0.1, ...), её нужно собрать и опубликовать
  2. Поменялся сам сервис (библиотека может поменяться и без изменений на сервере - в этом случае перезапускать его точно не надо) и надо его собрать и запустить в docker'e

Так вот, вопрос в том как будет лучше и правильнее, держать всё в 1 репозитории и как-то обходить это через Jenkinsfile и проверку наличия тэга версии? Или есть смысл всё же разбить это на 2 независимых проекта и всё?


Ответы (0 шт):