ข้อมูลสรุปของ Bazel Flag

การไปยังส่วนต่างๆ ของรายการ Flag บรรทัดคำสั่งที่มากมายของ Bazel อาจเป็นเรื่องท้าทาย หน้านี้จะเน้นไปที่ Flag ที่สำคัญที่สุดที่คุณควรทราบ

ตัวเลือกทั่วไปที่มีประโยชน์

Flag ต่อไปนี้มีไว้เพื่อตั้งค่าในบรรทัดคำสั่งอย่างชัดเจน

ธง คำอธิบาย

--config

คุณสามารถจัดระเบียบ Flag ในไฟล์ .bazelrc เป็นการกําหนดค่าได้ เช่น Flag สําหรับการแก้ไขข้อบกพร่องหรือบิลด์รุ่น คุณสามารถเลือกกลุ่มการกําหนดค่าเพิ่มเติมได้ด้วย --config=<group>

--keep_going

Bazel ควรพยายามดำเนินการสร้างและทดสอบต่อไปให้ได้มากที่สุด โดยค่าเริ่มต้น Bazel จะแสดงข้อผิดพลาดทันที

--remote_download_outputs

เมื่อใช้การเรียกใช้ระยะไกลหรือการแคช (ทั้งบนดิสก์และระยะไกล) คุณสามารถส่งสัญญาณให้ Bazel ทราบว่าคุณต้องการดาวน์โหลดอาร์ติแฟกต์การสร้าง (ระดับกลาง) ทั้งหมด ดังนี้
--remote_download_outputs=all
โดยค่าเริ่มต้น Bazel จะดาวน์โหลดเฉพาะอาร์ติแฟกต์ระดับบนสุด เช่น ไบนารีขั้นสุดท้าย และอาร์ติแฟกต์ระดับกลางที่จําเป็นสําหรับการดำเนินการในเครื่อง

--stamp

เพิ่มข้อมูลบิลด์ (ผู้ใช้ การประทับเวลา) ลงในไบนารี

ค้นหาปัญหาเกี่ยวกับการสร้างและการทดสอบ

Flag ต่อไปนี้จะช่วยให้คุณเข้าใจข้อผิดพลาดในบิลด์หรือข้อผิดพลาดการทดสอบของ Bazel ได้ดีขึ้น

ธง คำอธิบาย

--announce_rc

แสดง Flag ที่ตั้งค่าไว้โดยนัยผ่านไฟล์ .bazelrc ที่ผู้ใช้กำหนด แมชชีนกำหนด หรือโปรเจ็กต์กำหนด

--auto_output_filter

โดยค่าเริ่มต้น Bazel จะพยายามป้องกันสแปมบันทึก และพิมพ์เฉพาะคำเตือนเกี่ยวกับคอมไพเลอร์และเอาต์พุตการแก้ไขข้อบกพร่องของ Starlark สำหรับแพ็กเกจและแพ็กเกจย่อยที่ขอในบรรทัดคำสั่ง หากต้องการปิดใช้การกรองทั้งหมด ให้ตั้งค่าเป็น --auto_output_filter=none

--sandbox_debug

ช่วยให้คุณเจาะลึกข้อผิดพลาดเกี่ยวกับแซนด์บ็อกซ์ได้ โปรดดูรายละเอียดเกี่ยวกับสาเหตุที่ Bazel วางระบบนิเวศเสมือนสำหรับบิลด์โดยค่าเริ่มต้นและสิ่งที่ระบบนิเวศเสมือนจะทำงานด้วยในเอกสารประกอบเกี่ยวกับระบบนิเวศเสมือน

--subcommands (-s)

แสดงรายการคำสั่งทั้งหมดที่ Bazel เรียกใช้ในระหว่างการสร้างอย่างละเอียด ไม่ว่าจะสร้างสำเร็จหรือไม่ก็ตาม

เริ่มต้นทำงาน

