ต่อไปนี้คือฟีเจอร์บางส่วนที่คุณพบได้ในระบบ CI ส่วนใหญ่
สภาพแวดล้อม
คุณควรเลือกและทำความเข้าใจสภาพแวดล้อมฮาร์ดแวร์และซอฟต์แวร์ที่ระบบใช้ทำงานตามเวิร์กโฟลว์ ข้อควรพิจารณาที่สำคัญสำหรับแอปพลิเคชัน Android มีดังนี้
- แพลตฟอร์ม: Linux, Mac, Windows และเวอร์ชันต่างๆ
- หน่วยความจําที่พร้อมใช้งาน: การสร้างแอปและการเรียกใช้โปรแกรมจําลองอาจใช้ RAM เป็นจำนวนมาก และมักจําเป็นต้องปรับแต่งพารามิเตอร์ เช่น ขนาดฮีปของ JVM เพื่อหลีกเลี่ยงข้อผิดพลาดเกี่ยวกับหน่วยความจําไม่เพียงพอ
- ซอฟต์แวร์ที่ติดตั้งไว้ล่วงหน้า: ระบบ CI มักจะให้อิมเมจที่มีคอลเล็กชันเครื่องมือจํานวนมาก เช่น Java Development Kit (JDK), Android Software Development Kit (SDK), เครื่องมือสร้าง, แพลตฟอร์ม และโปรแกรมจําลอง
- สถาปัตยกรรมและชุดคำสั่งของโปรแกรมรันไทม์: ARM, x86 ซึ่งสำคัญเมื่อใช้โปรแกรมจำลอง
- ตัวแปรสภาพแวดล้อม: ระบบ CI จะตั้งค่าตัวแปรบางอย่าง (เช่น
ANDROID_HOME
) และคุณตั้งค่าของคุณเองได้ เช่น เพื่อหลีกเลี่ยงการเขียนข้อมูลเข้าสู่ระบบแบบฮาร์ดโค้ดในเวิร์กโฟลว์
คุณควรพิจารณาแง่มุมอื่นๆ อีกมากมาย เช่น จํานวนแกนประมวลผลที่ใช้ได้ และเปิดใช้การจําลองเสมือนเพื่อเรียกใช้โปรแกรมจําลองหรือไม่
บันทึกและรายงาน
เมื่อขั้นตอนใดขั้นตอนหนึ่งดำเนินการไม่สำเร็จ ระบบ CI จะแจ้งให้คุณทราบและมักจะไม่อนุญาตให้คุณผสานการเปลี่ยนแปลง หากต้องการดูว่าเกิดข้อผิดพลาดใดขึ้น ให้มองหาข้อผิดพลาดในบันทึก
นอกจากนี้ การสร้างและการทดสอบจะสร้างรายงานที่มักจะจัดเก็บเป็นรายการต่างๆ ของบิลด์นั้นๆ คุณสามารถใช้ปลั๊กอินเพื่อแสดงผลลัพธ์ของรายงานเหล่านั้นเป็นภาพได้ ทั้งนี้ขึ้นอยู่กับระบบ CI
เวลาทำงานของแคชและ CI
ระบบ CI ใช้แคชของบิลด์เพื่อเร่งกระบวนการ กระบวนการที่ง่ายที่สุดคือ ไฟล์จะบันทึกไฟล์แคช Gradle ทั้งหมดหลังจากการบิลด์สําเร็จและกู้คืนไฟล์ก่อนการบิลด์ใหม่ ซึ่งอาศัยฟีเจอร์แคชการสร้างของ Gradle และควรเปิดใช้ในโปรเจ็กต์
วิธีปรับปรุงเวลาในการเรียกใช้และความน่าเชื่อถือมีดังนี้
- โมดูล: ตรวจหาว่าโมดูลใดได้รับผลกระทบจากการเปลี่ยนแปลง และสร้างและทดสอบเฉพาะโมดูลเหล่านั้น
- ข้ามแคช: หากบิลด์มีสคริปต์ที่นักพัฒนาแอปแก้ไข ให้ละเว้นแคชของบิลด์ การสร้างตั้งแต่ต้นจะปลอดภัยกว่า
- แยกการทดสอบ: การแยกการทดสอบในอุปกรณ์หลายเครื่องอาจมีประโยชน์อย่างยิ่งสำหรับการทดสอบที่มีเครื่องมือวัด ซึ่งรันเนอร์ Android, Gradle, อุปกรณ์ที่มีการจัดการ และ Firebase Test Lab รองรับการดำเนินการนี้
- แยกบิลด์: คุณสามารถแยกบิลด์ในอินสแตนซ์เซิร์ฟเวอร์หลายรายการได้
- แคชระยะไกล: คุณใช้แคชระยะไกลของ Gradle ได้ด้วย
ลองทดสอบที่ล้มเหลวอีกครั้ง
ความผิดพลาดเป็นระยะหมายถึงการทดสอบหรือเครื่องมือที่ดำเนินการไม่สำเร็จเป็นระยะๆ คุณควรพยายามค้นหาและแก้ไขปัญหาที่ทำให้เกิดบิลด์และการทดสอบที่ไม่เสถียรอยู่เสมอ แต่ปัญหาบางอย่างก็อาจจำลองได้ยาก โดยเฉพาะเมื่อทำการทดสอบที่มีเครื่องมือวัด กลยุทธ์ที่พบบ่อยคือการลองเรียกใช้การทดสอบซ้ำทุกครั้งที่การทดสอบล้มเหลว โดยไม่เกินจำนวนครั้งที่ลองสูงสุด
การกำหนดค่าการลองอีกครั้งนั้นไม่มีวิธีเดียว เนื่องจากอาจเกิดขึ้นได้หลายระดับ ตารางต่อไปนี้แสดงการดำเนินการที่คุณอาจทำเพื่อตอบสนองต่อการทดสอบที่ไม่สอดคล้องกัน
ไม่สำเร็จ |
การทำงาน |
---|---|
โปรแกรมจำลองไม่ตอบสนองเป็นเวลา 1 วินาที ซึ่งทริกเกอร์การหมดเวลา |
เรียกใช้การทดสอบที่ล้มเหลวอีกครั้ง |
โปรแกรมจำลองบูตไม่สำเร็จ |
เรียกใช้ทั้งงานอีกครั้ง |
เกิดข้อผิดพลาดในการเชื่อมต่อระหว่างขั้นตอนการชำระค่ารหัส |
รีสตาร์ทเวิร์กโฟลว์ |
คุณควรบันทึกและติดตามว่าส่วนใดของระบบทำงานไม่ถูกต้อง และลงทุนในการรักษา CI ให้เชื่อถือได้และรวดเร็ว โดยไม่อาศัยการลองใหม่เท่านั้น