Вопрос. Имеем большие репозитории и медленные скорости. Из-за чего очень

долго длятся пайплайны.
Azure DevOps, PR пайплан, выкачиваем только эфимерный(виртуальный) комит, и запускаем на нем werf build --repi xxx ($WERF_VIRTUAL_MERGE стоит в true). Запускается фетчинг и выполняется 3 раза по 3-4 минуты, потому что в werf.yaml на стапеле у нас описаны 3 образа в которых есть git maping. Делаем сборку, после чего запускаются(если надо) около 15 джоб которые на этом же виртуальном комите делают werf plan.

Все работает, но очень медленно. Начали играться-ковырятся. Сделали
forceShallowClone: true
allowUnshallow: false

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

Вопрос зачем мы делаем фетч 3 раза для репозитория который есть локально? Притом 3 раза отдельно и последовательно. И как быть с пкресборками на одном комите с настройками
forceShallowClone: true
allowUnshallow: false

Версия 2.7.1

11 ответов

9 просмотров

Зачем вы используете WERF_VIRTUAL_MERGE?

Основной fetch вызывается для того, чтобы выполнить unshallow и подтянуть историю коммитов. Что касается 3 раз, то хорошо бы посмотреть дебаг лог WERF_DEBUG_TRUE_GIT=1 WERF_DEBUG=1.

Alex-Подрябинкин Автор вопроса
Aleksei Igrychev
Основной fetch вызывается для того, чтобы выполнит...

Через дебаг я понял что фетч запускается для каждого образа где я делаю гитмапинг

Alex-Подрябинкин Автор вопроса
Aleksei Igrychev
Git mapping с remote используется или только local...

Только локал, одна репа, 3 разных директории на которые натравливаюсь

А там точно fetch происходит? С таким текстом "Fetching origin"? Какая у вас версия Git?

Alex-Подрябинкин Автор вопроса
Aleksei Igrychev
А там точно fetch происходит? С таким текстом "Fet...

┌ Fetching origin └ Fetching origin (198.27 seconds) ┌ Fetching origin └ Fetching origin (198.66 seconds) ┌ Fetching origin └ Fetching origin (196.09 seconds) git version 2.25.1

Alex Подрябинкин
┌ Fetching origin └ Fetching origin (198.27 second...

Сегодня не успели. Завтра доберёмся

Alex-Подрябинкин Автор вопроса
Aleksei Igrychev
Сегодня не успели. Завтра доберёмся

ну по факту мы порешали сейчас так, что качаем теперь всю репу со всей историей на системном чекауте от Azure Devops, и ставим forceShallowClone: true allowUnshallow: false и нету этих перекачиваний, и кеш работает как хотели. Немного долго качается на системном, но лучше чем 3 раза на самом билде

Alex Подрябинкин
ну по факту мы порешали сейчас так, что качаем теп...

Если вся история, то werf и не будет fetch выполнять. Только в случае shallow.

Alex-Подрябинкин Автор вопроса
Aleksei Igrychev
Если вся история, то werf и не будет fetch выполня...

завтра перепроверю. такое ощущение что перекачивало...но перепроверю

Похожие вопросы

Обсуждают сегодня

Всем привет. Понимаю, что, наверное, сто раз поднимали эту тему, но по ключевым словам не смог найти. Как передать в values.yaml зависимого хелм-чарта теги образов, собираемых...
Vitalik Petrov
4
@aigrychev, @ilya_lesikov добрый день! а поддерживает ли werf helm xxxx или werf bundle xxxx работу с сабчартами через http-прокси? (сработает ли использование HTTP_PROXY/HTTP...
Сергей Голод
4
Добрый день! Удалил все файлы с переменными из проекта, получил Error: release deploy: process resources: error validating adoptable resources: adoption validation failed: re...
Evgheni Mad
2
Всем привет. Werf v2.10.5 При удалении релиза вместе с неймспейсом (werf dismiss --namespace namespace_name) Сыпятся ошибки ┌ Waiting for resources elimination: namespaces/rel...
Vitalik Petrov
1
Привет! Вопрос про werf helm Приложение деплоится через werf helm upgrade --atomic Иногда(все условия для воспроизведения до конца непонятны, но есть версия, что это происходи...
𝓐𝓵͢͢͢𝓮𝔁 C
2
Всем привет. Сегодня добавили в приложение дополнительный образ nginx, в который докидывается системная статика прям в образ. При деплое бандлами деплоилось 200+ джоб(клиентов...
Владимир Муковоз
6
Добрый день, после перехода с версии 1.2 на 2.10 werf cleanup начал удалять использующиеся теги, и до и после обновления использовались дефолтные политики keepPolicies Подскаж...
Дмитрий
29
Друзья, добрый день. Прошу подсказать с базовым вопросом по использованию CI переменных gitlab в werf.yaml. Хочу в beforeInstall использовать env переменную с токеном. Мне нуж...
Anton Zol
10
Блин а мне как поумнеть ?
Toxin
191
Вопросик не совсем werf. Но вдруг мы подскажите воркэраунд или ещё что-нибудь. Могу ли я как-нибудь в моменте деплоя внутри heml рендера получить хэшсумму файла шаблона (./tem...
Alex Подрябинкин
11
Карта сайта