ธง คำอธิบาย

--bazelrc

คุณสามารถระบุตัวเลือก Bazel เริ่มต้นในไฟล์ .bazelrc หากมีไฟล์ .bazelrc หลายไฟล์ คุณจะเลือกไฟล์ .bazelrc ที่จะใช้ได้โดยการเพิ่ม --bazelrc=<path to the .bazelrc file>

--host_jvm_args

จำกัดปริมาณ RAM ที่เซิร์ฟเวอร์ Bazel ใช้ ตัวอย่างเช่น คำสั่งต่อไปนี้จะจำกัดขนาดกอง Bazel เป็น 3 GB
--host_jvm_args=-Xmx3g

--output_base

ควบคุมต้นไม้เอาต์พุตของ Bazel Bazel จะไม่จัดเก็บเอาต์พุตการสร้าง รวมถึงบันทึก ไว้ในซอร์สทรี แต่จะใช้ต้นไม้เอาต์พุตที่แยกต่างหากแทน

การทดสอบ Bazel

แฟล็กต่อไปนี้เกี่ยวข้องกับการทดสอบ Bazel

ธง คำอธิบาย

--java_debug

ทําให้การทดสอบ Java รอการเชื่อมต่อโปรแกรมแก้ไขข้อบกพร่องก่อนดำเนินการ

--runs_per_test

จำนวนครั้งที่จะเรียกใช้การทดสอบ เช่น หากต้องการเรียกใช้การทดสอบ N ครั้ง ให้เพิ่ม --runs_per_test=N ซึ่งจะเป็นประโยชน์ในการแก้ไขข้อบกพร่องของทดสอบที่ไม่เสถียร และดูว่าการแก้ไขทําให้ทดสอบผ่านอย่างสม่ำเสมอหรือไม่

--test_filter

แฟล็กนี้มีประโยชน์อย่างยิ่งเมื่อทำซ้ำในวิธีการทดสอบเดียว เช่น เมื่อการเปลี่ยนแปลงที่คุณทําทําให้การทดสอบใช้งานไม่ได้ คุณสามารถมุ่งเน้นที่การทดสอบที่เฉพาะเจาะจงซึ่งไม่ผ่านเท่านั้นแทนที่จะเรียกใช้วิธีการทดสอบทั้งหมดในชุดทดสอบอีกครั้ง วิธีนี้ช่วยให้คุณได้รับความคิดเห็นเร็วขึ้นและแก้ไขข้อบกพร่องได้อย่างมีประสิทธิภาพมากขึ้น แฟล็กนี้มักใช้ร่วมกับ --test_output=streamed เพื่อแสดงผลลัพธ์การทดสอบแบบเรียลไทม์

--test_output

ระบุโหมดเอาต์พุต โดยค่าเริ่มต้น Bazel จะบันทึกเอาต์พุตการทดสอบในไฟล์บันทึกในเครื่อง เมื่อทำซ้ำการทดสอบที่ไม่ผ่าน โดยทั่วไปคุณควรใช้ --test_output=streamed เพื่อดูเอาต์พุตการทดสอบแบบเรียลไทม์

การเรียกใช้ Bazel

แฟล็กต่อไปนี้เกี่ยวข้องกับการเรียกใช้ Bazel

ธง คำอธิบาย

--run_under

เปลี่ยนวิธีเรียกใช้ไฟล์ปฏิบัติการ เช่น --run_under="strace -c" มักใช้สำหรับการแก้ไขข้อบกพร่อง

ตัวเลือก bazelrc สำหรับผู้ใช้แต่ละราย

Flag ต่อไปนี้เกี่ยวข้องกับตัวเลือก .bazelrc ที่เฉพาะเจาะจงสำหรับผู้ใช้

ธง คำอธิบาย

--disk_cache

