Pull to refresh

Comments 9

Почему используете gradle а не gradle wrapper? Если только для того, чтобы не качать бинарник каждый раз, то как синхронизируете версию Gradle в Docker с версией в Android проекте? Руками каждый раз?

Хорошее замечание!

Однако есть нюанс. Беспощадный ру-девелоп в больших структурах (особенно родом из 90-х) как правило завязаны на определенных версиях окружения. И обновляются с новым разработчиком\команды, посему тут захардкожено.

Но соглашусь, что правильнее было бы ввести переменную (но уже в пайплайн), чтобы магия происходила в нужной директиве FROM в Dockerfile. Но тогда и Adndroid SDK нужно ставить весь, со всеми (или большинством) версиями и пакетами.

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

и итоговая апк вываливалась в какой-никакой общий доступ

Можно отправлять apk в Firebase, и все, кому надо, будут иметь доступ к только что собранной новой версии приложения.


А можно заливать apk в S3 хранилище с настроенным доступом. Вообще, как публиковать файл вариантов много.


До полноты картины автоматической сборки Android приложения, к сожалению, не описан процесс управления номером версии приложения. Как вы это делаете? Вручную, автоматически? Согласуется ли сборка с ранее опубликованными версиями? Думаю, это было бы так же интересно услышать сообществу.

История про публикацию в следующей серии =)

Приоткрою завесу тайны. Версию изменяет сам разработчик в build.gradle, Jenkins же парсит build.gradle, вытаскивает версию+номер, копирует из контейнера в хранилище. В хранилище смотрит nginx со строчкой autoindex on;

Ввиду определенного git-flow, в хранилище автоматом попадают версия на тест и версия релизная

где тут обещанный ответ на вопрос «зачем»?

Байт на потеребить колокольчик)

Шучу конечно. На самом деле ответ лежит в самой парадигме контейнеризации. Это отвязка от окружения. Я не хочу гвоздями в ноду сборки прибивать версии и параметры и не хочу привязываться к ресурсам этой ноды.

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

ну так добавьте это в статью. претензия была к тому, что в заголовке было обещание «зачем», а в статье — нет.

Вопрос не по основной теме статьи, но все же - почему jenkins, а не что то более "модное/современное" - teamcity, gitlab ci/cd, github actions and e.t.c?

P.S.: Если ответ "исторически сложилось" то лучше не отвечать)

Sign up to leave a comment.

Articles

Change theme settings