ການ build ແອັບ ແບບ CI ເພື່ອປະຢັດເວລາດ້ວຍ Bitrise

Comet Digital Agency Laos / Innovation  / Ideas  / ການ build ແອັບ ແບບ CI ເພື່ອປະຢັດເວລາດ້ວຍ Bitrise

ການ build ແອັບ ແບບ CI ເພື່ອປະຢັດເວລາດ້ວຍ Bitrise

ເບື່ອບໍ່ ເວລາຂຽນ code ແລ້ວຕ້ອງມານັ່ງ test ຢືນ build ຖ້າຄອມກາກແຮ່ງເສຍເວລາໄປຕື່ມອີກ

ແມ່ນແລ້ວ ມື້ນີ້ Comet ເຮົາມີຜະລິດຕະພັນໃຫມ່ມານໍາສະເໜີ ກໍຄື CI ດ້ວຍ Bitrise ບໍ່ລໍຊ້າ ພຽງແຕ່ໂທມາພາຍໃນ ສິບນາທີນີ້ເທົ່ານັ້ນ.
.
.
ຢອກໆ
ມາເລີ່ມກັນບ່ອນ CI ຫຼື Continuous Integration ແມ່ນຂະບວນການພັດທະນາ Software ທີ່ເຊື່ອມຕໍ່ກັນໃນແຕ່ລະຂັ້ນຕອນ ຕັ້ງແຕ່ແກ້ code ຈົນຮອດ build ແລະ test ທີ່ເກີດຂື້ນ ແບບ Automatic ໂດຍທີ່ເຮົາສາມາດກໍານົດໄດ້ວ່າໃນຂະບວນການນັ້ນ ຢາກໃຫ້ມີscriptຫຍັງ ຖືກrun ແນ່
ພໍຮູ້ ຄອນເຊັບລະເຮົາມາລອງໃຊ້ໃນການຂຽນແອັບແທ້ເບີ່ງບາດນິ ໂດຍບົດຄວາມນີ້ຈະໃຊ້ flutter ໃນການສ້າງແອັບ
ສິ່ງທີ່ຕ້ອງກຽມ

1. account ຂອງ Bitrise
2. account ຂອງ github
3. flutter environment (setup ໃຫ້ຂຽນcode ດ້ວຍflutter ໄດ້)

ກ່ອນອື່ນ ມາສ້າງ Project ເປົ່າໆໃຫ້ມັນrun ໄດ້

ຈາກນັ້ນ ອັບໂຫຼດ code ທັງໝົດຂື້ນgithub ເພື່ອໃຫ້ Bitrise ສາມາດດຶງcodeມາໄດ້

ໄດ້ປະມານນີ້
ແລ້ວໆ ເຮົາມາຫາສ່ວນຂອງ Bitrise ໂດຍຈະສ້າງAppໃນຫັ້ນເລີຍ
ເຂົ້າມາໃຫ້ເລືອກ No ຖ້າເຮົາຢາກລອງອັບໂຫຼດແອັບຂອງໂຕເອງຊື່ໆ

ຂັ້ນຕອນຕໍ່ໄປແມ່ນເລືອກສະຖານະຂອງແອັບທີ່ເຮົາສ້າງໃນເວັບນີ້ ມີສອງແບບຄືແບບສ່ວນໂຕແລະແບບສາທາລະນະ ໂດຍບົດຄວາມນີ້ຈະເລືອກແບບສ່ວນໂຕ

ຈາກນັ້ນເລືອກ repository ຂອງ github ທີ່ເຮົາຫາກໍສ້າງກີ້ນີ້ໄດ້ເລີຍ

ຕໍ່ໄປແມ່ນເລືອກກິ່ງຂອງrepoທີ່ເຮົາຈະເອົາມາbuild ໃນນິເລືອກ master

ຖ້າມັນກວດສອບ

