ctx.actions
สมาชิก
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- run
- run_shell
- symlink
- template_dict
- เขียน
args
Args actions.args()
declare_directory
File actions.declare_directory(filename, *, sibling=None)
Args.add_all() เฉพาะไฟล์และไดเรกทอรีปกติเท่านั้นที่อยู่ในเนื้อหาที่ขยายของ declare_directory ได้
          
      พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| filename | string;
                                     required หากไม่ได้ระบุ "sibling" ให้ระบุเส้นทางของไดเรกทอรีใหม่ที่สัมพันธ์กับแพ็กเกจปัจจุบัน หรือชื่อฐานสำหรับไฟล์ ("sibling" จะกำหนดไดเรกทอรี) | 
| sibling | File หรือ None;
                                     ค่าเริ่มต้นคือNoneไฟล์ที่อยู่ในไดเรกทอรีเดียวกับไดเรกทอรีที่ประกาศใหม่ ไฟล์ต้องอยู่ในแพ็กเกจปัจจุบัน | 
declare_file
File actions.declare_file(filename, *, sibling=None)
sibling ชื่อไฟล์จะสัมพันธ์กับไดเรกทอรีแพ็กเกจ มิฉะนั้นไฟล์จะอยู่ในไดเรกทอรีเดียวกับ sibling สร้างไฟล์นอกแพ็กเกจปัจจุบันไม่ได้โปรดทราบว่านอกจากการประกาศไฟล์แล้ว คุณต้องสร้างการดำเนินการที่ส่งไฟล์แยกต่างหากด้วย การสร้างการดำเนินการดังกล่าวจะต้องส่งออบเจ็กต์ File ที่ส่งคืนไปยังฟังก์ชันการสร้างของการดำเนินการ
โปรดทราบว่าไม่จำเป็นต้อง (และไม่สามารถ) ประกาศไฟล์เอาต์พุตที่ประกาศไว้ล่วงหน้าโดยใช้ฟังก์ชันนี้ คุณสามารถรับออบเจ็กต์ File จาก ctx.outputs แทนได้ ดูตัวอย่างการใช้งาน
          
      
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| filename | สตริง
                                     ต้องระบุ หากไม่ได้ระบุ "sibling" ให้ระบุเส้นทางของไฟล์ใหม่ที่สัมพันธ์กับแพ็กเกจปัจจุบัน หรือชื่อฐานสำหรับไฟล์ ("sibling" จะกำหนดไดเรกทอรี) | 
| sibling | ไฟล์ หรือ Noneค่าเริ่มต้นคือNoneไฟล์ที่อยู่ในไดเรกทอรีเดียวกับไฟล์ที่สร้างขึ้นใหม่ ไฟล์ต้องอยู่ในแพ็กเกจปัจจุบัน | 
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| filename | string;
                                     required หากไม่ได้ระบุ "sibling" ให้ระบุเส้นทางของซิมลิงก์ใหม่ที่สัมพันธ์กับแพ็กเกจปัจจุบัน หรือชื่อฐานสำหรับไฟล์ ("sibling" จะกำหนดไดเรกทอรี) | 
| sibling | ไฟล์ หรือ Noneค่าเริ่มต้นคือNoneไฟล์ที่อยู่ในไดเรกทอรีเดียวกับ Symlink ที่ประกาศใหม่ | 
do_nothing
None actions.do_nothing(mnemonic, inputs=[])พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| mnemonic | string;
                                     required คำอธิบายการดำเนินการ 1 คำ เช่น CppCompile หรือ GoLink | 
| inputs | ลำดับของไฟล์ หรือ depset
                                     ค่าเริ่มต้นคือ []รายการไฟล์อินพุตของการดำเนินการ | 
