Непрерывная интеграция (с проектами iOS и Android) [закрыто]

10

Я пытаюсь внести некоторые положительные изменения в свою компанию, и одним из изменений является внедрение непрерывной интеграции. Мы занимаемся мобильной разработкой (iOS / Android), поэтому мне нужен CI, который поддерживает оба типа проектов. Как вы можете сказать, я мало что знаю о КИ, но я немного погуглил и думаю, что Дженкинс и Хадсон - два самых популярных.

У меня есть два вопроса.

  1. Ваша мысль о Дженкинс?
  2. Есть ли способ для CI проверить, компилируется ли проект со
    стандартами кодирования (например, слабая связь и т. Д.)?
paxx
источник
3
«Дженкинс и Хадсон - это двое» ... хм, вы знаете, что Дженкинс - новое имя для Гудзона ?
комнат
1
Я действительно этого не знал! Как я уже сказал, я действительно новичок в CI и имею 0 опыта. Тааак .. J & H то же самое .. Угадайте, что сужает мои варианты :)
paxx
Там также Team City, Cruise Control и другие.
Кайл Ходжсон
@gnat: ну, я думаю, что Дженкинс - это форк Хадсона. Я думаю, что Хадсон все еще там: hudson-ci.org, управляемый Oracle. Дженкинс - очень хорошая вилка, которая для большинства людей мигрировала. Извините, если я ошибаюсь ...
Дбалакирев

Ответы:

9

Во-первых, вы можете захотеть взглянуть на TeamCity как еще один вариант для вашего сервера.

На мой взгляд (хотя у меня есть несколько меньший опыт работы с Jenkins, чем с TeamCity), оба являются отличными и очень способными инструментами - я был бы счастлив в среде, использующей любой из них.

Хорошо, чтобы добраться до сути проблемы, т.е.

Есть ли способ для CI проверить, компилируется ли проект со стандартами кодирования (например, слабая связь и т. Д.)?

На самом фундаментальном уровне все, что делает сервер CI, - это запускает сценарий, а затем интерпретирует и представляет результаты выполнения этого сценария - поэтому, если вы можете его записать, то ваш сервер CI, вероятно, сможет запустить его, и если вы сможете соответствующим образом отформатировать вывод, сервер CI, вероятно, может интерпретировать и сообщать о результате.

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

Да, CI-сервер вносит в игру гораздо больше в плане автоматизации, чем просто бездумный запуск скрипта - но в конце концов именно этим он и занимается.


Просто чтобы прояснить - я знаю, что сервер сборки делает больше, чем просто запускает сценарии, его автоматизация процесса (и, в частности, интеграция с (D) VCS), которая добавляет ценность - но в ответ на вопрос «что мне нужно для вопрос о сервере сборки, ответ - «сервер и скрипт», все остальное вытекает оттуда.

Murph
источник
Я довольно успешно использовал TeamCity в качестве CI-сервера для iOS. Я предполагаю, что использовать его для Android не составляет никакого
труда
5

Я повторяю рекомендацию TeamCity - это отличный продукт. Я не могу разговаривать с android, так как у меня нет времени там, но я успешно запустил проекты iOS в CI благодаря двум статьям ( 1 2 ).

Самые хитрые части действительно были связаны с тем, чтобы заставить Mac запускать автоматическую сборку с надлежащей цепочкой ключей, и таким образом вы могли бы создать подписанное приложение, которое вы могли бы развернуть в iDevice, а не только в эмуляторе.

Уайетт Барнетт
источник
Можно ли установить TeamCity на сервер Linux, а затем заставить его обрабатывать проекты iOS?
paxx
1
TeamCity не имеет значения, это агент сборки. А для iOS вам придется развернуть на Mac. Только у него есть набор инструментов. Вы, вероятно, можете делать что-то, используя GNUStep, но я подозреваю, что у вас было бы довольно расстраивающее время с чем-то нетривиальным.
Уайетт Барнетт
2

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

Тимоти Чен
источник