A passionate Android Developer
راه اندازی GitLab CI/CD اندروید و آپلود اپلیکیشن در کانال تلگرام
بعد از کلی سرچ در این موضوع با کمک دوست خوبم مسیح تونستیم یه GitLab Ci برای اندروید ورژن Android Gradle +7 تهیه کنیم که بعد از Build شدن پروژه, اپلیکیشن می تونه در کانال تلگرام ارسال بشه و آماده ی نصب و ارسال برای دیگران هست.
فرم کلی gitlab-ci.yml به صورت زیر هست که به طور مفصل درباره اش توضیح می دهم.
این آموزش شامل سه بخش میشه :
- ساختن ربات تلگرام و پیدا کردن Chat ID کانال تلگرام
- ساختن و اضافه کردن Application Signature به GitLab
- نوشتن و اضافه کردن GitLab Ci به پروژه ی اندرویدی
ساختن ربات تلگرام و پیدا کردن Chat ID کانال تلگرام
ابتدا یه کانال تلگرام می سازیم و با استفاده از ربات IDBot چت آی دی کانال تلگرامون را پیدا می کنیم.
به این صورت که یک پیام از کانالی که قرارِ اپلیکیشن در آنجا آپلود بشه را برای ربات IDBot فوروارد می کنیم و اون ربات Chat Id کانال تلگرام مان را بهمون میده
توجه کنید که Chat Id یه عبارت 13 رقمی با علامت منفی
پس از دریافت Chat Id آن را در قسمت TELEGRAM_CHAT_ID
فایل gitlab-ci.yml به صورت زیر قرار می دهیم.
# CHANNEL CHAT ID
TELEGRAM_CHAT_ID: "TELEGRAM_CHAT_ID"
توجه کنید برای آن که بتوانید اپلیکیشن تان را در گروه تلگرام نیز آپلود کنید کافی است که فقط لینک گروه تلگرام را در ربات IDBot فوروارد کنید تا Chat Id گروه تلگرامی تان را پبدا کند و آن را مانند Chat Id کانال تلگرام در قسمت TELEGRAM_CHAT_ID
فایل gitlab-ci.yml قرار دهید.
خوب پس از آن باید در ربات BotFather یه ربات تلگرام برای فوروارد کردن اپلیکیشن به داخل کانال تلگرامون بسازیم
به این صورت که بر روی newbot می زنیم و name و username رباتمون را انتخاب می کنیم و در پایان باز بر روی عبارت mybots می زنیم تا لیست ربات هایی که ساختیم را نمایش بدهد و رباتی که ساختیم را از منوی شیشه ای انتخاب می کنیم و در منوی نمایش داده شده گزینه ی API Token را انتخاب کرده تا API Token رباتمون را بهمون بدهد و آن را در قسمت TELEGRAM_BOT_API_TOKEN
فایل gitlab-ci.yml به صورت زیر قرار می دهیم.
# BOT TOKEN
TELEGRAM_BOT_TOKEN: "TELEGRAM_BOT_API_TOKEN"
در نهایت نیز ربات تلگرامی که ساختیم را تحت عنوان ادمین در کانال تلگرام مان اضافه می کنیم تا دسترسی ارسال پیام و آپلود اپلیکیشن را داشته باشد. همچنین برای ارسال اپلیکیشن در گروه تلگرام نیز ربات را تحت عنوان ادمین در گروه تلگرام ادد می کنیم.
خوب تا این جای کار ربات و کانال تلگراممون را راه انداختیم و می خواهیم یکم بیشتر درباره ی بقیه ی موارد استیج Deploy توضیح بدهیم.
عبارت APPLICATION_VERSION
فایل gitlab-ci.yml همان versionName گریدل اصلی اپلیکیشن bulid.gradle (:app) است. که عموما بعد از هر بار کامیت کردن پروژه و push کردن پروژه باید یک ورژن به برنامه اضافه شود و APPLICATION_VERSION
تغییر کند.
به طور مثال :
# APPLICATION VERSION
APPLICATION_VERSION: "1.12.50"
عبارت APPLICATION_NAME
نام اصلی اپلیکیشن شما خواهد بود. که پیشنهاد می شود بعد از نوشتن نام اپلیکیشن عبارت _V_ را هم قرار دهید که بعد از آپلود شدن اپلیکیشن در کانال تلگرام عبارت ورژن از نام اپلیکیشن متمایز باشد.
به طور مثال :
# APPLICATION NAME
APPLICATION_NAME: "ProjectName_V_"
- این دو عبارت در پایان هنگام آپلود در کانال به صورت ProjectName_V_1.12.50.apk خواهد بود.
عبارت TELEGRAM_MESSAGE_CAPTION
زیرنویس پیام کانال تلگرام را مشخص می کند. که باز پیشنهاد می شود انتهای کامنت تان \n#ProjectName را قرار دهید که اپلیکیشن هایتان راحت تر در کانال تلگرام پیدا شود.
\n#ProjectName
به طور مثال :
# DISCRIPTION
TELEGRAM_MESSAGE_CAPTION: test caption \n#ProjectName"
درنهایت نمونه ی ارسال شده ی اپلیکیشن با مشخصات فوق به صورت زیر خواهد بود
پیدا کردن و اضافه کردن Application Signature به GitLab
جهت ساختن Application Signature می توانید از سایت مرجع تخصصی آموزش برنامه نویسی اندروید کمک بگیرید و سپس پس از بدست آوردن Key Alias و Key Password و Keystore File و Keystore Password باید اطلاعات را وارد تنظیمات CI/CD پروژه کنیم. ولی قبل از آن باید فایل Signature.jks را به Base64 اِنکد (Encode) کنیم به این صورت که با استفاده از سایت Base64Encode فایل Signature.jks یا همان Keystore File را آپلود می کنیم و پس از Encode شدن, فایل متنی Encode شده را دانلود می کنیم. مطابق با شکل زیر:
پس از آن به پروفایل GitLabمان می رویم و پروژه ای که می خواهیم CI/CD روی آن اجرا شود را باز می کنیم و از منوی سمت چپ روی گزینه ی Settings هاور می کنیم تا ساب منو تنظیمات نمایش داده شود و گزینه ی CI/CD را انتخاب می کنیم تا تنظیمات این قسمت باز شود.
مطابق شکل زیر :
بعد از باز شدن تنظیمات CI/CD از قسمت Variables بر روی دکمه ی Expand کلیک کنید تا تنظیمات این بخش باز شود تا Environment variables های Application Signature مان را در این قسمت وارد کنیم.
خوب پس از باز شدن Variables بر روی دکمه Add variable می زنیم تا دیالوگ Add variable باز شود و اطلاعات Application Signature را که شامل Key Alias و Key Password و Keystore File و Keystore Password است را که در فوق به دست آوردیم به صورت جداگانه وارد می کنیم.
حتما توجه کنید که فیلد key باید با حروف بزرگ نوشته شود و به جای Space از UnderLine (_) استفاده کنید!
به صورت زیر :
Key Alias ---------------------> KEY_ALIAS
Key Password -------------> KEY_PASSWORD
Keystore File ---------------> KEYSTORE_FILE
Keystore Password -----> KEYSTORE_PASSWORD
و حتما تیک Protect variable را هم بردارید!
به نمونه های زیر دقت کنید :
در پایان باید تمام چهار متغیر را به صورت زیر ثبت کرده باشید:
نوشتن و اضافه کردن GitLab Ci به پروژه ی اندرویدی
خوب تا این جای کار ربات تلگرام و تنظیمات CI/CD گیت لب را انجام دادیم حال وقت آن است که فایل gitlab-ci.yml را به پروژه اضافه کنیم به این صورت که ابتدا تنظیمات اندروید استودیو را از Android به Project به صورت زیر تغییر بدهیم.
و یک فایل جدید به اسم .gitlab-ci.yml درست می کنیم.
.gitlab-ci.yml
توجه کنید که اول عبارت همراه با دات شروع می شود!
و تمام کد های زیر را داخل آن فایل کپی می کنیم :
و حال کافیست که فقط APPLICATION_VERSION
(ورژن اپلیکیشن) را از bulid.gradle (:app) وارد gitlab-ci.yml کنیم و درAPPLICATION_NAME
نام اصلی اپلیکیشن را بنویسیم و در قسمت TELEGRAM_CHAT_ID
چت آیدی کانال تلگراممون را وارد کنیم و در TELEGRAM_BOT_TOKEN
توکن (API Token) ربات تلگراممون را اینجا قرار بدهیم و در نهایت در TELEGRAM_MESSAGE_CAPTION
زیرنویس پیام تلگراممون را بنویسیم.
خوب همه چیز آماده است کد هایتان را add و commit کنید و پس از آن پروژه را push کنید تا همه چیز به صورت روتین انجام شود.
از روش زیر هم می تونید Stage های پروژه تون را پیگیری کنید:
هر گونه سوالی داشتین میتونین از طریق تلگرام یا اینستگرام و لینکدین با من در ارتباط باشید.
مطلبی دیگر از این انتشارات
چگونه پروژه ی دانشگاه را انجام دهیم؟(رشته نرم افزار)
مطلبی دیگر از این انتشارات
آموزش ساخت کلاس در html
مطلبی دیگر از این انتشارات
آموزش فلاتر | نمایش دیالوگ در فلاتر