powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Maven и зависимость по коммиту гита
48 сообщений из 48, показаны все 2 страниц
Maven и зависимость по коммиту гита
    #40083671
ahmaroot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.

Как в pom.xml в качестве version в зависимости указать конкретный коммит?
Например, как то так:

Код: java
1.
2.
3.
4.
5.
<dependency>
            <groupId>com.someCompanyName</groupId>
            <artifactId>service-client</artifactId>
            <version>121213123123213123</version>
        </dependency>
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083676
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очевидно, что вначале надо выложить в репозиторий с номером коммита. Это зависит от: как это деплоится сейчас и какие инструменты ci/cd используются
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083698
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ahmaroot,
Одна версия по логике это несколько коммитов разных прогеров.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083705
Во время сборки той зависимости ей нужно будет подставить в версию номер коммита, например, с помощью mvn versions:set -DnewVersion=... .

Однако версия не должна содержать только коммит потому как ты можешь несколько раз собраться из одного и того же коммита. Туда еще должен входить какой-то порядковый build number. Он и за сортировку будет отвечать (нам часто интересно знать какая версия более поздняя). Или включать в версию timestamp с точностью эдак до секунды.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083706
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Version order - важное замечание.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083755
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ahmaroot
Всем привет.

Как в pom.xml в качестве version в зависимости указать конкретный коммит?
Например, как то так:

Код: java
1.
2.
3.
4.
5.
<dependency>
            <groupId>com.someCompanyName</groupId>
            <artifactId>service-client</artifactId>
            <version>121213123123213123</version>
        </dependency>



Не надо так делать.
ИМХО можно использовать ветки-релизы для соответствующих версий артефакта.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083773
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для работы с версиями годятся branches и tags.

Теги обычно используют для релиза. Чтобы отметить в истории master какую-то фиксированную
точку и иметь к ней возможность вернуться.

Код: java
1.
2.
git tag -a v-01 -m "V-01 with super-puper feature"
git push --follow-tags



Git revision number не годятся потому-что их смысл несколько иной. Я например на 1 разработку
могу сделать много коммитов и много rev-numbers зайдет в фича-бранч.

Тоесть финалом разработки является бранч или тег.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083814
Т.к. тут много устаревших советов, хотел бы пролить свет на современные CI & CD подходы к ветвлению и релизам:
1. Ветки мы стараемся не использовать. Все в одной ветке, aka trunk-based development & branching by abstraction. Если не получается, ну тогда создаем короткоживущие ветки которые стараемся максимально быстро влить обратно в master. Релизные ветки в современных продуктах не должны использоваться если мы не поддерживаем сразу несколько релизов .
2. Потенциально каждый коммит может быть релизнут. Поэтому в версии не должно быть:
а) Веток или тегов, потому как это значит мы сначала решили что релизить, а потом зарелизили (а надо наоборот - по потому прошла
ли сборка автоматический пайплайн и ручные проверки мы определяем годится ли она в релизы).
б) "Красивых" релизных версий типа x.y.z. Опять же - потому как заранее мы не можем (не должны) знать релизная ли это версия. Вполне адекватной версией будет обычный Build Number. Можно x.y.z-build-number, можно "снапшотные" мавен версии типа x.y.z-timestamp-build-number.
3. Т.е. потому как каждая сборка может быть релизнута - каждая версия (будь то релиз или нет) должны иметь одинаковый вид.

Коммит можно хранить в версии (добавляя туда также build no), но от этого обычно ни холодно, ни жарко. Коммит можно и просто внутрь артефакта писать и отдавать по /version.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083822
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ahmaroot,

у меня все крайне тупо организовано:
- принятие ПР в develop "означает", он прошел тесты, ревью и потенциально можно "куда-то" установить
- гитлаб об этом факте радостно сообщает в Jenkins, а тот запускает что-то в духе:

Код: java
1.
2.
3.
4.
5.
mvn -e --batch-mode -Prelease release:clean release:prepare \
 -DreleaseVersion=${pom.version%-SNAPSHOT}-commitId \
 -DdevelopmentVersion=pom.version \
 -DpushChanges=false \
 -DpreparationGoals="clean deploy"


- что в свою очередь собирает все и публикует артефакты в nexus

