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

Minseo Chayabanjonglerd
Black Lens
Published in
2 min readMar 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 ก็ได้แล้ว

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

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

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

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

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

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

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

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

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

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

https://www.youtube.com/watch?v=ao5QarTViuI

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

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

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

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

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

--

--

Minseo Chayabanjonglerd
Black Lens

Android Developer | Content Creator AKA. MikkiPastel | Web2 & Web3 Contributor