Size: a a a

2020 October 08

RI

Ruslan Ibragimov in Kotlin Moscow
Ⓢⓔⓡⓖ
И давайте различать сборки на компьютере девелоперов от сборок на ci cd- среде - к ним разные требования
build cache + remote cache как раз таки для разработчиков и создан
чтобы после очередного чекаута не пришлось собирать с нуля 30 минут весь проект
источник

MZ

Maxim Zinchenko in Kotlin Moscow
Ⓢⓔⓡⓖ
И давайте различать сборки на компьютере девелоперов от сборок на ci cd- среде - к ним разные требования
да, речь только про CI конечно
источник

RI

Ruslan Ibragimov in Kotlin Moscow
> We’re really pleased with how the migration went and the decrease in build times that we have seen. CI builds are now taking roughly 20 minutes on average, 3-4 times faster than before. Local builds are taking an average of 2 minutes 30 seconds, which is 20-30 times faster than before.

Это про то что речь только про CI)
CI можно использовать на пользу
источник

MZ

Maxim Zinchenko in Kotlin Moscow
Ruslan Ibragimov
Ну объективно из больших проектов на мавене я видел spring-boot и то он уже уехал на gradle и поделился замечательными результатами 🙂 https://spring.io/blog/2020/06/08/migrating-spring-boot-s-build-to-gradle

Когда я переводил свои проекты на gradle тоже замечал ускорение.

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

RI

Ruslan Ibragimov in Kotlin Moscow
Maxim Zinchenko
это интересно. особенно с учётом того, что они используют gradle в стиле maven, то есть без всяких императивных скриптов и с плагинами.
не особо понятно, за счёт чего получается выигрыш, про это они вообще ничего не пишут.
возможно он получился потому, что при переносе они радикально проревьюили сборку и убрали всё лишнее
Ну когда на kts переходишь, сразу хочется на плагины перейти. Оно как-то само-собой получается) Я вот в своих домашних и рабочих проектах еще до spring-boot на такой подход перешел
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Maxim Zinchenko
это интересно. особенно с учётом того, что они используют gradle в стиле maven, то есть без всяких императивных скриптов и с плагинами.
не особо понятно, за счёт чего получается выигрыш, про это они вообще ничего не пишут.
возможно он получился потому, что при переносе они радикально проревьюили сборку и убрали всё лишнее
Пишут же - build cache
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Я смотрел тот PR, ничего не убрали, все осталось там же. И сборки документации и линтеры, все на месте
источник

MZ

Maxim Zinchenko in Kotlin Moscow
плюс тут речь всё-таки о сборке с тестами и большая часть описанного ускорения относится к тестам. это довольно отдельная тема, в maven мультимодуле c тестами действительно всё тухло, если не заморачиваться
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Я думаю живя N лет с таким огромным проектом они заморачивались
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Я могу просто посоветовать попробовать сделать параллельно gradle файлы, с помощью gradle init (он много чего автоматом подтянет) и сравнить
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Я даже упертых любителей XML убеждал цифрами, но их сначала нужно получить, благо не очень сложно для стандартных проектов
источник

MZ

Maxim Zinchenko in Kotlin Moscow
Ruslan Ibragimov
Пишут же - build cache
Thanks to the remote build cache, a clean checkout can be built in 3 minutes.
Это всё-таки не clean build, поэтому читерство. Переходить на gradle ради build-cache... Ну такое себе. Включи incremental, не делай clean. Gradle правда не будет тратить время и на остальные фазы кроме компиляции, но это уже миллисекунды.
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Maxim Zinchenko
Thanks to the remote build cache, a clean checkout can be built in 3 minutes.
Это всё-таки не clean build, поэтому читерство. Переходить на gradle ради build-cache... Ну такое себе. Включи incremental, не делай clean. Gradle правда не будет тратить время и на остальные фазы кроме компиляции, но это уже миллисекунды.
Первый билд все равно будет 20 минут тогда. Обновление версия языка, билд системы - бам, 20 минут.
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Возможно даже jdk как часть ключа в кешах incremental билда
источник

MZ

Maxim Zinchenko in Kotlin Moscow
Хотелось бы, чтобы в CI каждый билд был первым. JDK и прочее окружение это забота CI и благодаря Docker это всё поднимается чистое моментально
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Как бы все технологии которыми мы пользуемся читерство) Поэтому meltdown и spectre сущесутвую. А без них было бы совсем грустно
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Maxim Zinchenko
Хотелось бы, чтобы в CI каждый билд был первым. JDK и прочее окружение это забота CI и благодаря Docker это всё поднимается чистое моментально
ну для remote cache можно делать чистый билд на CI, не обязательно его реюзать для самого CI 🙂
источник

MZ

Maxim Zinchenko in Kotlin Moscow
Вот мне и интересно, сколько будет работать действительно чистая сборка в gradle. Потому что сравнивать инкрементальную сборку gradle с чистой сборкой maven и говорить об ускорении в 4 раза...
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Maxim Zinchenko
Вот мне и интересно, сколько будет работать действительно чистая сборка в gradle. Потому что сравнивать инкрементальную сборку gradle с чистой сборкой maven и говорить об ускорении в 4 раза...
Ну вот сравнить теслу и жигу, и сказать что тесла в пять раз быстрее, ну так понятно же там электодвигатель)
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Главное что если я сейчас захочу собрать spring boot локально, это займет у меня 3 минуты, а не 20 как раньше
источник