вам также наверное можно в проект добавить гитовый submodule, прописать его в реакторе и переключаться на нужный коммит
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083842
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev,
Как это все в одной ветке?
Подробнее.
Пилят 20 прогеров 20 фич с новым кодом.
Все 20 в мастер коммитят?
Например, в конце дня 20 челов скинули НЕКОМПИЛИРУЕМЫЙ код в мастер ветку?
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083859
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не одобряю и не осуждаю подход Станислава. Просто каждая команда в зависимости
от условий выбирает себе как работать. Чаще всего как-то коллегиально это всё происходит.
Собрались. И очень быстро решили. Это как на пикнике - люди очень быстро решают где поставить
палатку и развести огонь. Интуитивно.

Мне нравится подход GitLab flow при котором есть несколько осей разработки. Dev/QA/UAT/Master
(их может быть больше и другие названия но суть одинакова).

Слева направо оси - это вечно-живущие бранчи откуда делают перенос (merge) разработанных
фичей или баго-фиксов слева направо. Перенос можно сделать когда угодно. Это вызывает
триггеры CI/CD сред которые пересобирают енвы и деплоят все что надо. При сломанных тестах
или отрицательном аксептансе например на UAT - зажигается красная лампочка напротив оси
и всем видно что сломано и где.

При таком подходе закинуть в мастер 20 бизнес фич которые сломаны просто невозможно. Т.к. они не пройдут
все quality-gates еще на фазах QA/UAT.

Есть еще лекция Бугаенко на тему автоматизации этих quality-фильтров. Маэстро ратует за максимальную
автоматизацию проверок таким образом что в принципе сломать мастер невозможно. Я не совсем согласен
с ним. Однако те среды и стратегии которые я видел были часто настолько плохи что даже подход Бугаенко
был-бы благом.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083878
PetroNotC Sharp
Все 20 в мастер коммитят?
Например, в конце дня 20 челов скинули НЕКОМПИЛИРУЕМЫЙ код в мастер ветку?
Не понял, почему он не компилируется? Если мы следуем Continuous Integration, то каждый пуш в мастер должен быть зеленым. Если это не так, то либо быстро-быстро чиним, либо откатываем. В общем-то при работе с ветками мы должны придерживаться той же стратегии.
maytonМне нравится подход GitLab flow при котором есть несколько осей разработки. Dev/QA/UAT/Master
(их может быть больше и другие названия но суть одинакова).Ох, счас видимо каждый создатель Git Server'a должен создать XXX Flow :) Если не учитывать лишних merge commit'ов (ох я представляю что в истории творится), лишних пересборок одного и того же под каждый энв, лишних веток про которые нужно помнить и удалять после релизов, лишних слложностей в скриптах - жить можно.

Вот только CI & CD - это о том чтоб не делать лишнего. Деплой в прод - это про деплой, а не про "пересобрать все заново и задеплоить уже другую версию". Один из постулатов Continuous Delivery - build once, deploy everywhere. А тут, переконфигурили nexus/jenkins и собралась уже какая-то чуть другая версия и пошла так в прод (но сначала подождали пока через пайплайн снова пройдет)..

Но в принципе не самая худшая схема из тех что я видел. Не GitFlow, и то радость.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083879
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev,
Да банально гит не даст перейти по истории или по веткам если не закоммичено. Будет сообщение "Закоммиться или все потеряешь!)))).
Сам гит так работает.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083880
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev,
Понятно что можно коммитить локально не заливая на сервак.
Ну а как твой код посмотрит тогда твой начальник?
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083881
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
Вот только CI & CD - это о том чтоб не делать лишнего. Деплой в прод - это про деплой, а не про "пересобрать все заново и задеплоить уже другую версию". Один из постулатов Continuous Delivery - build once, deploy everywhere. А тут, переконфигурили nexus/jenkins и собралась уже какая-то чуть другая версия и пошла так в прод (но сначала подождали пока через пайплайн снова пройдет)..


а что в опенсорсе есть именно для CD? я как-то давно смотрел (лет 5 назад) было все совсем печально: либо за деньги, либо лапша из непонятных скриптов, сейчас складывается впечатление, что "проблема сама исчезла", потому что деплой заменили на разворачивание контейнеров (ну и лапша переехала в Dockerfile ).
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083882
Андрей Панфилов
Stanislav Bashkyrtsev
Вот только CI & CD - это о том чтоб не делать лишнего. Деплой в прод - это про деплой, а не про "пересобрать все заново и задеплоить уже другую версию". Один из постулатов Continuous Delivery - build once, deploy everywhere. А тут, переконфигурили nexus/jenkins и собралась уже какая-то чуть другая версия и пошла так в прод (но сначала подождали пока через пайплайн снова пройдет)..


