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

การเลื่อนดูรายการแฟล็กบรรทัดคำสั่งที่ยาวเหยียดของ Bazel อาจเป็นเรื่องท้าทาย หน้านี้จึงเน้นที่แฟล็กที่จำเป็นต้องทราบที่สำคัญที่สุด

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

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

แฟล็ก คำอธิบาย

--config

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

--keep_going

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

--remote_download_outputs

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

--stamp

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

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

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

แฟล็ก คำอธิบาย

--announce_rc

แสดงแฟล็กที่ตั้งค่าโดยนัยผ่านไฟล์ .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_output

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

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

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

แฟล็ก คำอธิบาย

--run_under

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

ตัวเลือก bazelrc เฉพาะผู้ใช้

แฟล็กต่อไปนี้เกี่ยวข้องกับตัวเลือก .bazelrc เฉพาะผู้ใช้

แฟล็ก คำอธิบาย

--disk_cache

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

--jobs

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

--local_resources

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

--sandbox_base

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

ตัวเลือก bazelrc เฉพาะโปรเจ็กต์

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

แฟล็ก คำอธิบาย

--flaky_test_attempts

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

--remote_cache

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

--remote_download_regex

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

--remote_executor

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

--remote_instance_name

ค่าที่จะส่งเป็น instance_name ใน Remote Execution API

--show-timestamps

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

--spawn_strategy

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