ເມື່ອມັນກວດສອບແລ້ວໆເຈິວ່າມີ script test ໃນ project ຈະເອົາມາໃຊ້ຫຼືບໍ່

ມາຮອດນິແມ່ນຄອນເຟີມການຕັ້ງຄ່າທີ່ຜ່ານມາ ຖ້າໂອເຄແລ້ວກໍກົດຄອນເຟີມໄປເລີຍ

ສ່ວນໂຕ webhook ແມ່ນເອົາໄວ້ເພື່ອໃຫ້ app ເລີ່ມ build ໂຕເອງທຸກເທື່ອທີ່ກິ່ງໃນ repoເຮົາມີການpush. ສະດວກຫຼາຍໂຕນີ້ເພາະpushແລ້ວມັນbuildໃຫ້ຕໍ່ເລີຍບໍ່ໄດ້ກົດຫຍັງອີກ

ຈາກນັ້ນກໍສໍາເລັດການ setup app ເພື່ອ build ໃນ bitrise

ເມື່ອກົດເຂົ້າໄປ ກໍຈະເຈິວ່າມັນກໍາລັງ run ດ້ວຍ workflow ພື້ນຖານຢູ່

Workflow
ຫົວໃຈສໍາຄັນຂອງ bitrise ເລີຍກໍວ່າໄດ້ workflow ເປັນໂຕກໍານົດທຸກຢ່າງໃນການ build ຂອງເຮົາ ເຊັ່ນກໍານົດວ່າຫຼັງຈາກເຮັດໂຕນີ້ແລ້ວຈະເຮັດໂຕໃດຕໍ່ ດັ່ງຮູບ

ຈະເຫັນວ່າໃນ Workflow ຊື່ primary ສີ່ງທໍາອິດຈະຖືກ run ແມ່ນ activate ssh key ເພື່ອຂໍເຂົ້າໃຊ້ file ໃນ github ຂອງເຮົາ ຕໍ່ມາແມ່ນ clone ມັນມາ ແລ້ວຕິດຕັ້ງ flutter ແລ້ວ test ຕາມລໍາດັບ
ແລ້ວສໍາຫຼັບແອັບເຮົາ ເມື່ອ workflow primary ຖືກ run ເຮົາຕ້ອງການໃຫ້ມັນ build apk ຂອງ android ແລະ build ipa ຂອງ ios ອອກມາພ້ອມກັນ ກໍຈະຕ້ອງເພີ່ມ item ໃນ workflow ເຂົ້າໄປ ດ້ວຍການກົດບວກທາງລຸ່ມຂອງ item ຖ້າຢາກໃຫ້ມັນຖືກ run ຕໍ່ຈາກ item ໂຕໃດ
ສໍາຫຼັບ workflow ເພື່ອ build android/ios ກໍຈະເປັນປະມານນີ້

ຈະເຫັນວ່າຫຼັງຈາກ flutter install ແລ້ວມັນຈະ build ໃຫ້ເຊີ່ງໃນຂັ້ນຕອນນີ້ເຮົາຈະໄດ້ apk ມາ ແຕ່ຍັງບໍ່ໝົດເພາະວ່າເຮົາຢາກໄດ້ ipa ນໍາ ເລີຍຕ້ອງຕິດຕັ້ງ Cert ແລະ Archive ຕໍ່ ໂດຍມັນຈະດຶງຂໍ້ມູນມາຈາກການ signing ທີ່ຈະຂຽນໃນຂັ້ນຕອນຕໍ່ໄປ
ສໍາຫຼັບ ios ສໍາຄັນຫຼາຍຂັ້ນຕອນນີ້ *ແຕ່ຖ້າໃຜບໍ່ມີ apple id ທີ່ສາມາດອັບໂຫຼດແອັບໄດ້ໃຫ້ຂ້າມໄປເລີຍເພາະຈະບໍ່ສາມາດ build app ຂອງ ios ໄດ້