а что в опенсорсе есть именно для CD? я как-то давно смотрел (лет 5 назад) было все совсем печально: либо за деньги, либо лапша из непонятных скриптов, сейчас складывается впечатление, что "проблема сама исчезла", потому что деплой заменили на разворачивание контейнеров (ну и лапша переехала в Dockerfile ).
Не понял, про какую часть CD вопрос? Если про пайплайн, то обычный Jenkins. Вот только деплой бы для секурности вынести в отдельный инструмент (а женкинс его дергает), но я по старинке пока - женкинсом делаю.
PetroNotC SharpПонятно что можно коммитить локально не заливая на сервак.
Ну а как твой код посмотрит тогда твой начальник?Вопрос про Code Review? Есть разные подходы:
- Micro code reviews с Gerrit'ом
- Post-push code review (мое название), если доверяем разработчикам
- Создание ветки для PR. Но тут ветка создается только как инструмент для PR.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083886
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev,
Угу.
Итого
- Geritt не про то. Так как юзкейс что я сказал выше шире чем превью кода,
- твое название это несолидно брат)))) Это по русски "проверить когда закоммитил и уже поздно?"
- создание ветки. Вот оно!
О чем я и говорю. С одним мастером неудобно.
Кому нравится ветка на разработчика. Кому - ветка на фичу.
Монопесуально.
Но факт в том что ветки нужны. И больше одной.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083889
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev,
"
При переходе на Git вы должны привыкнуть к тому, что для того, чтобы поделиться фиксацией с коллегами, требуется три шага. В большинстве систем контроля версий есть только один шаг: передача из рабочей копии на общий сервер. В Git вы добавляете файлы из рабочей копии в область подготовки. После этого вы фиксируете их в своем локальном репозитории. Третий шаг - отправка в общий удаленный репозиторий. После того, как вы привыкнете к этим трем шагам, следующей проблемой станет модель ветвления.
"
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083896
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev,

Хммм. Почитал про Gerrit.
Получается что он работает опять таки через доп ветку гита
авторGerrit - система совместной инспекции кода, написанная сотрудником Google и используемая при написании Android OS. Цель Gerrit состоит в том, чтобы заставлять разработчиков просматривать код друг друга до попадания оного в общую ветку проекта. Реализовав некую функциональность, разработчик не посылает плод своих трудов напрямую в активную ветку, но отправляет его в отдельно создаваемый для этой цели бранч
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083923
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev

Вот только CI & CD - это о том чтоб не делать лишнего. Деплой в прод - это про деплой, а не про "пересобрать все заново и задеплоить уже другую версию". Один из постулатов Continuous Delivery - build once, deploy everywhere. А тут, переконфигурили nexus/jenkins и собралась уже какая-то чуть другая версия и пошла так в прод (но сначала подождали пока через пайплайн снова пройдет)..

Но в принципе не самая худшая схема из тех что я видел. Не GitFlow, и то радость.

Ты заметил как последние лет 10-15 стремительно дешевеет мегабайт и мегфалоп?

Одна контора которая торгует дисковыми стойками говаривала "Gigabytes - free, IOPS - cost".

Всё подешевело. Виртуальных хостингов как грязи. Но вот что не стало дешевле - так это усилия
специалистов техподдержки (даже индусов 1-st line) усилия разработчика и QA.

Внимание человека который смотрит в логи или в графики мониторинга - стоит дорого.
Никак оно не удешевляется. Поэтому с этой точки зрения мне вообще плевать сколько раз конвейер CI/CD
стартует. Пускай хоть каждую минуту. Цена этого всего - успешный релиз. А сколько там в атмосферу
улетит тепла - пускай Грета Тунберг считает вместе с коровами и самолётами. Я в этом смысле техногенный
маньяк и консерватор. Стоит сервер - пусть работает.

Вообще все эти стратегии - просто пустяки по сравнению с тем например сколько государства и большие
корпорации вкладывают в глобальное слежение. Или сколько крипто-панки тратят на поддержку распределенных
транзакций с майнингом.

