การทดลองทำ CI/CD แบบง่ายๆบน gitlab สำหรับ Android Developer

Android Mar 8, 2019

อยากลองมาทำอะไรสนุกๆ เมื่อเราขี้เกียจมานั่งรัน Unit Test ทุกครั้งหลังเขียนโค้ดเสร็จ ใช้ CI/CD ช่วยกันเถอะ

“Gitlab application screengrab” by Pankaj Patel on Unsplash

เราว่าหลายๆบริษัทคงจะใช้เจ้า Gitlab กันอยู่แล้วเนอะ ว่าแต่มันทำยังไงนะ?

มาสร้างไฟล์ .gitlab-ci.yml

มีอยู่ 2 วิธีด้วยกัน

(1) ด้วยความที่ไฟล์ที่มี . ด้านหน้า ใน mac os มันจะไม่เห็นเหมือน windows เราจะต้องแก้ใน android studio โดยสร้างไฟล์นี้ไว้ชั้นนอกสุดเลย

(2) ด้วยที่ UI ใหม่ของเจ้า Gitlab ค่อนข้างใช้ง่าย ทำให้ไม่ต้องไป set อะไรยุ่งยากเหมือนคราวก่อนแล้ว เย้ ดูใต้ชื่อโปรเจกนั่นสิ จิ้มที่ Set up CI/CD เลยจ้า

และมันสร้างไฟล์ให้เราตาม default เลยจ้า เพียงเอาไส้ในมาใส่ commit ก็ได้แล้ว

เราอ้างอิงตามนี้ เขาเขียนอธิบายได้ละเอียดมากๆ ซึ่งเคยเอาไปลองบนโปรเจกแอนดรอยด์เปล่าๆ ไม่มีอะไรนอกจาก สวัสดีชาวโลก

Setting up GitLab CI for Android projects
Have you ever accidentally checked in a typo that broke your Android build or unknowingly broke an important use case…

คืออันนี้นี่เอง เอาไปดูเล่นได้

Monthira Chayabanjonglerd / test-android-ci
GitLab.com

แต่ๆๆๆๆๆ อันล่าสุดคืออันนี้นะ มีแก้นิดๆหน่อยๆจากด้านบน เดี๋ยวเราจะมาสรุปอีกที

Setting up GitLab CI/CD for Android projects
Guest author Stojan Anastasov shares how he switched from Jenkins and Fabric to GitLab CI/CD.

และละเอียดสุดๆที่นี่

GitLab CI/CD Pipeline Configuration Reference | GitLab
Documentation for GitLab Community Edition, GitLab Enterprise Edition, Omnibus GitLab, and GitLab Runner.

สุดท้ายไฟล์ .gitlab-ci.yml จะมีหน้าตาแบบนี้ ซึ่งแต่ละส่วนนั้น เราแอบ comment อธิบายคร่าวๆด้วยนะ ในส่วนของ setting environment ต่างๆตรง before_script ว่าทำอะไรบ้าง

UPDATE เพิ่มเติมอันนี้สำหรับ Android API Level 28 จ้า

Setting up GitLab CI for Android projects
Learn how to set up GitLab CI to ensure your Android app compiles and passes tests.

ดังนั้นไฟล์ด้านล่างจะล่าสุดสำหรับ version 28 นะเออ

งานการหลักๆที่ให้ทำมี 2 ส่วน คือ build และ test นั่นเอง เมื่อ commit เสร็จก็รอกันไป แบบนี้ และสามารถจิ้มไปดูความเป็นไปในแต่ละ Job ได้นะ

รู้สึกทำง่ายขึ้นกว่าเดิมมากเลย ><

ถ้าสาย Github ก็มีเช่นกันนะ ตามนี้เลยค่ะ ง่ายๆ ใช้เจ้า Travis CI ได้เลย

https://youtu.be/ao5QarTViuI

อันนี้เป็น repo ประกอบรายการ

GucodeLive/GucodeLiveAndroidTravis
Contribute to GucodeLive/GucodeLiveAndroidTravis development by creating an account on GitHub.

จริงๆเจ้า TravisCI ก็เป็นเจ้าไฟล์ .yml เช่นกัน โดยที่พี่ Champ AK ทำในรายการ GuCode ก็จะเป็นการทำ CI/CD สำหรับ Android เหมือนกัน แต่คนละ platform กับข้างบนเท่านั้นเอง

ซึ่งจริงๆเจ้าไฟล์ CI/CD นั้น สามารถจะเขียนยังไงก็ได้ตามการใช้งานตามโปรเจกต่างๆ เช่น Android Web อะไรแบบนี้เป็นต้น

ถ้าทำ CI/CD กับ Firebase Hosting บนเจ้า TravisCI ก็อ่านตามนี้ได้เลยจ้า

มาอัพหน้าเว็บเราจาก firebase hosting ด้วย github กันเถิดดด
เนื่องด้วยเราทำหน้าเว็บผ่าน firebase hosting ซึ่งอ่านจากบล็อกแล้วมันง่ายมากๆ เลยไม่รู้จะเขียนอะไรดี จะเขียนเรื่องการทำ front-end ที่เป็น static website ก็ไม่มีความรู้มากพอขนาดนั้น ส่วนใหญ่ใช้ bootstrap ด้วยสิ ก็อปแปะวางๆเอา

สุดท้ายฝากร้านกันสักนิด ฝากเพจด้วยนะจ๊ะ

อย่าลืมกด like กด share บทความกันด้วยนะคะ :)

Posted by MikkiPastel on Sunday, December 10, 2017


Tags

Minseo Chayabanjonglerd

I am a full-time Android Developer and part-time contributor with developer community and web3 world, who believe people have hard skills and soft skills to up-skill to da moon.