2015-10-16 2 views
0

В основном я пытаюсь указать версию пакета Nuget на этапе процесса в осьминога.Задание версии пакета Nuget в Octopus Deploy

У нас есть довольно простой процесс, когда мы используем Teamcity для создания пакета Nuget и выгружаем его на осьминога. Затем мы просим осьминога создать выпуск для данного проекта, и это сработает с процессом Octopus, который устанавливает 2 других nuget пакеты, а затем наш новый пакет, который мы только что загрузили.

Проблема у нас есть с двумя другими пакетами. Я буду называть их PackageA и PackageB. Я хочу установить версию 1.0.0.0 пакета PackageA и версии 2.0.0.0 PackageB, а затем всегда самую последнюю для недавно загруженного NewReleasePackage. На базовом этапе развертывания пакета Nuget есть поле для «NuGet Package ID», которое помогает мне идентифицировать PackageA и PackageB. Однако это не позволяет мне указать версию. Если у меня есть два клиента, один из которых использует версию 1.0.0.0 PackageA, а другой, который использует версию 2.0.0.0, тогда у меня будет две версии PackageA в моем репозитории пакетов octopus, и мне нужно будет указать на уровне шагов версию пакета, который я хочу установить для данного процесса/клиента. Однако я не могу найти способ сделать это. Вы можете помочь?

Благодаря

Будет

ответ

0

Я предполагаю, что вы используете octo.exe для запуска развертывания с помощью TeamCity. Непонятно, как настроен процесс развертывания. Таким образом, вы развертываете три пакета, из которых вы хотите только обновить.

Вы можете указать конкретную версию каждого пакета в octo.exe вызова с помощью параметра:

package=StepName:Version 

Что вы ищете может быть сделано, на дорогих жестких закодированных значений в пределах вашего Octo .exe. Если пакеты A и B редко меняются, это не проблема. Но если изменения происходят нечасто, вам придется изменить параметры для вызова octo.exe.

Это все в документации на их веб-сайте here. Если у вас есть более подробная информация, предоставьте их, так как мой ответ очень спекулятивный.

Теоретически Говоря, я думаю, что есть альтернативный вариант: вырвать часто измененный пакет NuGet в его собственный проект в рамках той же группы проектов, что и исходный проект. Таким образом, когда вы создаете сборку, и только развертываете один пакет NuGet для развертывания, как его единственное изменение, которое необходимо сделать.

Разбив проект на две части, вы избежите изменения параметров сценария в целом для octo.exe - что, давайте посмотрим правде в глаза, - это уродливый взлом. Это не автоматизирует ваши развертывания и, в конечном счете, создает проблемы для вас в долгосрочной перспективе. Если пакеты A и B не меняются - зачем их повторно развертывать с одним пакетом, который часто меняет настройки? Вот почему я предлагаю (без всякой необходимой информации) разбивать ваш проект на два проекта.

Есть более творческие решения, которые я могу вызвать в воображении, но наилучшая практика/принцип автоматизации развертывания - это более простой и автономный, тем лучше. Когда вы получаете подробные подробные сведения о версиях пакетов для своих развертываний и только развертываете новейшую версию для одного пакета, придерживаясь других старых статических версий других пакетов, пришло время переосмыслить процесс развертывания в целом из заземлить.

+0

Hi osij2is, Спасибо за ответ.Это не совсем то, чем я был. Вы видите в нашем процессе, у нас есть 3 шага. Первые два шага устанавливают пакеты A & B, которые имеют конкретные версии. Затем на шаге 3 мы устанавливаем последнюю версию недавно загруженного пакета. На каждом из этих шагов мы должны идентифицировать пакет, который мы хотим установить через его идентификатор. Мне кажется, что здесь должна быть указана и версия (если не пусто, и в этом случае ее последняя). Кажется странным, что я укажу идентификатор в одной системе и версию в другой. Имеет ли это смысл? Will – wdhough

+0

Извините, что я говорю о шагах и процессах здесь. Я говорю о шагах и процессах в octopus. – wdhough

+0

Вы уже на самом деле закончили развертывание? Когда вы создаете выпуск, сначала выбираете среду для развертывания, а затем указываете версии каждого развертываемого пакета. – osij2is

Смежные вопросы