Вот такие пироги IMHO.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083931
PetroNotC Sharp
Хммм. Почитал про Gerrit.
Получается что он работает опять таки через доп ветку гита
Через reference, но не через ветку. Но это и не важно потому как это лишь технические детали того как работает Gerrit. Сами разработчики веток и прочих reference'ов не создают для код ревью.
maytonВнимание человека который смотрит в логи или в графики мониторинга - стоит дорого.
Никак оно не удешевляется. Поэтому с этой точки зрения мне вообще плевать сколько раз конвейер CI/CDДак это и есть время сотрудников. Окончания конвейера нужно дождаться чтоб делать ручные проверки. И его нужно дождаться для релиза. Бывает нужен хот фикс какой-то, а ждать его приходится часами. Потому как нужно автоматические проверки прогнать (системные функциональные и нагрузочные тесты очень медленная роскошь), а потом еще и вручную что-то проверить. А что если по-середине что-то упало? Надо дофиксить и заново запустить. Так вот день и проходит.

В общем и целом лишние ветки приводят к увеличению как Lean'овского Lead Time, так и TOC'овского Inventory Costs.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083946
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev,
авторСами разработчики веток и прочих reference'ов не создают для код ревью.
У меня сосед тоже ветки боится создавать. Каждый день копирует просто папку с исходниками на диске. 365 папок в году))))
ОК. Ваши разрабы не едят мяса. Это религия.
Удачи!
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083965
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я держу 2 копии проекта в двух фолдерах. Чтоб в 2 среды разработки открывать один и тот-же проект в разных бранчах
и стоять в двух дебаггерах одновременно.

Я понимаю, что это - антипаттерн работы, но мне почему-то так удобно. Если кто знает оптимизацию или автоматизацию
подобного - сообщите plz.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083969
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я понимаю, что это - антипаттерн работы, но мне почему-то так удобно. Если кто знает оптимизацию или автоматизацию
подобного - сообщите plz.
Очевидно же: нужно два разных десктопа
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083971
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
mayton
Я понимаю, что это - антипаттерн работы, но мне почему-то так удобно. Если кто знает оптимизацию или автоматизацию
подобного - сообщите plz.
Очевидно же: нужно два разных десктопа
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083973
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я держу 2 копии проекта в двух фолдерах. Чтоб в 2 среды разработки открывать один и тот-же проект в разных бранчах
и стоять в двух дебаггерах одновременно.

Я понимаю, что это - антипаттерн работы, но мне почему-то так удобно. Если кто знает оптимизацию или автоматизацию
подобного - сообщите plz.
цель не описал. Автоматизацию чего?)))))
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083976
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я понимаю, что это - антипаттерн работы

в гите для этого даже отдельную мульку сделали - worktree. в голову тут же приходит пример проектов с android или node/npm - если нужно часто переключаться между сильно отличающимися бранчами, можно постареть пока все обновится/задаунгрейдится.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083977
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton
Я держу 2 копии проекта в двух фолдерах. Чтоб в 2 среды разработки открывать один и тот-же проект в разных бранчах
и стоять в двух дебаггерах одновременно.

Я понимаю, что это - антипаттерн работы, но мне почему-то так удобно. Если кто знает оптимизацию или автоматизацию
подобного - сообщите plz.
цель не описал. Автоматизацию чего?)))))

Автоматизацию всего. Моей работы. Нужно обновлять 2 локальных репо. Нужно стартовать 2 экземпляра среды
и настраивать одинаковый view. Рутина.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083980
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
Не понял, про какую часть CD вопрос? Если про пайплайн, то обычный Jenkins. Вот только деплой бы для секурности вынести в отдельный инструмент (а женкинс его дергает), но я по старинке пока - женкинсом делаю.


Ну давайте позанудствуем... В целом под "установкой" я понимаю примерно следующее:
- сформировать ранлист, где указаны определенные вехи и продолжительность операций
- согласовать (ну и назначить) время среди всех заинтересованных владельцев систем, а не только целевой
- оповестить пользователей о предстоящей недоступности (мне вот, к примеру, банк присылает оповещения что онлайн-кабинет не будет работать в определенный промежуток времени)
- согласовать доступность ключевых сотрудников на случай если что-то пойдет не по плану
- убедиться что из резервных копий можно-таки восстановиться
- в час Х создать резервные копии, если необходимо
- что-то куда-то накатить
- прогнать смок-тесты
- оповестить, что систему можно проверять
- здесь пропущены итерации о том что делать если что-то пошло не по плану
- опционально оповестить пользователей о доступности системы

