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

долго длятся пайплайны.
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 ответов

3 просмотра

Зачем вы используете 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 выполня...

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

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

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

Здрасьти! Делаю Buildah+Docker-multistage. В первом имадже делаю COPY кода. Из них генерю файлы: 31229b03ef2ed26c5e02d0e8320f8a04 ./package.json a0b92a158d0bed9570350af0ed3e...
Vyacheslav
3
Всем привет, подскажите , можно ли управлять порядком выкатки зависимых чартов? Например как заставить сначала развернуть elasticsearch а заним kibana
Juriy K
2
Вопросик не совсем werf. Но вдруг мы подскажите воркэраунд или ещё что-нибудь. Могу ли я как-нибудь в моменте деплоя внутри heml рендера получить хэшсумму файла шаблона (./tem...
Alex Подрябинкин
11
Всем привет. Werf v2.10.5 При удалении релиза вместе с неймспейсом (werf dismiss --namespace namespace_name) Сыпятся ошибки ┌ Waiting for resources elimination: namespaces/rel...
Vitalik Petrov
1
Друзья, добрый день. Прошу подсказать с базовым вопросом по использованию CI переменных gitlab в werf.yaml. Хочу в beforeInstall использовать env переменную с токеном. Мне нуж...
Anton Zol
10
Всем привет. Сегодня добавили в приложение дополнительный образ nginx, в который докидывается системная статика прям в образ. При деплое бандлами деплоилось 200+ джоб(клиентов...
Владимир Муковоз
6
всем привет) подскажите, судя по поиску, пару лет назад возникал вопрос насчет преобразования секретов при шифровании к строковому типу. Что-то за это время менялось? Сейчас ...
Denis Yudin
9
В английской версии документации к докер инструкциям я увидел этот пункт: > Tip: you can also export environment variables right to the user stage instructions. В русской ...
Alex
3
Добрый день, после перехода с версии 1.2 на 2.10 werf cleanup начал удалять использующиеся теги, и до и после обновления использовались дефолтные политики keepPolicies Подскаж...
Дмитрий
29
Блин а мне как поумнеть ?
Toxin
191
Карта сайта