2013-08-06 1 views
6

Я понимаю, что в настоящее время в feature request что-то вроде этого, но я надеюсь, что есть какая-то обходной путь, используя текущую версию (1.6)Используйте другой корм пакет, основанный на окружающую среду в Octopus Deploy

Мы создаем для наших разработчиков и тестовых сред ветку dev в TFS и создаем для наших сред QA и Production среду из ветви релиза в TFS. Поскольку они производят отдельные пакеты nuget, я не могу использовать один и тот же пакет. Параметр пакета развертывания, похоже, не имеет опции среды. Есть ли другой способ сказать «Развернуть пакет X версии Y для Dev/Test и пакет A для версии Q для QA/Production?»

ответ

6

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

В nugets, построенные из двух ветвей, очевидно, должны иметь разные (без сталкивающихся) версии. Я добавляю суффикс 'dev' к пакету, созданному из ветви 'dev' (например, 1.2.3.4-dev), и оставляем свою «стабильную» ветвь открытой.

Вы должны быть ясными при создании выпуска, потому что по умолчанию Octopus будет получать доступную версию с наивысшей версией, и это может быть не релиз, который вы хотите (стабильный предположительно лагов dev). Выберите версию нужного пакета (и соответствующим образом установите версию развертывания). Если вы создаете выпуск через TeamCity, убедитесь, что вы используете аргумент --packageVersion, а также установите номер выпуска.

Поскольку вышеизложенное работает только в том случае, если в выпуске есть только один пакет, процесс развертывания (к сожалению) должен произвести один монолитный nuget, или вы получите несоответствие версии.

Преимущество такого расположения, конечно, является то, что в крайнем случае вы могли Напрягите DEV построить в QA (или Prod) в случае необходимости когда-либо возникнет.

Все это предполагает, что и ветви построить как ту же упаковку конечно. Вы могли бы строить разные пакеты между dev и стабильными ветвями (но я не думаю, что рекомендую это из-за дублирования всей конфигурации Octopus).

Обновление: очевидно, может использовать Octo.exe, чтобы указать разные номера версий в разных пакетах - см. https://github.com/OctopusDeploy/Octopus-Tools.

+0

Это в основном путь, который я пытаюсь принять. Если я правильно понимаю, * dev * - это тег preerelease *. Я безуспешно пытался несколько раз настроить предварительную версию с использованием атрибута AssemblyInformationalVersion. Пока OctoPack, похоже, игнорирует это. Вы добавляете тег через этот атрибут или просто добавляете его в имя файла после создания пакета? – LockeCJ

+0

Похоже, что AssemblyInformationalVersion [не поддерживается] (https://github.com/OctopusDeploy/OctoPack/issues/28) от OctoPack на данный момент. :( – LockeCJ

+0

Я добавил поддержку AssemblyInformationalVersion. Вот запрос на перенос: https://github.com/OctopusDeploy/OctoPack/pull/34 – LockeCJ

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

  • Нет связанных вопросов^_^