Как избежать развертывания филиала на производственном сервере? - PullRequest
0 голосов
/ 18 марта 2012

мы работаем с функциональными ветками.

мы используем сценарий bash для развертывания, и этот сценарий имеет параметр, определяющий, где развертывать: prod_server, test_env, local_virtualbox и т. Д.

однако ветви функций и транк всегда должны быть развернуты только в local / test, а ветвь предыдущей стабильной версии должна быть единственной, которую можно развернуть в prod env. (единственная причина, по которой я спрашиваю, это, конечно, что недавно я почти случайно переписал наш продукт какой-нибудь веткой).

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

(не уверен, что это актуально, но: консольное приложение Java, Spring Shop, Maven используется для сборки).

1 Ответ

1 голос
/ 18 марта 2012

Чтобы решить эту проблему с помощью одного только управления версиями: Вы можете предотвратить это, если напишите сценарий сборки bash, который выполняет svn co для транка или самый новый тег и выполняет сборку maven для этой новой проверки.

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

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

Итак, установите finalName, как это, в производительном профиле и проверьте его в сценарии развертывания bash иу вас должно быть все в порядке:

<profile>
    <id>productive</id>
    <build>
        <finalName>MyProgram-productive-${version}</finalName>
    </build>
</profile>

Таким образом, вы всегда должны вручную применять флаг «это продуктивно» к тому, что вы строите.

НО это не помешает вам установить 'это производительный флаг в ветви функций, потому что maven не знает о своей ситуации с контролем версий.

...