и вот с моей точки зрения шаг "что-то куда-то накатить" даже не имеет смысла автоматизировать:
- во-первых, он не особо-то и много времени занимает
- во-вторых, за это кто-то получает зарплату
- в-третьих, от релиза к релизу шаги меняются и нет никакого смысла это автоматизировать

однако все что сейчас существует на рынке, и в особенности в опенсорсе, даже эту задачу автоматизировать толком не в состоянии, здесь не особо вижу смысла накидывать кучу примеров в качестве подтверждения мысли, но в целом видится так, что все эти "автоматизации" зиждятся на трех китах:
- у заказчика неправильный дизайн приложения и нужно его менять
- у заказчика кривая архитектура и нужно ее менять
- ну мы тут у себя что-то запускали, а на проде внезапно что-то пошло не так, виноват дизайн и архитектура
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083981
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
То есть ты сделал
git clone //repo1 c:\dir1
git clone //repo1 c:\dir2
?
И чё?)))
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083993
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
То есть ты сделал
git clone //repo1 c:\dir1
git clone //repo1 c:\dir2
?
И чё?)))

Ладно забей. Не стоит это внимания.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40083998
Андрей Панфилов, CD как раз и решает все эти проблемы одним нажатием кнопки. Я даже часто это нажатие на плечи QA перекладываю, ведь они решают что сборка достойна.
Андрей Панфилов- сформировать ранлист, где указаны определенные вехи и продолжительность операцийЭто все в скрипте.
Андрей Панфилов- согласовать (ну и назначить) время среди всех заинтересованных владельцев систем, а не только целевойКак правило нет никакой необходимости. Разве что функционал сильно поменялся и мы хотим тренинг провести для сотрудников.
Андрей Панфилов- оповестить пользователей о предстоящей недоступности (мне вот, к примеру, банк присылает оповещения что онлайн-кабинет не будет работать в определенный промежуток времени)CD предполагает zero-downtime deployment (blue-green deployment, canary releases). Я последний раз деплоил с даунтаймом 10 лет назад (не, ну лукавлю - у меня были несколько релизов с даунтаймом даже во времена CD, но это большое исключение).
Андрей Панфилов- согласовать доступность ключевых сотрудников на случай если что-то пойдет не по плануС трудом припоминаю случаи когда что-то шло не так (CD от этого защищает), но наверно может быть. Для этого нужен либо деплой новой версии с фиксом (т.е. нужно это делать в рабочее время когда есть разрабы) если фикс быстрый, либо просто деплой предыдущей версии. Если база меняется только аддитивно (никаких rename/drop используемых колонок), то это piece of cake.
Андрей Панфилов- убедиться что из резервных копий можно-таки восстановитьсяЭто тоже легко автоматизируется и должно проверяться на постоянной основе. Где позволительно, резервные копии нужно накатывать на какие-то из дев окружений (PREPROD?), это же защитит от плохих миграций которые проходят везде кроме PROD'a.
Андрей Панфилов- в час Х создать резервные копии, если необходимо
- что-то куда-то накатить
- прогнать смок-тесты
Автоматизируется
Андрей Панфилов- оповестить, что систему можно проверятьНе знаю кому и зачем это надо. Это просто "пресс релиз".
Андрей Панфилови вот с моей точки зрения шаг "что-то куда-то накатить" даже не имеет смысла автоматизировать:
- во-первых, он не особо-то и много времени занимает
Во-первых времени это занимает прилично, т.к. это не единоразовая активность. Особенно учитывая все шаги с бекапами и пр. Во-вторых это очень ответственная процедура и в ней не должно быть ошибок. Для этого мы описываем ее в скриптах, которые тестируются на всех окружениях прежде чем будет применяться на проде.
Андрей Панфилов- во-вторых, за это кто-то получает зарплатуСтранный аргумент, за ковку подков тоже когда-то получали зарплату.
Андрей Панфилов- в-третьих, от релиза к релизу шаги меняются и нет никакого смысла это автоматизироватьПоследний раз менял скрипты даже не знаю когда.. 4 года назад наверно. И так в каждом проекте в которых я реализовывал CI/CD - скрипты создаются на начальных этапах и про них забывают. Разве что захотелось на какой-то новый софт перейти.
Андрей Панфиловоднако все что сейчас существует на рынке, и в особенности в опенсорсе, даже эту задачу автоматизировать толком не в состоянии, здесь не особо вижу смысла накидывать кучу примеров в качестве подтверждения мысли, но в целом видится так, что все эти "автоматизации" зиждятся на трех китах:
- у заказчика неправильный дизайн приложения и нужно его менять
- у заказчика кривая архитектура и нужно ее менять
- ну мы тут у себя что-то запускали, а на проде внезапно что-то пошло не так, виноват дизайн и архитектураНе понимаю о каких инструментах речь. CI/CD - это больше культурная и процессуальная вещь, изменения должны произойти в головах людей. Скрипты нужно самим написать, не знаю какие бы инструменты тут могли помочь. Скрипты прийдется скорей всего в каждом проекте заново писать, как и код (эх..).
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40084060
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev,