expand_template
None actions.expand_template(template, output, substitutions={}, is_executable=False, computed_substitutions=unbound)substitutions ตามลำดับที่ระบุการแทนที่ เมื่อใดก็ตามที่คีย์ของพจนานุกรมปรากฏในเทมเพลต (หรือผลลัพธ์ของการแทนที่ก่อนหน้า) ระบบจะแทนที่ด้วยค่าที่เชื่อมโยง คีย์ไม่มีไวยากรณ์พิเศษ เช่น คุณอาจใช้เครื่องหมายปีกกาเพื่อหลีกเลี่ยงความขัดแย้ง (เช่น {KEY}) ดูตัวอย่างการใช้งาน
          
      พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| template | ไฟล์
                                     ต้องระบุ ไฟล์เทมเพลตซึ่งเป็นไฟล์ข้อความที่เข้ารหัส UTF-8 | 
| output | ไฟล์
                                     ต้องระบุ ไฟล์เอาต์พุตซึ่งเป็นไฟล์ข้อความที่เข้ารหัสแบบ UTF-8 | 
| substitutions | dict;
                                     ค่าเริ่มต้นคือ {}การแทนที่ที่จะทำเมื่อขยายเทมเพลต | 
| is_executable | bool;
                                     ค่าเริ่มต้นคือ Falseระบุว่าไฟล์เอาต์พุตควรเป็นไฟล์ปฏิบัติการหรือไม่ | 
| computed_substitutions | TemplateDict;
                                     ค่าเริ่มต้นคือ unboundการแทนที่ที่จะทำเมื่อขยายเทมเพลต | 
โฮมรัน
None actions.run(outputs, inputs=[], unused_inputs_list=None, executable, tools=unbound, arguments=[], mnemonic=None, progress_message=None, use_default_shell_env=False, env=None, execution_requirements=None, input_manifests=None, exec_group=None, shadowed_action=None, resource_set=None, toolchain=unbound)พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| outputs | ลำดับของไฟล์
                                     ต้องระบุ รายการไฟล์เอาต์พุตของการดำเนินการ | 
| inputs | ลำดับของไฟล์ หรือ depset
                                     ค่าเริ่มต้นคือ []รายการหรือ depset ของไฟล์อินพุตของการดำเนินการ | 
| unused_inputs_list | File; or None;
                                     default isNoneFile containing list of inputs unused by the action. เนื้อหาของไฟล์นี้ (โดยทั่วไปคือเอาต์พุตอย่างใดอย่างหนึ่งของการดำเนินการ) จะสอดคล้องกับรายการไฟล์อินพุตที่ไม่ได้ใช้ในระหว่างการดำเนินการทั้งหมด การเปลี่ยนแปลงใดๆ ในไฟล์เหล่านั้นต้องไม่ส่งผลต่อเอาต์พุตของการดำเนินการในทางใดทางหนึ่ง | 
| executable | File หรือ string หรือ FilesToRunProvider
                                     required ไฟล์ที่เรียกใช้งานได้ซึ่งการดำเนินการจะเรียกใช้ | 
| tools | sequence หรือ depset
                                     ค่าเริ่มต้นคือ unboundรายการหรือ depset ของเครื่องมือที่การดำเนินการต้องการ เครื่องมือคืออินพุตที่มีไฟล์ที่เรียกใช้เพิ่มเติมซึ่งจะพร้อมใช้งานสำหรับการดำเนินการโดยอัตโนมัติ เมื่อระบุรายการ รายการนั้นอาจเป็นคอลเล็กชันที่แตกต่างกันของอินสแตนซ์ Files, FilesToRunProvider หรือ depsets ของ Files ระบบจะเพิ่มไฟล์ที่อยู่ในรายการโดยตรงและมาจาก ctx.executable โดยอัตโนมัติ เมื่อระบุชุดข้อมูล ระบบจะอนุญาตให้มีเฉพาะไฟล์เท่านั้น ไม่ว่าในกรณีใดก็ตาม ระบบจะไม่เชื่อมโยงไฟล์ภายใน depsets กับ ctx.executable สำหรับไฟล์ที่ใช้ในการเรียกใช้ | 