ການ Signing
ສໍາຫຼັບ android (release) ແລະ ios ການຈະ build ໄດ້ນັ້ນເຮົາຕ້ອງ sign ໂຕຕົນຂອງເຮົາເຂົ້າໄປກ່ອນ.ເຊີ່ງ android ເອີ້ນ file ໂຕນີ້ວ່າ keystore ແລະ ios ເອີ້ນວ່າ Provisioning Profile ແຕ່ຫຼັກການຂອງສອງໂຕນີ້ຄ້າຍໆກັນຄືການ sign ໂຕຕົນຂອງເຮົາເຂົ້າໄປໃນແອັບ(ເບີ່ງdarkໆເນາະ)
ແລະໃນ bitrise ໃຫ້ເຂົ້າໄປ tab ຊື່ Code Signing ແລ້ວອັບໂຫຼດ file keystore ແລະ Provisioning Profile ເຂົ້າໄປຕາມທີ່ມັນບອກເລີຍ (ps. Provisioning Profile ຕ້ອງການ cer ເພື່ອຢັ້ງຢືນໂຕຕົນອີກບາດໜຶ່ງ)

ສໍາຫຼັບios ສ່ວນໃຜທີ່ Signແບບauto ແມ່ນສາມາດexport Provisioning Profile ແລະcertໄດ້ທາງນີ້ ດ້ວຍການ
run “bash -l -c “$(curl -sfL https://raw.githubusercontent.com/bitrise-tools/codesigndoc/master/_scripts/install_wrap.sh)”
ໃນterminal ລະເຮັດຕາມຄູ່ມືດ້ານລຸ່ມ

ແລ້ວຖ້າບໍ່ມີຫຍັງຜິດພາດຕາມແຜນ ເມື່ອເຮົາກົດ build ມັນກໍຈະ run workflow ທັງໝົດ ແລະ export ເປັນ apk/ipa ອອກມາໃຫ້ເຮົາ ແບບຊີ້

ແຕ່ໂອກາດໂຊກດີມັນໜ້ອຍຫຼາຍ55555 ສ່ວນໃຫຍ່ຈະເຈິແຕ່ error

ແນະນໍາໃຫ້ລອງວິເຄາະດີໆວ່າ error ມັນອາດຈະເກີດມາຈາກຫຍັງ ຫຼື ວ່າ google ເອົາ ແຕ່ທີ່ສໍາຄັນແມ່ນຢ່າລືມວ່າໂຕນີ້ບໍ່ແມ່ນຫຍັງຫຼາຍນອກຈາກການ build app ປົກກະຕິແຕ່ເຮັດເປັນ auto ຊື່ໆ ສໍາຫຼັບໃຜທີ່ເຄີຍ build ມາ ແລ້ວກໍອາດຈະຫາທາງແກ້ບໍ່ຍາກ ແຕ່ຖ້າໃຜບໍ່ເຄີຍ ແນະນໍາໃຫ້ລອງ build ແບບພື້ນຖານໃຫ້ເຂົ້າໃຈວິທີການເຮັດວຽກກ່ອນເດີ້ ຈັ່ງມາໃຊ້ bitrise ຈະໄດ້ຄວາມຮູ້ແຖມງ່າຍຂື້ນຕື່ມ.

ສະຫຼຸບ
bitrise ມັນຈະເຂົ້າມາຊ່ວຍໃນການ build ແບບ auto ແລ້ວອັບລົງ store ເລີຍ ແຕ່ມັນສໍາຄັນຫຼາຍທີ່ເຮົາຕ້ອງຮູ້ການ build app ແບບ manual ກ່ອນຈັ່ງມາເຮັດ auto ໄດ້ ເພາະເວລາເຈິບັນຫາເຮົາກໍຈະເຂົ້າໃຈວ່າບັນຫາຢູ່ບ່ອນໃດແລ້ວເຂົ້າໄປແກ້ໄຂໄດ້ນັ້ນເອງ.

No Comments
Post a Comment