Comments 16
После этого мы можем посмотреть начальный пароль для Jenkins
Можно просто docker logs container_id
В целом может мы и дойдем до схемы, которая описана у вас (с автосозданием контейнеров и автоподнятием серверов), но пока нам это просто не требуется.
Я вот тут уже описал что нам просто пока не требуются агенты, может немного позже, а вот установленный Android SDK в системе уже требуется.
Интересная статья, буду ждать продолжения. Коллега сейчас занимается настройкой CI/CD. Выбрали для себя Circle CI, ресурсы наши ограничены. Если посмотреть на образ, который предлагает Circle, то видны отличия от вашего.
Вы распаковываете sdk, подтверждаете работу с лицензиями. Потом запускаете в контейнере war с дженкинсом. В такой конфигурации нельзя собрать apk. Еще нужно установить tools, platform-tools, саму платформу, опционально ndk. С учетом используемых версии, конечно же. Логично было бы изолировать окружение собственно сборки apk от дженкинса. Но когда я игрался с TeamCity, мне не удалось запустить контейнер в контейнер. С нетерпением жду продолжения.
В такой конфигурации нельзя собрать apk. Еще нужно установить tools, platform-tools, саму платформу, опционально ndk.
Вполне можно, во время сборки нужные компоненты (кроме ndk конечно) для билда установятся сами, и вы не будете загружать систему ненужными компонентами заранее.
Вы правы. Я забыл про настройку android.builder.sdkDownload
. Главное, что бы скачивание компонент не происходило при каждой сборке. Может образоваться очередь из сборок. Я сторонник разделять зависимости самого приложения (classpath) и sdk. В build.gradle
зависимости изменяются чаще, чем версия платформы.
Вы можете существенно уменьшить размер итогового образа, если вот эти две команды схлопнете в одну:
RUN apt-get update && apt-get install -y git \
wget \
...
zlib1g:i386
RUN apt-get clean && rm -rf /var/lib/apt/lists /var/cache/apt
А также вот эти 3 в одну:
RUN wget https://dl.google.com/android/repository/$sdk_tools_zip_file -P $android_home_dir -nv
RUN unzip $android_home_dir$sdk_tools_zip_file -d $android_home_dir
RUN rm $android_home_dir$sdk_tools_zip_file && chmod 777 -R $android_home_dir
Плюс это также уменьшит количество слоёв итогового образа.
</режим зануды>
А за статью спасибо — хороший гайд для тех, кто хочет начать делать правильно.
Jenkins для Android сборки, с помощью Docker