| arguments | sequence;
                                     ค่าเริ่มต้นคือ []อาร์กิวเมนต์บรรทัดคำสั่งของการดำเนินการ ต้องเป็นรายการสตริงหรือออบเจ็กต์ actions.args() | 
| mnemonic | สตริง หรือ None;
                                     ค่าเริ่มต้นคือNoneคำอธิบายการดำเนินการ 1 คำ เช่น CppCompile หรือ GoLink | 
| progress_message | string หรือ Noneค่าเริ่มต้นคือNoneข้อความความคืบหน้าที่จะแสดงต่อผู้ใช้ในระหว่างการสร้าง เช่น "กำลังคอมไพล์ foo.cc เพื่อสร้าง foo.o" ข้อความอาจมีรูปแบบ %{label},%{input}หรือ%{output}ซึ่งจะแทนที่ด้วยสตริงป้ายกำกับ อินพุตแรก หรือเส้นทางของเอาต์พุตตามลำดับ ควรใช้รูปแบบแทนสตริงแบบคงที่ เนื่องจากรูปแบบมีประสิทธิภาพมากกว่า | 
| use_default_shell_env | bool;
                                     ค่าเริ่มต้นคือ Falseไม่ว่าการดำเนินการควรใช้สภาพแวดล้อมเชลล์เริ่มต้นหรือไม่ ซึ่งประกอบด้วยตัวแปรที่ขึ้นอยู่กับระบบปฏิบัติการ 2-3 ตัว รวมถึงตัวแปรที่ตั้งค่าผ่าน --action_envหากทั้ง  | 
| env | dict หรือ None;
                                     ค่าเริ่มต้นคือNoneตั้งค่าพจนานุกรมของตัวแปรสภาพแวดล้อม หากทั้ง  | 
| execution_requirements | dict หรือ None;
                                     ค่าเริ่มต้นคือNoneข้อมูลสำหรับการกำหนดเวลาการดำเนินการ ดูคีย์ที่มีประโยชน์ได้ในแท็ก | 
| input_manifests | sequence หรือ Noneค่าเริ่มต้นคือNoneอาร์กิวเมนต์เดิม ยกเว้นแล้ว | 
| exec_group | string หรือ None;
                                     ค่าเริ่มต้นคือNoneเรียกใช้การดำเนินการบนแพลตฟอร์มการดำเนินการของกลุ่มการดำเนินการที่ระบุ หากไม่มี ระบบจะใช้แพลตฟอร์มการดำเนินการเริ่มต้นของเป้าหมาย | 
| shadowed_action | การดำเนินการ
                                     ค่าเริ่มต้นคือ Noneเรียกใช้การดำเนินการโดยใช้ข้อมูลเข้าและสภาพแวดล้อมของการดำเนินการที่ซ่อนไว้ที่ระบุ ซึ่งเพิ่มลงในรายการข้อมูลเข้าและสภาพแวดล้อมของการดำเนินการ สภาพแวดล้อมการดำเนินการสามารถเขียนทับตัวแปรสภาพแวดล้อมของการดำเนินการที่ซ่อนอยู่ได้ หากไม่มี ให้ใช้เฉพาะอินพุตของการดำเนินการและสภาพแวดล้อมที่ระบุ | 
