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

รายงานปัญหา ดูแหล่งที่มา Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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

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

โดยตั้งค่าสถานะต่อไปนี้อย่างชัดเจนในบรรทัดคำสั่ง

ธง คำอธิบาย

--config

คุณจัดระเบียบ Flag ในไฟล์ .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 run

แฟล็กต่อไปนี้เกี่ยวข้องกับการเรียกใช้ 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 ครั้งจึงจะผ่านจะมีการทำเครื่องหมายเป็นไม่น่าเชื่อถือใน สรุปการทดสอบ

--remote_cache

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

--remote_download_regex

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

--remote_executor

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

--remote_instance_name

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

--show-timestamps

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

--spawn_strategy

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