ну вот ваши цитирования по строчке не вызывают никакого желания вступать в дальнейшую дискуссию... Давайте так: если все по вашему мнению "автоматизируется", то, будте добры, назовите хотя бы название продукта, где все что я хочу реализовано (а не то что какой-то шаг якобы не нужен потому что вы с ним не сталкивались), а не слово "Jenkins" где все откровенно лепится из говна и палок (есть text area куда можно shell/grrovy писать - ну и пишем туда лапшу), ну или по крайней мере попробуйте доказать свое утверждение, что шаги инсталляции никогда не меняются, с учетом того что бывают миграции данных, которые идут довольно долго и для ускорения процесса что-то может запускаться параллельно, а что-то должно выполняться строго последовательно. То чем сейчас занимаются DevOps - это профанация чистой воды, у них сначала лапша г.кода жила в chief/ansible/etc, потом перекочевала в CI/CD, а потом в Dockerfile, однако от этого как она была лапшой так и осталась - каких-то качественных изменений за последние 15 лет в процессе разворачивания приложений так и не произошло (ну разве что перестали несколько приложений в один контейнер деплоить).
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40084115
Андрей Панфиловну вот ваши цитирования по строчке не вызывают никакого желания вступать в дальнейшую дискуссиюНе понял - ожидается что я просто пропущу половину из написанного и не прокомментирую?
Андрей ПанфиловДавайте так: если все по вашему мнению "автоматизируется", то, будте добры, назовите хотя бы название продукта, где все что я хочу реализовано (а не то что какой-то шаг якобы не нужен потому что вы с ним не сталкивались), а не слово "Jenkins" где все откровенно лепится из говна и палокДак ты против того что "все автоматизируется" или против скриптов? Я не утверждал что есть какой-то мифический инструмент который за нас все сделает. Нам нужно написать скрипты , магии не существует. Будет ли говно и палки или что там еще - ну это кто как напишет. Но работающую автоматизацию можно сделать даже из говна и палок. Это все равно будет намного лучше ручного вмешательства.
Андрей Панфиловну или по крайней мере попробуйте доказать свое утверждение, что шаги инсталляции никогда не меняютсяЭт что за выдумки, я где-то писал что они никогда не меняются? Я говорил про "редко".
Андрей Панфиловс учетом того что бывают миграции данных, которые идут довольно долго и для ускорения процесса что-то может запускаться параллельно, а что-то должно выполняться строго последовательноУ меня были миграции по неделе и ничего не пришлось менять в скриптах, все решалось исключительно поддержкой обратной совместимости в новых релизах пока шла миграция. Наверняка бывают какие-то исключения когда прийдется что-то вручную промигрировать или что-то в этом роде, но это все же исключения, я бы на них внимания не заострял.

Вообще удивительно что в 2021ом мы ведем такие дискуссии. Уже 5 лет назад казалось что ручные манипуляции во время деплоя - это каменный век.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40084161
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40084247
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
Stanislav Bashkyrtsev,
Как это все в одной ветке?
Подробнее.
Пилят 20 прогеров 20 фич с новым кодом.
Все 20 в мастер коммитят?
Например, в конце дня 20 челов скинули НЕКОМПИЛИРУЕМЫЙ код в мастер ветку?

не так конечно же
берешь таску - делаешь ветку под нее- выставляешь пр - пр проходит ревью и вливается в мастер

