احتمالا این پست آخر از این مجموعه آموزش باشه، تقریبا تمام نکات مهم توضیح دادم بقیهش خورده کاریه، تو این پست توضیح میدم چطور بیلد اتوماتیک برای اندروید اضافه کنیم و فایل APK خودکار به کانال اسلک ارسال کنیم.
خب بازم از سرویس circleci استفاده میکنیم. (قبلا توضیح دادم چرا)
اول از همه فایل config.yml داخل فولدر .circleci ایجاد میکنیم و این محتویات براش قرار میدیم:
version: 2 jobs: build: docker: - image: erfun/gitlab-ci-android-26:latest working_directory: ~/angular-cli-circleci steps: - checkout - restore_cache: key: dependency-cache-{{ checksum "package-lock.json" }} - run: name: install packages command: npm install - save_cache: key: dependency-cache-{{ checksum "package-lock.json" }} paths: - ./node_modules - ./cordova/node_modules - /root/.gradle - run: name: build web app command: ./node_modules/@angular/cli/bin/ng build --prod - run: name: build android command: | cd cordova mkdir www npm install -g cordova npm install cordova platform add android cordova build android curl -s -F channels="ci" -F file=@"/root/angular-cli-circleci/cordova/platforms/android/app/build/outputs/apk/debug/app-debug.apk" -F initial_comment="Aew App ${CIRCLE_PROJECT_USERNAME} ${CIRCLE_PROJECT_REPONAME} ${CIRCLE_SHA1}" -F token=${SLACK_TOKEN} https://slack.com/api/files.upload
خب در مرحله اول ایمیجی که خودم برای بیلد اندروید نیازه و روی داکرهاب پوش کردم معرفی کردم، داکر فایل این ایمیج روی گیتهاب گذاشتم میتونید از اینجا کدش نگاه کنید و دقیقا متوجه بشید با چی سر و کار دارید.
بعد این مرحله کد مربوط به کش npm میبینید، و مرحله بعد نصب پکیجهای انگولار، در مرحله بعد پیکجهای نصب شده کش کردیم و بعدش از کل اپ بیلد گرفتیم.
میتونستیم تست هم اینجا ران کنیم ولی چون هنوز تست ننوشتم بیخیال شدم.
مرحله بعد رفتیم برای بیلد اپ اندروید با کوردوا. فولدر www ساختیم وگرنه کوردوا خطا میده، کوردوا نصب کردیم، پکیجهایی که تو کوردوا نصب کرده بودیم دانلود کردیم، پلتفرم اندروید اضافه کردیم و بیلد گرفتیم.
تو خط آخر با کمک این بش اسکریپت فایل APK روی کانال اسلک قرار دادیم تا به راحتی نصب و تست کنیم، از این آدرس توکن برای این کار ساختیم و تو اینوایرمنتهای CI تعریف کردیم.
میشد روی کانال تلگرامم ارسال کرد ولی با ارسال فایل توسط ربات روی کانال یکم مشکل داشتم، اگه شما بش اسکریپتشو نوشتید لطفا برام بفرستید به پروژه اضافه کنم.
نکته پایانی: میشد این چند مرحله تو چند استیج تعریف کرد ولی دیدم فعلا نیازی نیست و خواستم بیلد سریعتر اجرا بشه پس تو یه استیج نوشتم ولی بعدا تقسیم میشه بین ۳ تا استیج.