В HiP мы используем GitLab для размещения нашего кода, и мы нашли интегрированные конвейеры CI / CD, с которыми можно интегрироваться. Однако большинство циклов сборки / тестирования на самом деле происходит локально, прежде чем мы поднимемся до Gitlab.
Благодаря таким инструментам, как Kubernetes и Docker, наши локальные среды разработки практически полностью соответствуют нашим развертываемым промежуточным средам.
Тем не менее, после того, как мы получили хороший конвейер сборки в Gitlab, мы довольно быстро обнаружили, что наш локальный процесс сборки / развертывания немного отстает.
Итак, мы строим Тино. Названный в честь греческого бога непрерывной доставки (или авторов первой собаки, которая была названа в честь великого Фаустино Асприллы), Tino позволяет нам запускать те же сценарии сборки, что и Gitlab, локально на наших машинах.
Есть несколько инструментов, которые существуют в этом пространстве уже, однако после расследования мы обнаружили, что они были медленными или оставленными.
Tino работает быстро, как мы дошли до Docker, и просто запускаем локальную оболочку. У этого есть отличная консольная консоль с вкладками, чтобы помочь нам автозаполнять наш путь к величине локального развертывания. И, сопоставив наш локальный процесс сборки / развертывания с тем, что работает в Gitlab, мы обнаружили, что общие знания о нашем конвейере развертывания улучшены во всей команде.
Тино в действии
Вместо того, чтобы писать слишком много, несколько примеров использования
Задачи группируются по фазе их сборки
Запуск задачи
Параметры по умолчанию взяты из файла gitlab-ci
Значения параметров могут быть переопределены
Переопределения запоминаются
Также возможно задание, специфичное для локальной среды и не применимое к gitlab, путем создания .local-build.yml
файл, который следует за тем же форматом, что и .gitlab-ci.yml
HiP работает с открытым исходным кодом, и недавно мы открыли ряд внутренних проектов, которые мы используем при создании HiP. Тино является одним из тех, и доступен на Github здесь