если у вас разработка ведется на несколько релизов сразу - то тогда пры вливаются в релизные ветки и оттуда уже все собирается автоматически в тимсити на нужные стенды

тость о чем стас и говорил короткоживущие ветки под конкретную таску

ну а автору остается лишь посочувствовать и почитать соверменные статьи CI/CD
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40084250
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O_79_O,
Он 3 раза подтвердил что ветки не создают и работают с мастер веткой.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40084251
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость

как же ты про гитхаб то родимый забыл
он же сейчас все это предоставляет

пс.лучше тим сити не будет уже- это топ тулза для больших распределенных команд и множества релизыных веток и стендов
но если денег нет ,можно и на гитхабе собираться
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40084253
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
O_79_O,
Он 3 раза подтвердил что ветки не создают и работают с мастер веткой.

комитят в мастер сразу?
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40084258
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кстати нашел баг,при редактировании сообщения нет возможности фото вставить ,если изначально сообщение было без фото,хотя кнопки выбора фото присутсвуют!
Ну что ж вы sql багоделы!)
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40084260
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В чем принципиальная разница между:
- коммит в мастер
- коммит в бранч => PR => слияние в мастер
?
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40084261
Alexander A. Sak
В чем принципиальная разница между:
- коммит в мастер
- коммит в бранч => PR => слияние в мастер
?
В такой постановке - никакой. Вот где есть разница:
1. push to branch -> push to branch -> push to branch -> review -> master
2. push to branch -> review -> master -> push to branch -> review -> master -> push to branch -> review -> master

Т.е. мы не доводим фичу до конца в ветке, а потом вливаем. А стараемся вливать периодически то что есть, что-то что еще не закончено. Это апогей Continuous Integration'а.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40084271
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav Bashkyrtsev
Alexander A. Sak
В чем принципиальная разница между:
- коммит в мастер
- коммит в бранч => PR => слияние в мастер
?
В такой постановке - никакой. Вот где есть разница:
1. push to branch -> push to branch -> push to branch -> review -> master
2. push to branch -> review -> master -> push to branch -> review -> master -> push to branch -> review -> master

Т.е. мы не доводим фичу до конца в ветке, а потом вливаем. А стараемся вливать периодически то что есть, что-то что еще не закончено. Это апогей Continuous Integration'а.

это апогей дурости,у меня в процессе разработки может быть такая каша в коде - сотни тысяч строк в коментах и тд
науха мне это вливать то ?и собствено ладно - как это пройдет код ревью?
вы либо мазохисты ,либо просто идиоты - утраиваете себе работу

я вот так представляю ваш процесс- взял таску начал ресерч сделал себе ветку - что то там наработал - в коде не разбериха,работает или нет непонятно - но надо влить в мастер)))

стасян надеюсь ты что то перепутал или у вас там в киргизии так принятно?)

ну и вообще как можно вливать в мастер без @QA - нужно влить на тест стенд- провести полноценное тестирование и потом тоько вливать
если у вас не так,а судя по всему нет - мне вас безумно жаль
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40084272
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
заведите себе пару стендов под дев,под тест,под препрод
наймите @qa которые умеют писать автотесты на питоне и тогда вас постигнет мысль о том - что нах не надо вливать что то неготовое ибо это неготовое невозможно оценить ни с точки тестов ни с точки бизнеса- ну да есть какая то куча кода и все)
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40084605
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
Уже 5 лет назад казалось что ручные манипуляции во время деплоя - это каменный век.


Мы с вами по-видимому на разных полях играем, отсюда и возникает отсутствие взаимопонимания... Со стороны ДИТ деплой наверное уже лет как 30 полностью автоматизирован: создается work order, он кем-то закрывается, каким именно образом он закрывается - это уже проблема вполне конкретного подразделения, они могут хоть пляски с бубном устраивать, главное чтобы work order был закрыт. Вы же пытаетесь зацепиться за несущественные детали процесса, откровенно забывая о куда более существенных: основная цель преследуемая в IT - это прозрачность и предсказуемость процессов, ну прямо как в армии: все должно быть строго параллельно и перпендикулярно, условно, если с какой-то системой начинаются проблемы, то при расследовании люди первым делом хотят увидеть какие регламентные и нерегламентные проводились в целевой системе и смежных, ровно также мониторинг должен в первую очередь не красивые картинки рисовать, а заводить инциденты в сервис-деске.

