การไปยังส่วนต่างๆ ของรายการ Flag บรรทัดคำสั่งที่มากมายของ Bazel อาจเป็นเรื่องท้าทาย หน้านี้จะเน้นไปที่ Flag ที่สำคัญที่สุดที่คุณควรทราบ
ตัวเลือกทั่วไปที่มีประโยชน์
Flag ต่อไปนี้มีไว้เพื่อตั้งค่าในบรรทัดคำสั่งอย่างชัดเจน
ธง | คำอธิบาย |
---|---|
|
คุณสามารถจัดระเบียบ Flag ในไฟล์ .bazelrc เป็นการกําหนดค่าได้ เช่น Flag สําหรับการแก้ไขข้อบกพร่องหรือบิลด์รุ่น คุณสามารถเลือกกลุ่มการกําหนดค่าเพิ่มเติมได้ด้วย --config=<group>
|
|
Bazel ควรพยายามดำเนินการสร้างและทดสอบต่อไปให้ได้มากที่สุด โดยค่าเริ่มต้น Bazel จะแสดงข้อผิดพลาดทันที |
|
เมื่อใช้การเรียกใช้ระยะไกลหรือการแคช (ทั้งบนดิสก์และระยะไกล) คุณสามารถส่งสัญญาณให้ Bazel ทราบว่าคุณต้องการดาวน์โหลดอาร์ติแฟกต์การสร้าง (ระดับกลาง) ทั้งหมด ดังนี้
--remote_download_outputs=all |
|
เพิ่มข้อมูลบิลด์ (ผู้ใช้ การประทับเวลา) ลงในไบนารี |
ค้นหาปัญหาเกี่ยวกับการสร้างและการทดสอบ
Flag ต่อไปนี้จะช่วยให้คุณเข้าใจข้อผิดพลาดในบิลด์หรือข้อผิดพลาดการทดสอบของ Bazel ได้ดีขึ้น
ธง | คำอธิบาย |
---|---|
|
แสดง Flag ที่กำหนดโดยนัยผ่านไฟล์ .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 สำหรับผู้ใช้แต่ละราย
Flag ต่อไปนี้เกี่ยวข้องกับตัวเลือก .bazelrc ที่เฉพาะเจาะจงสำหรับผู้ใช้
ธง | คำอธิบาย |
---|---|
|
เส้นทางไปยังไดเรกทอรีที่ Bazel อ่านและเขียนการดำเนินการและเอาต์พุตการดำเนินการได้
หากไม่มีไดเรกทอรี ระบบจะสร้างให้
คุณสามารถแชร์อาร์ติแฟกต์การสร้างระหว่างสาขาหรือพื้นที่ทํางานหลายแห่ง และเร่งการสร้าง Bazel ได้โดยการใส่ --disk_cache=<path> ลงในคําสั่ง
|
|
จำนวนงานที่ทำงานพร้อมกัน โดยปกติแล้ว จะใช้เฉพาะเมื่อใช้การดําเนินการจากระยะไกลเมื่อคลัสเตอร์การบิลด์ระยะไกลดําเนินการงานมากกว่าที่คุณมีคอร์ในเครื่อง |
|
จำกัดปริมาณ CPU หรือ RAM ที่การกระทำที่ทำงานในเครื่องใช้ |
|
อนุญาตให้แซนด์บ็อกซ์สร้างไดเรกทอรีแซนด์บ็อกซ์ใต้เส้นทางนี้ โดยค่าเริ่มต้น Bazel จะดำเนินการในเครื่องเสมือนซึ่งจะเพิ่มภาระงานให้กับการสร้าง |
ตัวเลือก bazelrc สำหรับโปรเจ็กต์โดยเฉพาะ
Flag ต่อไปนี้เกี่ยวข้องกับตัวเลือก .bazelrc สำหรับโปรเจ็กต์ที่เฉพาะเจาะจง
ธง | คำอธิบาย |
---|---|
|
ทดสอบแต่ละรายการซ้ำตามจำนวนครั้งที่ระบุไว้ในกรณีที่การทดสอบไม่สำเร็จ ซึ่งจะมีประโยชน์อย่างยิ่งใน Continuous Integration การทดสอบที่ต้องใช้มากกว่า 1 ครั้งจึงจะผ่านจะได้รับการระบุว่าไม่เสถียรในสรุปการทดสอบ |
|
URI ของปลายทางแคช การตั้งค่าการแคชระยะไกลเป็นวิธีที่ยอดเยี่ยมในการเร่งความเร็วการสร้าง Bazel ซึ่งสามารถใช้ร่วมกับแคชในดิสก์ภายในได้ |
|
บังคับให้ดาวน์โหลดเอาต์พุตของบิลด์ระยะไกลที่มีเส้นทางตรงกับรูปแบบนี้ โดยไม่คำนึงถึงการตั้งค่า --remote_download_outputs คุณระบุรูปแบบได้หลายรายการโดยการใช้ Flag นี้ซ้ำ
|
|
HOST หรือ HOST:PORT ของปลายทางการดําเนินการระยะไกล ส่งค่านี้หากคุณใช้บริการการเรียกใช้จากระยะไกล คุณจะต้องเพิ่ม --remote_instance_name=<name> บ่อยครั้ง
|
|
ค่าที่จะส่งเป็น instance_name ใน API การดำเนินการระยะไกล
|
|
หากระบุ ระบบจะเพิ่มการประทับเวลาลงในข้อความแต่ละรายการที่ Bazel สร้างขึ้นเพื่อระบุเวลาที่แสดงข้อความ ซึ่งมีประโยชน์ในระบบ CI เพื่อทำความเข้าใจอย่างรวดเร็วว่าขั้นตอนใดใช้เวลานานเท่าใด |
|
แม้จะมีการเรียกใช้จากระยะไกล แต่การเรียกใช้การดำเนินการบางอย่างของบิลด์ในเครื่องอาจเร็วกว่า ขึ้นอยู่กับปัจจัยต่างๆ เช่น ความสามารถของคลัสเตอร์การสร้าง ความเร็วของเครือข่าย และการหน่วงเวลาของเครือข่าย |