| resource_set | callable หรือ None;
                                     ค่าเริ่มต้นคือNoneฟังก์ชัน Callback ที่แสดงพจนานุกรมชุดทรัพยากร ซึ่งใช้ในการประมาณการใช้ทรัพยากรในเวลาดำเนินการหากมีการเรียกใช้การดำเนินการนี้ในเครื่อง ฟังก์ชันนี้รับอาร์กิวเมนต์ตำแหน่ง 2 รายการ ได้แก่ สตริงที่แสดงชื่อระบบปฏิบัติการ (เช่น "osx") และจำนวนเต็มที่แสดงจำนวนอินพุตของการดำเนินการ พจนานุกรมที่แสดงผลอาจมีรายการต่อไปนี้ ซึ่งแต่ละรายการอาจเป็นค่าทศนิยมหรือจำนวนเต็ม 
 หากตั้งค่าพารามิเตอร์นี้เป็น  Callback ต้องเป็นระดับบนสุด (ไม่อนุญาตให้ใช้ฟังก์ชันแลมบ์ดาและฟังก์ชันที่ซ้อนกัน) | 
| toolchain | ป้ายกำกับ หรือสตริง หรือ Noneค่าเริ่มต้นคือunboundประเภท Toolchain ของไฟล์ที่เรียกใช้งานได้หรือเครื่องมือที่ใช้ในการดำเนินการนี้ หากไฟล์ที่เรียกใช้งานได้และเครื่องมือไม่ได้มาจาก Toolchain ให้ตั้งค่าพารามิเตอร์นี้เป็น `None` หากไฟล์ที่เรียกใช้งานได้และเครื่องมือมาจาก Toolchain คุณต้องตั้งค่าประเภท Toolchain เพื่อให้การดำเนินการทำงานบนแพลตฟอร์มการดำเนินการที่ถูกต้อง โปรดทราบว่ากฎที่สร้างการดำเนินการนี้ต้องกำหนดเครื่องมือนี้ภายในฟังก์ชัน "rule()" เมื่อตั้งค่าพารามิเตอร์ `toolchain` และ `exec_group` ทั้ง 2 รายการ ระบบจะใช้ `exec_group` ระบบจะแสดงข้อผิดพลาดในกรณีที่ `exec_group` ไม่ได้ระบุ Toolchain เดียวกัน | 
run_shell
None actions.run_shell(outputs, inputs=[], tools=unbound, arguments=[], mnemonic=None, command, progress_message=None, use_default_shell_env=False, env=None, execution_requirements=None, input_manifests=None, exec_group=None, shadowed_action=None, resource_set=None, toolchain=unbound)พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| outputs | ลำดับของไฟล์
                                     ต้องระบุ รายการไฟล์เอาต์พุตของการดำเนินการ | 
| inputs | ลำดับของไฟล์ หรือ depset
                                     ค่าเริ่มต้นคือ []รายการหรือ depset ของไฟล์อินพุตของการดำเนินการ | 
| tools | ลำดับของไฟล์ หรือ depset
                                     ค่าเริ่มต้นคือ unboundรายการหรือ depset ของเครื่องมือที่การดำเนินการต้องการ เครื่องมือคืออินพุตที่มีไฟล์ที่เรียกใช้เพิ่มเติมซึ่งจะพร้อมใช้งานสำหรับการดำเนินการโดยอัตโนมัติ รายการนี้อาจมีอินสแตนซ์ Files หรือ FilesToRunProvider | 
| arguments | sequence;
                                     ค่าเริ่มต้นคือ []อาร์กิวเมนต์บรรทัดคำสั่งของการดำเนินการ ต้องเป็นรายการสตริงหรือออบเจ็กต์ actions.args()Bazel จะส่งองค์ประกอบในแอตทริบิวต์นี้เป็นอาร์กิวเมนต์ไปยังคำสั่ง คำสั่งสามารถเข้าถึงอาร์กิวเมนต์เหล่านี้ได้โดยใช้การแทนที่ตัวแปรเชลล์ เช่น  ในกรณีที่  | 
| mnemonic | สตริง หรือ None;
                                     ค่าเริ่มต้นคือNoneคำอธิบายการดำเนินการ 1 คำ เช่น CppCompile หรือ GoLink | 