Ваш дженкинс тупо не позволяет вывести процессы ДИТ на новый уровень зрелости - у его создателей просто такие цели не стоят, в дженкинсе какие-то совсем уж очевидные дыры закрываются плагинами, работоспособность и поддержка которых откровенно оставляет желать лучшего, и говно-скриптами на shell и groovy, вот откройте какой-нибудь сценарий shell в своем проекте, если в нем второй строчкой не идет "set -e", то этот сценарий просто по определению говно (я кстати не поленился и посмотрел что в этом плане происходит в "соседнем" проекте, где люди "любят" писать shell-скрипты - из 30 сценариев только в трех есть заветная строчка, потому полез смотреть что твориться в linux-kernel (ну где же еще правду-то искать) - там в 50% случаев у скриптов "правильная шапка"), а еще не забываем про то, что в shell работа со строками происходит через "одно место" - нужно все время все обрамлять кавычками и экранировать символы, и приходим к выводу что что-то автоматизировать на shell - это, откровенно, так себе затея (вообще если обратить внимание на системы сборки для java, то развитие было такое: shell -> make -> ant -> maven/groovy, и уход в сторону shell - это явная деградация). Точно также, если что-то делается через SQL-портянки, то первой строчкой в этих портянках должно быть что-то в духе "WHENEVER SQLERROR EXIT FAILURE", аналогично в Dockerfile не должно быть тэга :latest и команд RUN
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40084609
Андрей Панфилов , я наверно повторюсь, но безотносительно того говно или не говно bash, хорошо на нем пишут или плохо - это все равно лучше ручного вмешательства.
Андрей ПанфиловСо стороны ДИТ деплой наверное уже лет как 30 полностью автоматизирован: создается work order, он кем-то закрывается, каким именно образом он закрывается - это уже проблема вполне конкретного подразделения, они могут хоть пляски с бубном устраивать, главное чтобы work order был закрыт.Многие путаются в термине DevOps - кто-то думает что это люди. На самом деле этот термин значит Devs & Ops команды работающие вместе . В более широком смысле это значит культуру компании, где не "моя хата с краю", а разные роли и департаменты работают друг с другом совместно чтоб получить хороший результат. Не каждый работает на свою метрику, а наоборот - он может пожертвовать своим временем ради других если это повышает производительность организации в целом . Т.е. мы боремся не за локальный, а именно за глобальный оптимум.

Это именно то к чему IT пришло чуть больше 10 лет назад - такая схема приводит к более успешным проектам и компаниям. А "заводится work order - они там пусть че хотят, то и делают" - это что-то из 90ых. Программисты должны разбираться на каких OS у них деплой, с какой конфигурацией. И без их помощи Ops инженеры не смогут сделать свою работу хорошо, ведь одна из их основных задач - полностью автоматизировать деплой. Именно от разработчиков зависит можно ли реализовать blue-green deploy, будут ли они релизить маленькие куски (с помощью branching by abstraction, feature toggles и пр) или большие (после которых возникает намного больше проблем), как что логируется и пр, пр.

И это же будет помогать затем программистам делать продукт лучше. Потому как они смогут получать своевременную обратную связь (из-за частых релизов) и дальше делать решения основываясь на данных, а не на догадках.

Да и в целом это повышает мораль, CI/CD - это спокойные проекты, без стрессов, где релиз всегда проходит гладко.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40084625
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O_79_O

как же ты про гитхаб то родимый забыл
он же сейчас все это предоставляет

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

Про bitbucket еще забыл. Там тоже какой-то конвейер CI/CD продается в комплекте.
https://bitbucket.org/product/features/pipelines

Мы использовали бакет лет 6 назад только как репо. Без этого конвейера. Поэтому не могу
сказать насколько там все хорошо или плохо. Пусть знающие откомментируют.
...
Рейтинг: 0 / 0
Maven и зависимость по коммиту гита
    #40084651
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev,
Ты немного смешал темы "Методология разработки ПО (водопадная, экстремальная, скрам,...
И тему гита.
Чаще релизы это относится к первому вопросу.
Слово Методология определяет те вещи о которых ты говоришь
...
Рейтинг: 0 / 0
48 сообщений из 48, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Maven и зависимость по коммиту гита
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]