เส้นทางไปยังไดเรกทอรีที่ Bazel อ่านและเขียนการดำเนินการและเอาต์พุตการดำเนินการได้ หากไม่มีไดเรกทอรี ระบบจะสร้างให้ คุณสามารถแชร์อาร์ติแฟกต์การสร้างระหว่างสาขาหรือพื้นที่ทํางานหลายแห่ง และเร่งความเร็วการสร้าง Bazel ได้โดยเพิ่ม --disk_cache=<path> ลงในคําสั่ง

--jobs

จำนวนงานที่ทำงานพร้อมกัน โดยปกติแล้ว จะใช้เฉพาะเมื่อใช้การดําเนินการจากระยะไกลเมื่อคลัสเตอร์การบิลด์ระยะไกลดําเนินการงานมากกว่าที่คุณมีคอร์ในเครื่อง

--local_resources

จำกัดปริมาณ CPU หรือ RAM ที่การกระทำที่ทำงานในเครื่องใช้

--sandbox_base

อนุญาตให้แซนด์บ็อกซ์สร้างไดเรกทอรีแซนด์บ็อกซ์ใต้เส้นทางนี้ โดยค่าเริ่มต้น Bazel จะดำเนินการในเครื่องเสมือนซึ่งจะเพิ่มภาระงานให้กับการสร้าง

ตัวเลือก bazelrc สำหรับโปรเจ็กต์โดยเฉพาะ

Flag ต่อไปนี้เกี่ยวข้องกับตัวเลือก .bazelrc สำหรับโปรเจ็กต์ที่เฉพาะเจาะจง

ธง คำอธิบาย

--flaky_test_attempts

ทดสอบแต่ละรายการซ้ำตามจำนวนครั้งที่ระบุไว้ในกรณีที่การทดสอบไม่สำเร็จ ซึ่งจะเป็นประโยชน์อย่างยิ่งใน Continuous Integration การทดสอบที่ต้องใช้มากกว่า 1 ครั้งจึงจะผ่านจะมีการทําเครื่องหมายเป็นFLAKYในสรุปการทดสอบ

--remote_cache

URI ของปลายทางแคช การตั้งค่าการแคชระยะไกลเป็นวิธีที่ยอดเยี่ยมในการเร่งความเร็วการสร้าง Bazel ซึ่งสามารถใช้ร่วมกับแคชในดิสก์ภายในได้

--remote_download_regex

บังคับให้ดาวน์โหลดเอาต์พุตของบิลด์ระยะไกลซึ่งมีเส้นทางตรงกับรูปแบบนี้ โดยไม่คำนึงถึงการตั้งค่า --remote_download_outputs คุณระบุรูปแบบได้หลายรายการโดยการใช้ Flag นี้ซ้ำ

--remote_executor

HOST หรือ HOST:PORT ของปลายทางการดําเนินการระยะไกล ส่งค่านี้หากคุณใช้บริการการเรียกใช้จากระยะไกล คุณจะต้องเพิ่ม --remote_instance_name=<name> บ่อยครั้ง

--remote_instance_name

ค่าที่จะส่งเป็น instance_name ใน API การดำเนินการระยะไกล

--show-timestamps

หากระบุ ระบบจะเพิ่มการประทับเวลาลงในข้อความแต่ละรายการที่ Bazel สร้างขึ้นเพื่อระบุเวลาที่แสดงข้อความ ซึ่งมีประโยชน์ในระบบ CI เพื่อทำความเข้าใจอย่างรวดเร็วว่าขั้นตอนใดใช้เวลานานเท่าใด

--spawn_strategy

แม้จะมีการเรียกใช้จากระยะไกล แต่การเรียกใช้การดำเนินการบางอย่างของบิลด์ในเครื่องอาจเร็วกว่า ขึ้นอยู่กับปัจจัยต่างๆ เช่น ความสามารถของคลัสเตอร์การสร้าง ความเร็วของเครือข่าย และการหน่วงเวลาของเครือข่าย