Continious Integration на примере мода

Continious Integration на примере мода

CumingSoon

Местный стендапер
1,634
12
269
CumingSoon добавил(а) новый ресурс:

Continious Integration на примере мода - Github Actions на примере простого мода-библиотеки

Здравствуйте всем привет всем. Хотелось бы рассказать про использование такой прекрасной штуки как Github Actions. В общем-то, это такая фича Github, которая позволяет в свою разработку внедрить CI/CD. Зачем же это нужно? Допустим, вы пишете серьезный мод/библиотеку. Чтобы каждый перед коммитом/релизом не запускать тесты (если, конечно, таковые есть), не компилить файл и не загружать его в Releases, в репозиторий Maven/Curse, вы делаете конфиг, который при определенных условиях запускает...

Узнать больше об этом ресурсе...
 
7,099
324
1,509
Крч, посмотрел в сторону GithubActions, оказывается все гораздо проще:
Кликаем по этой кнопке
1586441688819.png
Выбирает Java with Gradle
1586441782211.png
Добавляем таск сетапа воркспейса или еще че-то по желанию, типо, ветки в которых надо запускать сборку
1586441863414.png
Коммитим
Проверяем, что файл ./gradle/wrapper/gradle-wrapper.jar есть в репе. Если нету, то это скорее всего из-за .gitignore.
Добавьте после строчки *.jar строчку!gradle/wrapper/gradle-wrapper.jar, это исключит из исключений(лол) gradle-wrapper.jar, и пушните его
И оно работает!
Теперь после каждого коммита в мастере и для каждого пр в мастер проверяется, что проект собирается
Желтая точка означает, что сборка в процессе
1586442061153.png
Красная означает ,что сборка не удалась
1586442247351.png
А зеленая галочка означает, что все прекрасно:D
1586442262677.png
 

CumingSoon

Местный стендапер
1,634
12
269
Крч, посмотрел в сторону GithubActions, оказывается все гораздо проще:
Кликаем по этой кнопке
Посмотреть вложение 8252
Выбирает Java with Gradle
Посмотреть вложение 8253
Добавляем таск сетапа воркспейса или еще че-то по желанию, типо, ветки в которых надо запускать сборку
Посмотреть вложение 8254
Коммитим
Проверяем, что файл ./gradle/wrapper/gradle-wrapper.jar есть в репе. Если нету, то это скорее всего из-за .gitignore.
Добавьте после строчки *.jar строчку!gradle/wrapper/gradle-wrapper.jar, это исключит из исключений(лол) gradle-wrapper.jar, и пушните его
И оно работает!
Теперь после каждого коммита в мастере и для каждого пр в мастер проверяется, что проект собирается
Желтая точка означает, что сборка в процессе
Посмотреть вложение 8255
Красная означает ,что сборка не удалась
Посмотреть вложение 8256
А зеленая галочка означает, что все прекрасно:D
Посмотреть вложение 8257
Это все замечательно, но здесь нет автобилда. А он был мне как раз-таки важен. А так, да, там куча шаблонов почти на все случаи жизни
Я же писал, что есть и другие ci/cd. Но дженкис куда более сложная и оверкильная фича. Еще есть трэвис, но кмк с ним больше трабл
 

CumingSoon

Местный стендапер
1,634
12
269
Ну да, а также для дальнейшего юза в качестве зависимости через JitPack. А ты ничего кроме публикации тэга (1 кнопка в идее) не делаешь. Ну не круто ли?
 

Icosider

Kotliner
Администратор
3,600
99
663
Браво, этому gh actions уже как полгода-год, да и уже такое реализовали на gitlab. Вообще, gh медленно идёт в сторону gitlab'a, ибо раньше статусов с эмодзями не было, да и кому они вообще нужны :unsure: Приватные репы - бесплатно(это как раз на волне покупки майками gh случилось), терь ещё gh actions. Судя по последним обновлениям нас скоро ожидает интернационализация сайта и редизайн(последнее так вообще уже вошло в моду у майков, в пример сайт minecraft.net)

P.s. особо не вникал в шапку и в сам gh actions, там можно задачи распараллелить?
 
Последнее редактирование:
7,099
324
1,509
Зато в гитхабе есть go to definition и find usages. Теперь можно изучать код проектов, не клонируя их локально и не сетапя воркспейс
 

CumingSoon

Местный стендапер
1,634
12
269
Гитлаб крутой, на самом деле. Я бы даже сказал, что намного удобнее гитхаба. Но, увы, там куча проектов и вряд ли они хоть как-то собираются переезжать.
Теперь к вопросу. Да, можно. Воркфлоу точно параллельно выполняется, так что можно сделать 1 воркфлоу на билд и кучу разных на, например, публикацию мода.

Upd:
Каждая job в jobs так же асинхронна. Так что можно ещё проще
 
Последнее редактирование:
Сверху