| command | สตริง หรือลำดับของสตริง
                                     ต้องระบุ คำสั่ง Shell ที่จะเรียกใช้ ซึ่งอาจเป็นสตริง (แนะนำ) หรือลำดับสตริง (เลิกใช้งานแล้ว) หาก  (เลิกใช้งานแล้ว) หาก  Bazel ใช้เชลล์เดียวกันเพื่อเรียกใช้คำสั่งเช่นเดียวกับที่ใช้สำหรับ genrule | 
| progress_message | string หรือ Noneค่าเริ่มต้นคือNoneข้อความความคืบหน้าที่จะแสดงต่อผู้ใช้ในระหว่างการสร้าง เช่น "กำลังคอมไพล์ foo.cc เพื่อสร้าง foo.o" ข้อความอาจมีรูปแบบ %{label},%{input}หรือ%{output}ซึ่งจะแทนที่ด้วยสตริงป้ายกำกับ อินพุตแรก หรือเส้นทางของเอาต์พุตตามลำดับ ควรใช้รูปแบบแทนสตริงแบบคงที่ เนื่องจากรูปแบบมีประสิทธิภาพมากกว่า | 
| use_default_shell_env | bool;
                                     ค่าเริ่มต้นคือ Falseไม่ว่าการดำเนินการควรใช้สภาพแวดล้อมเชลล์เริ่มต้นหรือไม่ ซึ่งประกอบด้วยตัวแปรที่ขึ้นอยู่กับระบบปฏิบัติการ 2-3 ตัว รวมถึงตัวแปรที่ตั้งค่าผ่าน --action_envหากทั้ง  | 
| env | dict หรือ None;
                                     ค่าเริ่มต้นคือNoneตั้งค่าพจนานุกรมของตัวแปรสภาพแวดล้อม หากทั้ง  | 
| execution_requirements | dict หรือ None;
                                     ค่าเริ่มต้นคือNoneข้อมูลสำหรับการกำหนดเวลาการดำเนินการ ดูคีย์ที่มีประโยชน์ได้ในแท็ก | 
| input_manifests | sequence หรือ Noneค่าเริ่มต้นคือNoneอาร์กิวเมนต์เดิม ยกเว้นแล้ว | 
| exec_group | string หรือ None;
                                     ค่าเริ่มต้นคือNoneเรียกใช้การดำเนินการบนแพลตฟอร์มการดำเนินการของกลุ่มการดำเนินการที่ระบุ หากไม่มี ระบบจะใช้แพลตฟอร์มการดำเนินการเริ่มต้นของเป้าหมาย | 
| shadowed_action | การดำเนินการ
                                     ค่าเริ่มต้นคือ Noneเรียกใช้การดำเนินการโดยใช้ข้อมูลที่ค้นพบของการดำเนินการที่ซ่อนไว้ที่ระบุ ซึ่งเพิ่มลงในรายการอินพุตของการดำเนินการ หากไม่มี ให้ใช้เฉพาะอินพุตของการดำเนินการ | 
| resource_set | callable หรือ None;
                                     ค่าเริ่มต้นคือNoneฟังก์ชันเรียกกลับสำหรับการประมาณการใช้ทรัพยากรหากเรียกใช้ในเครื่อง ดู ctx.actions.run() | 
