Size: a a a

DevOps — русскоговорящее сообщество

2021 March 01

VC

Vladimir Chernyshev in DevOps — русскоговорящее сообщество
Есть гитрепа с несколькими фронтовыми приложениями (монорепа типа), должно билдится (webpack) в CI/CD, на каждый чих билдить и деплоить все приложения совсем не хочется, хочется только то, которое реально изменилось в отслееживаемой ветке. Но есть нюанс - там же кроме приложенийй лежит и “библиотека” shared, изменения в которой могут затронуть только одно-два приложения, а могут все. Можно как-то проверять что нужно перебелдить только затронутые приложения? Кто-нибудь решал такую задачу?
источник

VC

Vladimir Chernyshev in DevOps — русскоговорящее сообщество
shared как отдельный npm пакет не выделена, в приложения через import * from ‘../shared/* импортируется
источник

VC

Vladimir Chernyshev in DevOps — русскоговорящее сообщество
какой-нибудь генератор графа файлов используемых приложением и проверка изменились ли они напрашиваетя, но что-то ничего нагуглить не могу
источник

F

Floid in DevOps — русскоговорящее сообщество
Коллеги, кто использовал kibana + clickhouse + logstash, работает ли это связка ? Кто визуализировать логи в графане, как это примерно выглядит
источник

z

zeleniumex in DevOps — русскоговорящее сообщество
Vladimir Chernyshev
Есть гитрепа с несколькими фронтовыми приложениями (монорепа типа), должно билдится (webpack) в CI/CD, на каждый чих билдить и деплоить все приложения совсем не хочется, хочется только то, которое реально изменилось в отслееживаемой ветке. Но есть нюанс - там же кроме приложенийй лежит и “библиотека” shared, изменения в которой могут затронуть только одно-два приложения, а могут все. Можно как-то проверять что нужно перебелдить только затронутые приложения? Кто-нибудь решал такую задачу?
Если gitlab токак вариант

only:
   changes:
     - Dockerfile
     - project1/*
     - project2/*
источник

VC

Vladimir Chernyshev in DevOps — русскоговорящее сообщество
zeleniumex
Если gitlab токак вариант

only:
   changes:
     - Dockerfile
     - project1/*
     - project2/*
это же оба проекта будет билдить, разве нет? Тут именно какой-то инструмент нужен который будет парсить относительные импорты в проектах и смотреть не изменились ли они
источник

z

zeleniumex in DevOps — русскоговорящее сообщество
Vladimir Chernyshev
это же оба проекта будет билдить, разве нет? Тут именно какой-то инструмент нужен который будет парсить относительные импорты в проектах и смотреть не изменились ли они
Ну так сделай условия для всех проектов отдельно..
источник

z

zeleniumex in DevOps — русскоговорящее сообщество
сколько проектов столько условий.
источник

z

zeleniumex in DevOps — русскоговорящее сообщество
Либо пили отдельные репы
источник

z

zeleniumex in DevOps — русскоговорящее сообщество
И используй git submodules если нужно в разные проекты тащить шары разные
источник

z

zeleniumex in DevOps — русскоговорящее сообщество
Либо repotool и манифесты для разных бранчей.
источник

VC

Vladimir Chernyshev in DevOps — русскоговорящее сообщество
zeleniumex
Ну так сделай условия для всех проектов отдельно..
там на одном уровне с projectN есть shared - и не на каждое изменение с в ней нужно все перебилживать: ччто-то все проекты использует, а что-то только парочка
источник

z

zeleniumex in DevOps — русскоговорящее сообщество
Ну так без кучи условий ты это не решишь,  ведь у тебя по факту 10 проектов, и например изменились 2 файла в shared и они затронули 8 поектов,  тебе нужно 8 собрать верно? Значит у этих файлов должна быть принадлежность к N проектам,  и по условию отрабатывать step.  Тут либо архитектурно разделять репу на сабмодули либо явно тегировать каждый билд с явным условием что собирать.
источник

z

zeleniumex in DevOps — русскоговорящее сообщество
С сабмодулями например ты эту шаред распилишь на части под каждый проект, и например если в конкретную диру что-то пушнули то запускаешь билды конкретных проектов по тригеру,  а проекты уже подтягивают изменения из сабмодуля.   Но такие сложные штуки лучше repotool юзать.  У нас было что-то похожее, но еще более страшное там нужно было из разных не связанных проектов отслеживать изменения и собирать потом по кускам из всего мира... из 20-30 реп.
источник

z

zeleniumex in DevOps — русскоговорящее сообщество
один только fetch занимал несколько часов. ))
источник

VC

Vladimir Chernyshev in DevOps — русскоговорящее сообщество
zeleniumex
Ну так без кучи условий ты это не решишь,  ведь у тебя по факту 10 проектов, и например изменились 2 файла в shared и они затронули 8 поектов,  тебе нужно 8 собрать верно? Значит у этих файлов должна быть принадлежность к N проектам,  и по условию отрабатывать step.  Тут либо архитектурно разделять репу на сабмодули либо явно тегировать каждый билд с явным условием что собирать.
ну вот копаю в сторону анализаторов зависимостей для js/ts
источник

AF

Alexei Fedorov in DevOps — русскоговорящее сообщество
Как перенаправить в nginx запрос к ресурсам, которые лежат в директории assets?

Изначальный запрос:
/assets/images/logo.png

Надо чтобы запрашивал по адресу:
/ru/assets/images/logo.png
источник

OG

Oleg Glushko in DevOps — русскоговорящее сообщество
источник

AF

Alexei Fedorov in DevOps — русскоговорящее сообщество
server {
   # ...
   rewrite ^(/download/.*)/media/(\w+)\.?.*$ $1/mp3/$2.mp3 last;
   rewrite ^(/download/.*)/audio/(\w+)\.?.*$ $1/mp3/$2.ra  last;
   return  403;
   # ...
}

Что означает keyword  "last" в примере выше?
источник

AD

Alex Demidov in DevOps — русскоговорящее сообщество
Alexei Fedorov
server {
   # ...
   rewrite ^(/download/.*)/media/(\w+)\.?.*$ $1/mp3/$2.mp3 last;
   rewrite ^(/download/.*)/audio/(\w+)\.?.*$ $1/mp3/$2.ra  last;
   return  403;
   # ...
}

Что означает keyword  "last" в примере выше?
что будет если набрать в гугле 'nginx rewrite last' ?
источник