การเลื่อนดูรายการแฟล็กบรรทัดคำสั่งที่ยาวเหยียดของ Bazel อาจเป็นเรื่องท้าทาย หน้านี้จึงเน้นที่แฟล็กที่จำเป็นต้องทราบที่สำคัญที่สุด
ตัวเลือกทั่วไปที่เป็นประโยชน์
แฟล็กต่อไปนี้มีไว้เพื่อตั้งค่าอย่างชัดเจนในบรรทัดคำสั่ง
| แฟล็ก | คำอธิบาย |
|---|---|
|
คุณสามารถจัดระเบียบแฟล็กในไฟล์ .bazelrc เป็นการกำหนดค่า เช่น การกำหนดค่าสำหรับการแก้ไขข้อบกพร่องหรือบิลด์รุ่นที่เผยแพร่ และเลือกกลุ่มการกำหนดค่าเพิ่มเติมได้ด้วย --config=<group>
|
|
Bazel ควรพยายามดำเนินการบิลด์และการดำเนินการทดสอบต่อไปให้ได้มากที่สุด โดยค่าเริ่มต้น Bazel จะล้มเหลวทันที |
|
เมื่อใช้การดำเนินการจากระยะไกลหรือการแคช (ทั้งในดิสก์และจากระยะไกล) คุณสามารถส่งสัญญาณไปยัง Bazel ว่าต้องการดาวน์โหลดอาร์ติแฟกต์บิลด์ (ระดับกลาง) ทั้งหมด ได้ดังนี้
--remote_download_outputs=all |
|
เพิ่มข้อมูลบิลด์ (ผู้ใช้, การประทับเวลา) ลงในไบนารี |
ค้นพบปัญหาเกี่ยวกับบิลด์และการทดสอบ
แฟล็กต่อไปนี้จะช่วยให้คุณเข้าใจข้อผิดพลาดเกี่ยวกับบิลด์หรือการทดสอบของ Bazel ได้ดียิ่งขึ้น
| แฟล็ก | คำอธิบาย |
|---|---|
|
แสดงแฟล็กที่ตั้งค่าโดยนัยผ่านไฟล์ .bazelrc ที่ผู้ใช้กำหนด เครื่องกำหนด หรือโปรเจ็กต์กำหนด |
|
โดยค่าเริ่มต้น Bazel จะพยายามป้องกันสแปมในบันทึกและจะพิมพ์เฉพาะคำเตือนของคอมไพเลอร์และเอาต์พุตการแก้ไขข้อบกพร่องของ Starlark สำหรับแพ็กเกจและแพ็กเกจย่อยที่ขอในบรรทัดคำสั่ง หากต้องการปิดใช้การกรองทั้งหมด ให้ตั้งค่า
--auto_output_filter=none
|
|
ช่วยให้คุณเจาะลึกข้อผิดพลาดของแซนด์บ็อกซ์ ดูรายละเอียดเกี่ยวกับเหตุผลที่ Bazel ใช้แซนด์บ็อกซ์ บิลด์โดยค่าเริ่มต้นและสิ่งที่อยู่ในแซนด์บ็อกซ์ได้ใน เอกสารประกอบเกี่ยวกับแซนด์บ็อกซ์ |
|
แสดงรายการที่ครอบคลุมของทุกคำสั่งที่ Bazel เรียกใช้ระหว่างบิลด์ ไม่ว่าคำสั่งนั้นจะสำเร็จหรือไม่ก็ตาม |
สตาร์ทอัพ
| แฟล็ก | คำอธิบาย |
|---|---|
|
คุณสามารถระบุตัวเลือก Bazel เริ่มต้นในไฟล์ .bazelrc ได้ หากมีไฟล์
.bazelrc หลายไฟล์ คุณสามารถเลือกไฟล์
.bazelrc ที่จะใช้ได้โดยเพิ่ม --bazelrc=<path to
the .bazelrc file>
|
|
จำกัดปริมาณ RAM ที่เซิร์ฟเวอร์ Bazel ใช้
ตัวอย่างเช่น คำสั่งต่อไปนี้จะจำกัดขนาดฮีปของ Bazel ไว้ที่ 3 GB
--host_jvm_args=-Xmx3g |
|
ควบคุมแผนผังเอาต์พุตของ Bazel Bazel จะไม่จัดเก็บเอาต์พุตบิลด์ รวมถึงบันทึกไว้ในแผนผังแหล่งที่มา แต่จะใช้แผนผังเอาต์พุตที่แยกต่างหากเพื่อจุดประสงค์นี้ |
การทดสอบ Bazel
แฟล็กต่อไปนี้เกี่ยวข้องกับการทดสอบ Bazel
| แฟล็ก | คำอธิบาย |
|---|---|
|
ทำให้การทดสอบ Java รอการเชื่อมต่อดีบักเกอร์ก่อนที่จะดำเนินการ |
|
จำนวนครั้งที่จะเรียกใช้การทดสอบ เช่น หากต้องการเรียกใช้การทดสอบ N ครั้ง ให้เพิ่ม
--runs_per_test=N ซึ่งอาจเป็นประโยชน์ในการแก้ไขข้อบกพร่องของการทดสอบที่ไม่เสถียรและดูว่าการแก้ไขทำให้การทดสอบผ่านอย่างสม่ำเสมอหรือไม่
|
|
ระบุโหมดเอาต์พุต โดยค่าเริ่มต้น Bazel จะบันทึกเอาต์พุตการทดสอบในไฟล์บันทึกในเครื่อง เมื่อทำซ้ำการทดสอบที่ล้มเหลว คุณมักจะต้องการใช้
--test_output=streamed เพื่อดูเอาต์พุตการทดสอบแบบ
เรียลไทม์
|
การเรียกใช้ Bazel
แฟล็กต่อไปนี้เกี่ยวข้องกับการเรียกใช้ Bazel
| แฟล็ก | คำอธิบาย |
|---|---|
|
เปลี่ยนวิธีเรียกใช้ไฟล์ที่เรียกใช้งานได้ เช่น --run_under="strace -c" ใช้กันโดยทั่วไปสำหรับการแก้ไขข้อบกพร่อง
|
ตัวเลือก bazelrc เฉพาะผู้ใช้
แฟล็กต่อไปนี้เกี่ยวข้องกับตัวเลือก .bazelrc เฉพาะผู้ใช้
| แฟล็ก | คำอธิบาย |
|---|---|
|
เส้นทางไปยังไดเรกทอรีที่ Bazel สามารถอ่านและเขียนการดำเนินการและเอาต์พุตการดำเนินการได้
หากไดเรกทอรีไม่มีอยู่ ระบบจะสร้างขึ้น
คุณสามารถแชร์อาร์ติแฟกต์บิลด์ระหว่างหลายสาขาหรือพื้นที่ทำงาน และเร่งความเร็วบิลด์ Bazel ได้โดยเพิ่ม
--disk_cache=<path> ลงในคำสั่ง
|
|
จำนวนงานที่จะเรียกใช้พร้อมกัน โดยปกติแล้วคุณจะต้องใช้ตัวเลือกนี้เมื่อใช้การดำเนินการจากระยะไกลที่คลัสเตอร์บิลด์จากระยะไกลดำเนินการมากกว่าจำนวนคอร์ที่คุณมีในเครื่อง |
|
จำกัดปริมาณ CPU หรือ RAM ที่การดำเนินการที่ทำงานในเครื่องใช้ |
|
อนุญาตให้แซนด์บ็อกซ์สร้างไดเรกทอรีแซนด์บ็อกซ์ภายใต้เส้นทางนี้ โดยค่าเริ่มต้น Bazel จะดำเนินการในเครื่องแบบแซนด์บ็อกซ์ ซึ่งจะเพิ่มค่าใช้จ่ายบางอย่างให้กับบิลด์ |
ตัวเลือก bazelrc เฉพาะโปรเจ็กต์
แฟล็กต่อไปนี้เกี่ยวข้องกับตัวเลือก .bazelrc เฉพาะโปรเจ็กต์
| แฟล็ก | คำอธิบาย |
|---|---|
|
ลองการทดสอบแต่ละครั้งซ้ำตามจำนวนครั้งที่ระบุในกรณีที่การทดสอบล้มเหลว ตัวเลือกนี้มีประโยชน์อย่างยิ่งในการผสานรวมอย่างต่อเนื่อง การทดสอบที่ต้องลองมากกว่า 1 ครั้งจึงจะผ่านจะถูกทำเครื่องหมายเป็นFLAKY ในสรุปการทดสอบ |
|
URI ของปลายทางการแคช การตั้งค่าการแคชจากระยะไกลเป็นวิธีที่ยอดเยี่ยมในการเร่งความเร็วบิลด์ Bazel และใช้ร่วมกับแคชดิสก์ในเครื่องได้ |
|
บังคับให้ดาวน์โหลดเอาต์พุตบิลด์จากระยะไกลที่มีเส้นทางตรงกับรูปแบบนี้ ไม่ว่าการตั้งค่า --remote_download_outputs จะเป็นอย่างไรก็ตาม คุณระบุรูปแบบหลายรูปแบบได้โดยทำซ้ำแฟล็กนี้
|
|
HOST หรือ HOST:PORT ของปลายทางการดำเนินการจากระยะไกล ส่งแฟล็กนี้หากคุณใช้บริการการดำเนินการจากระยะไกล และมักจะต้องเพิ่ม
--remote_instance_name=<name>
|
|
ค่าที่จะส่งเป็น instance_name ใน Remote Execution API
|
|
หากระบุไว้ ระบบจะเพิ่มการประทับเวลาลงในแต่ละข้อความที่ Bazel สร้างขึ้น โดยระบุเวลาที่ข้อความแสดง ซึ่งมีประโยชน์ในระบบ CI เพื่อให้เข้าใจได้อย่างรวดเร็วว่าขั้นตอนใดใช้เวลานานเท่าใด |
|
แม้จะมีการดำเนินการจากระยะไกล แต่การดำเนินการบิลด์บางอย่างในเครื่องอาจเร็วกว่า ซึ่งขึ้นอยู่กับปัจจัยต่างๆ เช่น ความจุของคลัสเตอร์บิลด์ ความเร็วเครือข่าย และความล่าช้าของเครือข่าย |