Можете ли вы разместить конвейер bitbucket внутри компании?

#continuous-integration #pipeline #bitbucket-pipelines #bitbucket-cloud

#непрерывная интеграция #конвейер #bitbucket-конвейеры #bitbucket-облако

Вопрос:

В настоящее время мы используем bitbucket cloud для размещения нашего репозитория grails-app. Мы хотим настроить некоторые конвейеры для выполнения таких действий, как запуск модульных тестов, и убедиться, что приложение компилируется, прежде чем сможет объединить ветку с мастером.

Я знаю, что это можно довольно легко сделать, позволив им разместить конвейер и передать хорошо написанный файл канала, однако существует проблема, связанная с тем, что наше приложение очень большое, и даже на совершенно новых macbook pro компиляция занимает 20 минут, на некоторых старых это может занять 2 часа или больше. Grails, к счастью, компилирует только те файлы, в которых есть изменения с момента последней компиляции. Однако это не может быть использовано в конвейере bitbucket, который при каждом запуске приложения отрабатывает новую загрузку.

Моим решением этого было желание настроить конвейер для запуска для нас внутри, чтобы он уже мог запускать приложение, и просто переключаться на нужную ветку и запускать оттуда. Это все еще может занять время при переключении между 2 сильно расходящимися ветвями, но это лучше, чем каждый раз компилировать из свежих.

Кажется, я не могу найти никакой документации по размещению конвейера внутри bitbucket cloud, кто-нибудь знает, возможно ли это, и если да, то где есть документация для этого?

Также было бы приемлемо найти решение самой проблемы длительной компиляции с помощью конвейеров, размещенных в bitbucket.

Ответ №1:

Несколько недель назад автономные раннеры были доступны в виде публичной бета-версии. Вот подробности: https://community.atlassian.com/t5/Bitbucket-Pipelines-articles/Bitbucket-Pipelines-Runners-is-now-in-open-beta/ba-p/1691022

Кроме того, если вы хотите сохранить некоторые из ваших файлов из одной сборки в следующую, чтобы не повторять одну и ту же работу снова и снова, взгляните на кэши:https://support.atlassian.com/bitbucket-cloud/docs/cache-dependencies есть несколько встроенных, которые вы могли бы использовать, но вы также можете определить свои собственные. По сути, это просто способ сохранения содержимого каталога для будущей сборки.