Я пытаюсь интегрировать свой рабочий процесс шеф-повара в свои обычные рабочие процессы непрерывной интеграции / развертывания.
Мне уже удалось создать задачу jenkins, которая проверяет репозиторий git и запускает foodcritic, но я не могу понять последний шаг: отправить кулинарную книгу на сервер шеф-повара.
некоторые идеи, о которых я подумал:
Мой строительный узел будет доступен как OSX и debian - если это необходимо для моего возможного выбора инструмента.
Так что любой опыт будет оценен по достоинству!
Если вы хотите отправить кулинарную книгу на сервер шеф-повара только в целях тестирования, возможно, вам будет лучше с нулевой повар который представляет собой «быстродействующий сервер Chef в памяти для тестирования и индивидуальных целей».
Или, если вы просто пытаетесь протестировать кулинарные книги, вы можете запустить весь тест без поварского сервера, используя тест-кухня + minitest-chef-handler. Я бы посоветовал вам не использовать "летучие мыши"но вместо этого следуйте инструкциям minitest-chef-handler примеры тестов
Примечание Serverfault: я все еще не могу опубликовать более двух ссылок, чтобы стать новым участником, поэтому попробуйте следовать им ниже:
minitest-chef-handler
github: calavera/minitest-chef-handler
bats
github: test-kitchen/test-kitchen/wiki/Getting-Started
test cases examples
github: calavera/minitest-chef-handler#test-cases
Просто комментарий: Foodcritic - это недостаточное тестирование для перехода на продакшн ИМХО. Лично мне бы хотелось провести какое-то тестирование Vagrant на виртуальной машине перед любым автоматическим переходом в производство.
Однако это ваше призвание, а не мое.
В конце концов, что вам нужно сделать, это запустить где-нибудь команду ножа. Либо это в Дженкинсе, либо в процессе за пределами Дженкинса.
Если вы не можете / не хотите запускать нож в Jenkins, я бы предложил использовать Jenkins для перемещения кода между ветвями git. (например, Jenkins отслеживает тестовую ветвь, и когда код проходит тесты, вы используете доступ git, чтобы переместить его в производственную ветку.)
Затем вам нужно будет создать процесс за пределами Jenkins, который более или менее выполняет то же самое, что и Jenkins (отслеживает репозиторий и принимает меры при обнаружении изменений). Jenkins очень легко настроить, поэтому, если есть опасения по поводу использования основного сервера, вы можете запустить «автономный» jenkins на отдельной машине, которая только что загрузила нож.
Вы не одиноки в этой лодке, все немного затрудняются с тем, как создать рабочий процесс повара, который будет работать для их организации.