Как стать автором
Обновить

Комментарии 23

Что бы использовать как службу любое приложение можете попробовать nssm
Тут проблема скорее не в службе, а в том что для запуска UI тестов нужен залогиненный пользователь и запущенный десктоп.
  • Залогиненость решается наверное свойствами службы вкладкой «Вход в систему» и вводом логина и пароля.
  • При выключенном десктопе мало что будет работать

Вы сами-то настраивали запуск GUI-тестов на windows-машине? Нужен запущенный рабочий стол — именно этого у службы нет. Консольным тестам это неважно, а gui — важно. Вот к примеру первая ссылка в гугле по запросу «jenkins run gui tests»:
http://stackoverflow.com/questions/19441324/how-to-run-gui-tests-on-a-jenkins-windows-slave-without-remote-desktop-connectio
Служба может запускаться от имени системы, текущего пользователя или дополнительно созданного, но запуску GUI-тестов это не помогло, хотя запустить какое-нибудь графическое приложение так получалось.
кажется у Jenkins были агенты которые можно запускать на отдельных хостах или я путаю?

у нас GoCd, у него агенты, и для запуска UI-тестов есть виртуалки, с автологином, и запуском агента из «Автозапуска». Сам же GoCd при это работает на линуксовой машине.
Jenkins поддерживает распределённые запуски, наверняка это очень удобно, но из-за небольшого числа таких тестов поддерживать ещё один компьютер или виртуалку не хочется.
А чем не устроил TeamCity?
По беглому впечатлению от Jenkins ТС в разы лучше.
за него же деньги надо платить

Вы правы, но инженерам которые настраивают CI, нужно тоже платить, и зачастую гораздо больше.

А TeamCity настраивает себя сам?
Нам подошло более просто решение на Jenkins. Приобрести можно разве что десктопный клиент CatLight, когда его доработают, самый удобный из рассмотренных.
concourse.ci в качестве альтернативы не рассматривали?

https://concourse.ci/concourse-vs.html
Не встречали такой. Возможно, эта CI не так популярна, как Jenkins. Глянем.
Есть ещё declarative pipeline в jenkins (по быстрому глянуть можно https://jenkins.io/blog/2017/02/07/declarative-maven-project ). Шаги сборки не на web страничке конфигурируются, а в файле, лежащем в одном с кодом репозитории
Pipeline as a code появилась в апреле 2016. Использую на части job-ов, есть свои плюсы (файл лежит в том же репозитории, его изменения традиционно отслеживаются системой контроля версий, переносимость), и минусы (неполная и порой неоднозначная поддержка плагинами, большая трудоёмкость создания такого job-а)
Примерно так выглядят команды в конфигах Jenkins'а:


Чтобы не править xml руками, можно использовать Job DSL и/или Pipeline

Будет выглядеть как-то так

    ...
    steps {
        batchFile('''CD "%BUILD_FOLDERS%\Builder"
PVS-Studio_setup.exe /VERYSILENT /SUPPRESSMSGBOXES ...
Publisher_setup.exe /VERYSILENT /SUPPRESSMSGBOXES''')
    }
    ...


Плюсы — наглядность конфигов
Минусы — для нетривиальных случаев надо знать особенности Groovy
А зачем вообще править конфиги jenkins руками?
Незачем. Через WEB очень удобно. Не соглашусь, что править конфиги руками в общем случае это зло, но у Jenkins они действительно не предназначены для этого.

Да ладно? По мне, так какой угодно конфиг лучше чем этот веб-интерфейс.


Чтобы поднять 10 стендов — в конфиге надо сделать 10 копи-паст и заменить параметры. А в веб-интерфейсе это — полдня тыканья мышкой.

С переиспользованием Job'ов как раз отпала необходимость много копировать. Да, мышкой попользоваться придётся, но после полного развёртывания, иногда вносить изменения совсем не накладно.
Так ДевОпс же… Configuration as Code, нее?
Для этого Pipeline есть. А конфиги для этого не предназначены.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий