Интеграция Teamcity Octopus-deploy - принудительное повторное развертывание уже существующей версии (с помощью параметра --force)

Мы используем этап сборки octopus-deploy в teamcity для развертывания последних успешных сборок из другой конфигурации сборки.

Я намерен привязать номера релизов к номерам артефактов (которые, в свою очередь, привязаны к номерам SCM).

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

Если я снова запустил этап развертывания teamcity (для уже созданного артефакта), осьминог должен повторно развернуть тот же артефакт с тем же номером версии. (вместо ошибки с сообщением «этот выпуск уже существует»).

В документе octo.exe параметр --force должен позволить мне это сделать. (Который я могу добавить в «Дополнительные аргументы командной строки» в teamcity).

Однако я получаю сообщение об ошибке Нераспознанные аргументы команды: --force.

Как это исправить? или какие еще варианты? (без изменения стратегии нумерации артефактов / релизов).

Звонок:

octo.exe create-release --server octoServerHostName --apikey SECRET --project ProjectName --enableservicemessages --version 1.0.59356.0 --deployto showcase --waitfordeployment --force

Создание выпуска Octopus Deploy [15:26:05] Инструмент командной строки Octopus Deploy, версия 2.0.8.22 [15:26:05] [15:26:05] Нераспознанные аргументы команды: --force


person vicsz    schedule 12.05.2014    source источник
comment
Привет, какая версия плагина TeamCity Octopus у вас установлена?   -  person SteveChapman    schedule 29.05.2014
comment
2.0.10.14 плагина Teamcity Octopus, 2.1.3.1223 сервера Octopus   -  person vicsz    schedule 30.05.2014


Ответы (2)


В Octopus deploy 2.0+ вы можете использовать:

--ignoreexisting   If a release with the version number already 
                   exists, ignore it

--force [Optional] If a project is configured to skip
                   packages with already-installed versions,
                   override this setting to force re-deployment
                   (flag, default false).

Чтобы добиться именно того, что вы хотите, за один шаг teamcity, вам понадобятся оба --ignoreexisting --force.

person Adaptabi    schedule 19.08.2014

Опубликованная ошибка показывает, что этап сборки вызывает команду Octo.exe create-release в Octo.exe версии 2.0.8.22. В этой версии нет аргумента --force, поэтому ошибки следовало ожидать.

В зависимости от версии OctopusDeploy, которую вы используете, вы можете попробовать обновить подключаемый модуль до более поздней версии, которая поддерживает --force в команде create-release.

С учетом всего сказанного, я не уверен, что --force дает вам то, что вы хотите. --force позволяет заставить Octopus переустанавливать уже установленные пакеты, но не создает уже существующий выпуск Octopus.

Вы можете рассмотреть возможность использования комбинации команд create-release и deploy-release, чтобы избежать проблем с попыткой создать выпуск с уже существующей версией - что, я думаю, вы пытаетесь сделать с помощью --force.

Надеюсь, это поможет.

person SteveChapman    schedule 28.05.2014
comment
Похоже, что --force будет работать только наполовину (как только я обновлю версию). Если мой шаг развертывания teamcity завершится неудачно - я смогу перезапустить, и даже при том, что конкретный номер выпуска теперь будет существовать, Octopus будет вынужден повторно -deploy (даже если артефакт развертывания отличается, но имеет тот же номер версии) - person vicsz; 30.05.2014
comment
Я бы, вероятно, связал сборки - сначала с помощью create-release, а затем с запуском deploy-release. Затем вы можете выбрать повторный запуск deploy-release сборки вручную, если хотите. - person SteveChapman; 30.05.2014