Tionscadal a fhorbairt don ardán Android, fiú an ceann is lú, caithfidh sé déileáil leis an timpeallacht forbartha luath nó mall. Ina theannta sin Android Éilíonn an SDK an leagan is déanaí de Kotlin, Gradle, uirlisí ardáin, agus uirlisí tógála. Agus má tá sé ar mheaisín an fhorbróra, réitítear na spleáchais seo go léir den chuid is mó ag baint úsáide as Android Studio IDE, ansin ar fhreastalaí CI/CD, is féidir le gach nuashonrú a bheith ina thinneas cinn. Agus más é Docker an réiteach caighdeánach ar fhadhb an chomhshaoil i bhforbairt gréasáin, cén fáth nach ndéanfá iarracht air fadhb chomhchosúil a réiteach i Android-forbairt…
Dóibh siúd nach bhfuil a fhios cad é Docker, chun é a chur go simplí, is uirlis é chun an rud ar a dtugtar a chruthú. “coimeádáin” ina bhfuil eithne OS íosta agus na bogearraí riachtanacha is féidir linn a úsáid nuair is mian linn, agus an comhshaol á chaomhnú. Cinntear cad go díreach a bheidh inár gcoimeádán sa Dockerfile, a chuirtear le chéile ansin in íomhá is féidir a sheoladh in áit ar bith agus a bhfuil airíonna idempotency.
Tá cur síos breá ar an bpróiseas suiteála agus ar bhunghnéithe Docker ina chuid . Mar sin, ag breathnú romhainn beagán, seo é an Dockerfile dar críoch muid suas le:
# Т.к. основным инструментом для сборки Android-проектов является Gradle,
# и по счастливому стечению обстоятельств есть официальный Docker-образ
# мы решили за основу взять именно его с нужной нам версией Gradle
FROM gradle:5.4.1-jdk8
# Задаем переменные с локальной папкой для Android SDK и
# версиями платформы и инструментария
ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip"
ANDROID_HOME="/usr/local/android-sdk"
ANDROID_VERSION=28
ANDROID_BUILD_TOOLS_VERSION=28.0.3
# Создаем папку, скачиваем туда SDK и распаковываем архив,
# который после сборки удаляем
RUN mkdir "$ANDROID_HOME" .android
&& cd "$ANDROID_HOME"
&& curl -o sdk.zip $SDK_URL
&& unzip sdk.zip
&& rm sdk.zip
# В следующих строчках мы создаем папку и текстовые файлы
# с лицензиями. На оф. сайте Android написано что мы
# можем копировать эти файлы с машин где вручную эти
# лицензии подтвердили и что автоматически
# их сгенерировать нельзя
&& mkdir "$ANDROID_HOME/licenses" || true
&& echo "24333f8a63b6825ea9c5514f83c2829b004d1" > "$ANDROID_HOME/licenses/android-sdk-license"
&& echo "84831b9409646a918e30573bab4c9c91346d8" > "$ANDROID_HOME/licenses/android-sdk-preview-license"
# Запускаем обновление SDK и установку build-tools, platform-tools
RUN $ANDROID_HOME/tools/bin/sdkmanager --update
RUN $ANDROID_HOME/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}"
"platforms;android-${ANDROID_VERSION}"
"platform-tools"
Sábhálaimid é sa bhfillteán lenár gceann féin Android-tionscnamh agus rith an tógáil coimeádáin leis an ordú
docker build -t android-build:5.4-28-27 .Paraiméadar -t sonraíonn sé an chlib nó ainm ár gcoimeádán, arb é atá ann de ghnáth a ainm agus a leagan. Inár gcás, thugamar android-build air agus sa leagan léirigh muid sraith de leaganacha de gradle, android-sdk agus platform-tools. Amach anseo, beidh sé níos éasca dúinn an íomhá a theastaíonn uainn a chuardach de réir ainm agus an “leagan” seo á úsáid.
Tar éis don tionól a bheith críochnaithe, is féidir linn ár n-íomhá a úsáid go háitiúil, is féidir linn é a íoslódáil leis an ordú bhrú docker chuig stór íomhá poiblí nó príobháideach chun é a íoslódáil chuig meaisíní eile.
Mar shampla, déanaimis tionscadal a thógáil go háitiúil. Chun seo a dhéanamh, san fhillteán leis an tionscadal, reáchtáil an t-ordú
docker run --rm -v "$PWD":/home/gradle/ -w /home/gradle android-build:5.4.1-28-27 gradle assembleDebugDéanaimis amach cad a chiallaíonn sé:
docker reáchtáil - an t-ordú seolta íomhá féin
-rm — ciallaíonn sé go scriosann sé gach rud a cruthaíodh le linn a shaoil nuair a stopann an coimeádán
-v "$PWD":/baile/gradle/ - feistíonn sé an fillteán reatha lenár bhfillteán féin Android- tionscadal chuig fillteán inmheánach an choimeádáin /home/gradle/
-w / baile / gradle — sonraítear eolaire oibre an choimeádáin
android-tógáil:5.4.1-28-27 — ainm ár gcoimeádán a bhailigh muid
gradle assembleDebug — an fhoireann tionóil iarbhír a chuireann ár dtionscadal le chéile
Má théann gach rud go maith, ansin i gceann cúpla soicind / nóiméid feicfidh tú ar do scáileán rud éigin cosúil le TÓGÁIL rathúil i 8m 3s! Agus beidh an feidhmchlár le chéile san fhillteán aip/thógála/aschuir/apk.
Is féidir leat tascanna gradle eile a dhéanamh ar an mbealach céanna - seiceáil an tionscadal, reáchtáil tástálacha, etc. Is é an buntáiste is mó ná más gá dúinn an tionscadal a thógáil ar aon mheaisín eile, ní gá dúinn a bheith buartha faoin timpeallacht iomlán a shuiteáil agus beidh sé go leor chun an íomhá riachtanach a íoslódáil agus an tógáil ann a reáchtáil.
Ní stórálann an coimeádán aon athruithe, agus seoltar gach tionól ón tús, rud a ráthaíonn, ar thaobh amháin, céannacht an tionóil beag beann ar an áit a seoltar é, ar an láimh eile, gach uair a chaithfidh tú na spleáchais go léir a íoslódáil. agus an cód ar fad a thiomsú arís, agus is féidir go dtógfaidh sé seo go leor ama uaireanta. Mar sin, chomh maith leis an ngnáth-thosú “fuar”, tá an rogha againn an tógáil a thosú agus an rud ar a dtugtar a shábháil. “taisce”, áit a sábhálaimid an fillteán ~/.gradle ach é a chóipeáil go fillteán oibre an tionscadail, agus ag tús an chéad tógáil eile cuirimid ar ais é. Bhogamar na nósanna imeachta cóipeála go léir isteach i scripteanna ar leith agus thosaigh an t-ordú seolta féin ag breathnú mar seo
docker run --rm -v "$PWD":/home/gradle/ -w /home/gradle android-build:5.4.1-28-27 /bin/bash -c "./pre.sh; gradle assembleDebug; ./post.sh"Mar thoradh air sin, laghdaíodh ár meán-am tógála tionscadail arís agus arís eile (ag brath ar líon na spleáchais ar an tionscadal, ach mar sin thosaigh an meánthionscadal a chur le chéile i 1 nóiméad in ionad 5 nóiméad).
Ní dhéanann sé seo go léir, ar ndóigh, ciall ach amháin má tá do fhreastalaí CI/CD inmheánach agat, a dtugann tú tacaíocht duit féin. Ach anois tá go leor seirbhísí scamall ina réitítear na fadhbanna seo go léir agus ní gá duit a bheith buartha faoi, agus is féidir na hairíonna tionóil riachtanacha a shonrú freisin i socruithe an tionscadail.
Ní féidir ach le húsáideoirí cláraithe páirt a ghlacadh sa suirbhé. , le do thoil.
An gcoimeádann tú do chóras CI/CD intí nó an úsáideann tú seirbhís tríú páirtí?
Bainimid úsáid as freastalaí inmheánach
Bainimid úsáid as seirbhís sheachtrach
Ní úsáidimid CI/CD
Eile
Vótáil 42 úsáideoir. Staon 16 úsáideoir.
Foinse: will.com