| toolchain | ป้ายกำกับ หรือสตริง หรือ Noneค่าเริ่มต้นคือunboundประเภท Toolchain ของไฟล์ที่เรียกใช้งานได้หรือเครื่องมือที่ใช้ในการดำเนินการนี้ หากไฟล์ที่เรียกใช้งานได้และเครื่องมือไม่ได้มาจาก Toolchain ให้ตั้งค่าพารามิเตอร์นี้เป็น `None` หากไฟล์ที่เรียกใช้งานได้และเครื่องมือมาจาก Toolchain คุณต้องตั้งค่าประเภท Toolchain เพื่อให้การดำเนินการทำงานบนแพลตฟอร์มการดำเนินการที่ถูกต้อง โปรดทราบว่ากฎที่สร้างการดำเนินการนี้ต้องกำหนดเครื่องมือนี้ภายในฟังก์ชัน "rule()" เมื่อตั้งค่าพารามิเตอร์ `toolchain` และ `exec_group` ทั้ง 2 รายการ ระบบจะใช้ `exec_group` ระบบจะแสดงข้อผิดพลาดในกรณีที่ `exec_group` ไม่ได้ระบุ Toolchain เดียวกัน | 
ลิงก์สัญลักษณ์
None actions.symlink(output, target_file=None, target_path=None, is_executable=False, progress_message=None)ต้องเรียกใช้ฟังก์ชันนี้โดยระบุ target_file หรือ target_path เพียงอย่างเดียว
เมื่อใช้ target_file ให้ประกาศ output ด้วย declare_file() หรือ declare_directory() และจับคู่ประเภทของ target_file ซึ่งจะทำให้ลิงก์สัญลักษณ์ชี้ไปยัง target_file Bazel จะลบล้างเอาต์พุตของการดำเนินการนี้เมื่อใดก็ตามที่เป้าหมายของ Symlink หรือเนื้อหาของ Symlink เปลี่ยนแปลง
มิเช่นนั้น เมื่อใช้ target_path ให้ประกาศ output ด้วย declare_symlink()) ในกรณีนี้ Symlink จะชี้ไปยัง target_path Bazel จะไม่แก้ไข Symlink และเอาต์พุตของการดำเนินการนี้จะใช้ไม่ได้ก็ต่อเมื่อเนื้อหาข้อความของ Symlink (นั่นคือค่าของ readlink()) เปลี่ยนแปลง โดยเฉพาะอย่างยิ่ง คุณสามารถใช้คำสั่งนี้เพื่อสร้างซิมลิงก์ที่ไม่มีอยู่จริง
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| output | ไฟล์
                                     ต้องระบุ เอาต์พุตของการดำเนินการนี้ | 
| target_file | ไฟล์ หรือ Noneค่าเริ่มต้นคือNoneไฟล์ที่ซิมลิงก์เอาต์พุตจะชี้ไป | 
| target_path | สตริง หรือ Noneค่าเริ่มต้นคือNoneเส้นทางที่แน่นอนที่ซิมลิงก์เอาต์พุตจะชี้ไป ระบบจะไม่ใช้การปรับให้เป็นมาตรฐานหรือการประมวลผลอื่นๆ | 
| is_executable | bool;
                                     ค่าเริ่มต้นคือ Falseใช้ได้กับ target_fileเท่านั้น ไม่ใช่target_pathหากเป็นจริง เมื่อดำเนินการ ระบบจะตรวจสอบเส้นทางของtarget_fileเพื่อยืนยันว่าสามารถดำเนินการได้ และจะรายงานข้อผิดพลาดหากดำเนินการไม่ได้ การตั้งค่าis_executableเป็น False ไม่ได้หมายความว่าเป้าหมายไม่สามารถเรียกใช้ได้ เพียงแต่ไม่มีการยืนยันฟีเจอร์นี้ไม่เหมาะสำหรับ  | 
| progress_message | string หรือ Noneค่าเริ่มต้นคือNoneข้อความความคืบหน้าที่จะแสดงต่อผู้ใช้ในระหว่างการสร้าง | 
template_dict
TemplateDict actions.template_dict()
เขียนหน่อย
None actions.write(output, content, is_executable=False)expand_template
          
      พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| output | ไฟล์
                                     ต้องระบุ ไฟล์เอาต์พุต | 
| content | string หรือ Args
                                     required เนื้อหาของไฟล์ อาจเป็นสตริงหรือออบเจ็กต์ actions.args() | 
| is_executable | bool;
                                     ค่าเริ่มต้นคือ Falseระบุว่าไฟล์เอาต์พุตควรเป็นไฟล์ปฏิบัติการหรือไม่ |