การดำเนินการ

โมดูลที่มีฟังก์ชันสำหรับสร้างการดำเนินการ เข้าถึงโมดูลนี้โดยใช้ ctx.actions

สำหรับสมาชิก

args

Args actions.args()

แสดงผลออบเจ็กต์ Args ที่สามารถใช้สร้างบรรทัดคำสั่งที่ใช้หน่วยความจำได้อย่างมีประสิทธิภาพ

declare_directory

File actions.declare_directory(filename, *, sibling=None)

ประกาศว่ากฎหรือลักษณะดังกล่าวสร้างไดเรกทอรีด้วยชื่อดังกล่าวในแพ็กเกจปัจจุบัน คุณต้องสร้างการดำเนินการที่สร้างไดเรกทอรี เนื้อหาของไดเรกทอรีไม่สามารถเข้าถึงจาก Starlark ได้โดยตรง แต่สามารถขยายได้ในคำสั่งการดำเนินการด้วย Args.add_all()

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
filename ต้องระบุ
หากไม่ได้ระบุ "sibling" เส้นทางของไดเรกทอรีใหม่ที่สัมพันธ์กับแพ็กเกจปัจจุบัน มิฉะนั้น ชื่อฐานสำหรับไฟล์ ("sibling" จะกำหนดไดเรกทอรี)
sibling File; or None; default = ไม่มี
ไฟล์ที่อยู่ในไดเรกทอรีเดียวกันกับไดเรกทอรีที่ประกาศใหม่ ไฟล์ต้องอยู่ในแพ็กเกจปัจจุบัน

declare_file

File actions.declare_file(filename, *, sibling=None)

ประกาศว่ากฎหรือลักษณะดังกล่าวสร้างไฟล์ที่มีชื่อไฟล์ที่ระบุ หากไม่ได้ระบุ sibling ชื่อไฟล์จะสัมพันธ์กับไดเรกทอรีแพ็กเกจ มิฉะนั้นไฟล์จะอยู่ในไดเรกทอรีเดียวกับ sibling สร้างไฟล์นอกแพ็กเกจปัจจุบันไม่ได้

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

โปรดทราบว่าไฟล์เอาต์พุตที่ประกาศไว้ล่วงหน้าไม่จำเป็นต้องประกาศ (และไม่สามารถ) ประกาศโดยใช้ฟังก์ชันนี้ คุณสามารถรับออบเจ็กต์Fileจาก ctx.outputs แทนได้ ดูตัวอย่างการใช้งาน

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
filename ต้องระบุ
หากไม่ได้ระบุ "sibling" เส้นทางของไฟล์ใหม่ที่สัมพันธ์กับแพ็กเกจปัจจุบัน มิฉะนั้น ชื่อฐานสำหรับไฟล์ ("sibling" จะกำหนดไดเรกทอรี)
sibling File; or None; default = ไม่มี
ไฟล์ที่อยู่ในไดเรกทอรีเดียวกันกับไฟล์ที่สร้างขึ้นใหม่ ไฟล์ต้องอยู่ในแพ็กเกจปัจจุบัน

File actions.declare_symlink(filename, *, sibling=None)

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

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
filename ต้องระบุ
หากไม่ได้ระบุ "sibling" เส้นทางของลิงก์สัญลักษณ์ใหม่ซึ่งสัมพันธ์กับแพ็กเกจปัจจุบัน มิฉะนั้น ชื่อฐานสำหรับไฟล์ ("sibling" จะกำหนดไดเรกทอรี)
sibling File; or None; default = ไม่มี
ไฟล์ที่อยู่ในไดเรกทอรีเดียวกับ Symlink ที่ประกาศใหม่

do_nothing

None actions.do_nothing(mnemonic, inputs=[])

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
mnemonic ต้องระบุ
คำอธิบายการกระทำแบบ 1 คำ เช่น CppCompile หรือ GoLink
inputs sequence of Files; or 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 default = {}
การแทนที่ที่จะทำเมื่อขยายเทมเพลต
is_executable default = False
ระบุว่าไฟล์เอาต์พุตควรเป็นไฟล์ปฏิบัติการหรือไม่
computed_substitutions TemplateDict; ค่าเริ่มต้น = ยกเลิกการเชื่อมโยง
ทดลอง พารามิเตอร์นี้อยู่ในขั้นทดลองและอาจมีการเปลี่ยนแปลงได้ตลอดเวลา โปรดอย่าใช้คำนี้ อาจเปิดใช้ในการทดลองโดยการตั้งค่า --+experimental_lazy_template_expansion
การทดลอง: ใช้แทนเมื่อขยายเทมเพลต

run

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=None)

สร้างการดำเนินการที่เรียกใช้ไฟล์ปฏิบัติการ ดูตัวอย่างการใช้งาน

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
outputs sequence of Files ต้องระบุ
รายการไฟล์เอาต์พุตของการดำเนินการ
inputs sequence of Files; or depset; ค่าเริ่มต้น = []
แสดงรายการหรือลดการตั้งค่าไฟล์อินพุตของการดำเนินการ
unused_inputs_list File; or None; ค่าเริ่มต้น = ไม่มี
ไฟล์ที่มีรายการอินพุตที่การดำเนินการไม่ได้ใช้

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

executable File; or string; or FilesToRunProvider; ต้องระบุ
ไฟล์ที่เรียกใช้ได้เพื่อให้เรียกใช้โดยการดำเนินการ
tools sequence; or depset; ค่าเริ่มต้น = ไม่มีการเชื่อมโยง
แสดงรายการหรือลดการตั้งค่าเครื่องมือที่จำเป็นสำหรับการดำเนินการ เครื่องมือคืออินพุตที่มีไฟล์เรียกใช้เพิ่มเติมซึ่งพร้อมใช้งานกับการดำเนินการโดยอัตโนมัติ เมื่อมีการระบุรายการ รายการดังกล่าวอาจเป็นคอลเล็กชันที่หลากหลายของ Files, อินสแตนซ์ FilesToRunProvider หรือ depset ของ Files ไฟล์ที่อยู่ในรายการโดยตรงและมาจาก ctx.executable จะมีการเพิ่ม Runfile โดยอัตโนมัติ เมื่อมีการระบุ Depset จะต้องมีเฉพาะ Files เท่านั้น ในทั้งสองกรณี ไฟล์ภายใน Depsets จะไม่มีการอ้างอิงข้ามกับ ctx.executable สำหรับ Runfiles
arguments sequence; default = []
อาร์กิวเมนต์บรรทัดคำสั่งของการดำเนินการ ต้องเป็นรายการสตริงหรือออบเจ็กต์ actions.args()
mnemonic string; or None; default = ไม่มี
คำอธิบายการกระทำแบบคำเดียว เช่น CppCompile หรือ GoLink
progress_message string; or None; default = ไม่มี
ข้อความความคืบหน้าที่จะแสดงให้ผู้ใช้เห็นระหว่างบิลด์ เช่น "กำลังคอมไพล์ foo.cc เพื่อสร้าง foo.o" ข้อความอาจมีรูปแบบ %{label}, %{input} หรือ %{output} ซึ่งแทนที่ด้วยสตริงป้ายกำกับ อินพุตแรก หรือเส้นทางของเอาต์พุตตามลำดับ ต้องการใช้รูปแบบแทนสตริงแบบคงที่ เนื่องจากรูปแบบแรกมีประสิทธิภาพมากกว่า
use_default_shell_env default = False
การดำเนินการควรใช้สภาพแวดล้อม Shell ในตัวหรือไม่
env dict; or None; default = ไม่มี
ตั้งค่าพจนานุกรมของตัวแปรสภาพแวดล้อม
execution_requirements dict; or None; ค่าเริ่มต้น = ไม่มี
ข้อมูลสำหรับการกำหนดเวลาการดำเนินการ ดูคีย์ที่มีประโยชน์ได้ในแท็ก
input_manifests sequence; or None; ค่าเริ่มต้น = ไม่มี
(ทดลอง) ตั้งค่าข้อมูลเมตาของไฟล์การเรียกใช้อินพุต ซึ่งโดยทั่วไปแล้วสร้างขึ้นโดยdicate_command
exec_group string; or None; default = ไม่มี
เรียกใช้การดำเนินการในแพลตฟอร์มการดำเนินการของกลุ่มผู้บริหารที่ระบุ หากไม่มี ให้ใช้แพลตฟอร์มการดำเนินการเริ่มต้นของเป้าหมาย
shadowed_action Action; ค่าเริ่มต้น = ไม่มี
เรียกใช้การดำเนินการโดยใช้อินพุตและสภาพแวดล้อมของการดำเนินการที่ถูกทำตามที่ระบุซึ่งเพิ่มไปยังรายการอินพุตและสภาพแวดล้อมของการดำเนินการ สภาพแวดล้อมการดำเนินการจะเขียนทับตัวแปรสภาพแวดล้อมของการดำเนินการที่ถูกซ้อนได้ หากไม่มี ระบบจะใช้เฉพาะอินพุตของการดําเนินการและสภาพแวดล้อมที่กําหนด
resource_set callable; or None; ค่าเริ่มต้น = ไม่มี
ฟังก์ชันเรียกกลับที่แสดงผลพจนานุกรมชุดทรัพยากร ซึ่งใช้เพื่อประมาณการใช้งานทรัพยากรขณะดำเนินการหากการดำเนินการนี้ทำงานภายในเครื่อง

ฟังก์ชันนี้ยอมรับอาร์กิวเมนต์ตำแหน่ง 2 รายการ ได้แก่ สตริงที่แสดงชื่อระบบปฏิบัติการ (เช่น "osx") และจำนวนเต็มที่แสดงถึงจำนวนอินพุตสำหรับการดำเนินการ พจนานุกรมที่แสดงผลอาจมีรายการต่อไปนี้ ซึ่งแต่ละรายการอาจเป็นเลขทศนิยมหรือ int:

  • "cpu": จำนวน CPU ค่าเริ่มต้นคือ 1
  • "memory": เป็น MB ค่าเริ่มต้นคือ 250
  • "local_test": จำนวนการทดสอบในเครื่อง ค่าเริ่มต้น 1

หากตั้งค่าพารามิเตอร์นี้เป็น None หรือ --experimental_action_resource_set เป็น "เท็จ" ระบบจะใช้ค่าเริ่มต้น

โค้ดเรียกกลับต้องเป็นระดับบนสุด (ไม่อนุญาตให้ใช้ฟังก์ชัน lambda และฟังก์ชันที่ซ้อนกัน)

toolchain Label; or string; or None; ค่าเริ่มต้น = ไม่มี

ประเภท Toolchain ของไฟล์ปฏิบัติการหรือเครื่องมือที่ใช้ในการดำเนินการนี้ ต้องตั้งค่าพารามิเตอร์เพื่อให้ระบบดำเนินการในแพลตฟอร์มการดำเนินการที่ถูกต้อง

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

โปรดทราบว่ากฎที่สร้างการดำเนินการนี้จะต้องกำหนด Toolchain นี้ภายในฟังก์ชัน "Rule()"

เมื่อตั้งค่าทั้งพารามิเตอร์ "toolchain" และ "exec_group" ระบบจะใช้ "exec_group" ระบบจะสร้างข้อผิดพลาดขึ้นในกรณีที่ `exec_group` ไม่ได้ระบุสิ่งเดียวกัน

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=None)

สร้างการดำเนินการที่เรียกใช้คำสั่ง Shell ดูตัวอย่างการใช้งาน

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
outputs sequence of Files ต้องระบุ
รายการไฟล์เอาต์พุตของการดำเนินการ
inputs sequence of Files; or depset; ค่าเริ่มต้น = []
แสดงรายการหรือลดการตั้งค่าไฟล์อินพุตของการดำเนินการ
tools sequence of Files; or depset; ค่าเริ่มต้น = ไม่มีการเชื่อมโยง
แสดงรายการหรือลดการตั้งค่าเครื่องมือที่จำเป็นสำหรับการดำเนินการ เครื่องมือคืออินพุตที่มีไฟล์เรียกใช้เพิ่มเติมซึ่งพร้อมใช้งานกับการดำเนินการโดยอัตโนมัติ รายการนี้อาจมีอินสแตนซ์ Files หรือ FilesToRunProvider ได้
arguments sequence; default = []
อาร์กิวเมนต์บรรทัดคำสั่งของการดำเนินการ ต้องเป็นรายการสตริงหรือออบเจ็กต์ actions.args()

Bazel จะส่งองค์ประกอบในแอตทริบิวต์นี้เป็นอาร์กิวเมนต์ไปยังคำสั่ง คำสั่งจะเข้าถึงอาร์กิวเมนต์เหล่านี้ได้โดยใช้การแทนที่ตัวแปรเชลล์ เช่น $1, $2 เป็นต้น โปรดทราบว่าเนื่องจากออบเจ็กต์ Args จะถูกแบนก่อนการจัดทำดัชนี หากมีออบเจ็กต์ Args ที่ไม่ทราบขนาด สตริงถัดมาทั้งหมดจะเป็นดัชนีที่คาดการณ์ไม่ได้ การใช้ $@ (เพื่อเรียกอาร์กิวเมนต์ทั้งหมด) ร่วมกับออบเจ็กต์ Args ที่มีขนาดไม่แน่ชัดอาจมีประโยชน์

ในกรณีที่ command เป็นรายการสตริง คุณจะใช้พารามิเตอร์นี้ไม่ได้

mnemonic string; or None; default = ไม่มี
คำอธิบายการกระทำแบบคำเดียว เช่น CppCompile หรือ GoLink
command string; or sequence of strings ต้องระบุ
คำสั่ง Shell เพื่อเรียกใช้ ซึ่งอาจเป็นสตริง (แนะนำ) หรือลำดับของสตริง (เลิกใช้งานแล้ว) ก็ได้

หาก command เป็นสตริง จะดำเนินการเสมือนกับ sh -c <command> "" <arguments> กล่าวคือ องค์ประกอบใน arguments จะพร้อมใช้งานสำหรับคำสั่งเป็น $1, $2 (หรือ %1, %2 หากใช้กลุ่ม Windows) เป็นต้น หาก arguments มีออบเจ็กต์ actions.args() ใดๆ ก็ตาม ระบบจะเพิ่มเนื้อหาของรายการต่อท้ายบรรทัดคำสั่งทีละรายการ เพื่อให้ $i อ้างอิงแต่ละสตริงภายในออบเจ็กต์ Args ได้ โปรดทราบว่าหากมีการส่งออบเจ็กต์ Args ขนาดที่ไม่รู้จักมาเป็นส่วนหนึ่งของ arguments สตริงจะเป็นดัชนีที่ไม่รู้จัก ในกรณีนี้การแทนที่เชลล์ $@ (เรียกอาร์กิวเมนต์ทั้งหมด) อาจเป็นประโยชน์

(เลิกใช้งานแล้ว) หาก command เป็นลำดับสตริง รายการแรกจะเป็นไฟล์ที่เรียกใช้ได้ และรายการที่เหลือจะเป็นอาร์กิวเมนต์ หากใช้แบบฟอร์มนี้ จะต้องไม่ระบุพารามิเตอร์ arguments โปรดทราบว่าเราเลิกใช้งานแบบฟอร์มนี้แล้ว และจะถูกนำออกในเร็วๆ นี้ ซึ่งปิดใช้ด้วย "--incompatible_run_shell_command_string" ให้ใช้แฟล็กนี้เพื่อยืนยันว่าโค้ดใช้งานร่วมกันได้

Bazel ใช้ Shell เดียวกันนี้เพื่อเรียกใช้คำสั่งเหมือนที่ใช้กับ genrules

progress_message string; or None; default = ไม่มี
ข้อความความคืบหน้าที่จะแสดงให้ผู้ใช้เห็นระหว่างบิลด์ เช่น "กำลังคอมไพล์ foo.cc เพื่อสร้าง foo.o" ข้อความอาจมีรูปแบบ %{label}, %{input} หรือ %{output} ซึ่งแทนที่ด้วยสตริงป้ายกำกับ อินพุตแรก หรือเส้นทางของเอาต์พุตตามลำดับ ต้องการใช้รูปแบบแทนสตริงแบบคงที่ เนื่องจากรูปแบบแรกมีประสิทธิภาพมากกว่า
use_default_shell_env default = False
การดำเนินการควรใช้สภาพแวดล้อม Shell ในตัวหรือไม่
env dict; or None; default = ไม่มี
ตั้งค่าพจนานุกรมของตัวแปรสภาพแวดล้อม
execution_requirements dict; or None; ค่าเริ่มต้น = ไม่มี
ข้อมูลสำหรับการกำหนดเวลาการดำเนินการ ดูคีย์ที่มีประโยชน์ได้ในแท็ก
input_manifests sequence; or None; ค่าเริ่มต้น = ไม่มี
(ทดลอง) ตั้งค่าข้อมูลเมตาของไฟล์การเรียกใช้อินพุต ซึ่งโดยทั่วไปแล้วสร้างขึ้นโดยdicate_command
exec_group string; or None; default = ไม่มี
เรียกใช้การดำเนินการในแพลตฟอร์มการดำเนินการของกลุ่มผู้บริหารที่ระบุ หากไม่มี ให้ใช้แพลตฟอร์มการดำเนินการเริ่มต้นของเป้าหมาย
shadowed_action Action; ค่าเริ่มต้น = ไม่มี
เรียกใช้การดำเนินการโดยใช้อินพุตที่ค้นพบของการดำเนินการที่ถูกซ้อนที่ระบุลงในรายการอินพุตของการดำเนินการ หากไม่มี ให้ใช้อินพุตของการดำเนินการเท่านั้น
resource_set callable; or None; ค่าเริ่มต้น = ไม่มี
ฟังก์ชันเรียกกลับสำหรับการประมาณการใช้ทรัพยากรหากเรียกใช้ภายในเครื่อง โปรดดูctx.actions.run()
toolchain Label; or string; or None; ค่าเริ่มต้น = ไม่มี

ประเภท Toolchain ของไฟล์ปฏิบัติการหรือเครื่องมือที่ใช้ในการดำเนินการนี้ ต้องตั้งค่าพารามิเตอร์เพื่อให้ระบบดำเนินการในแพลตฟอร์มการดำเนินการที่ถูกต้อง

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

โปรดทราบว่ากฎที่สร้างการดำเนินการนี้จะต้องกำหนด Toolchain นี้ภายในฟังก์ชัน "Rule()"

เมื่อตั้งค่าทั้งพารามิเตอร์ "toolchain" และ "exec_group" ระบบจะใช้ "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 จะยกเลิกผลลัพธ์ของการดำเนินการนี้เมื่อใดก็ตามที่เป้าหมายของลิงก์สัญลักษณ์หรือเนื้อหามีการเปลี่ยนแปลง

มิเช่นนั้น เมื่อคุณใช้ target_path ให้ประกาศ output ด้วย declare_symlink()) ในกรณีนี้ Symlink จะชี้ไปยัง target_path Bazel ไม่เคยแก้ไขลิงก์สัญลักษณ์ใดๆ และเอาต์พุตของการกระทำนี้จะไม่ถูกต้องก็ต่อเมื่อเนื้อหาข้อความของลิงก์สัญลักษณ์ (ซึ่งก็คือค่าของ readlink()) มีการเปลี่ยนแปลงเท่านั้น โดยเฉพาะอย่างยิ่ง สามารถใช้เพื่อสร้างลิงก์สัญลักษณ์ที่ห้อยระย้าได้

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
output ต้องระบุ
เอาต์พุตของการดําเนินการนี้
target_file File; or None; default = ไม่มี
ไฟล์ที่ลิงก์สัญลักษณ์เอาต์พุตจะชี้ไป
target_path string; or None; default = ไม่มี
(ทดลอง) เส้นทางที่แน่นอนที่ลิงก์สัญลักษณ์เอาต์พุตจะชี้ไป โดยไม่มีการนำการแปลงเป็นรูปแบบมาตรฐานหรือการประมวลผลอื่นๆ ต้องตั้งค่า --experimental_allow_unresolved_symlinks จึงจะเข้าถึงฟีเจอร์นี้ได้
is_executable default = False
ใช้ได้กับ target_file เท่านั้น และจะใช้กับ target_path ไม่ได้ หากเป็น "จริง" เมื่อดำเนินการแล้ว ระบบจะตรวจสอบเส้นทางของ target_file เพื่อยืนยันว่าเรียกใช้ได้ และจะรายงานข้อผิดพลาดหากไม่ถูกต้อง การตั้งค่า is_executable เป็น "เท็จ" ไม่ได้หมายความว่าเป้าหมายจะเรียกใช้ไม่ได้ เพียงแต่ว่าไม่ได้ดำเนินการยืนยันจนเสร็จสมบูรณ์

ฟีเจอร์นี้ไม่เหมาะกับ target_path เนื่องจากไม่มีลิงก์สัญลักษณ์ที่ห้อยระย้าอยู่ ณ เวลาที่สร้าง

progress_message string; or None; default = ไม่มี
ข้อความความคืบหน้าที่จะแสดงให้ผู้ใช้เห็นระหว่างบิลด์

template_dict

TemplateDict actions.template_dict()

ทดลอง API นี้อยู่ในขั้นทดลองและอาจมีการเปลี่ยนแปลงได้ทุกเมื่อ โปรดอย่าใช้คำนี้ อาจเปิดใช้ในการทดลองโดยการตั้งค่า --+experimental_lazy_template_expansion
ขั้นทดลอง: แสดงผลออบเจ็กต์ TemplateDict สำหรับการขยายเทมเพลตแบบประหยัดหน่วยความจำ

เขียน

None actions.write(output, content, is_executable=False)

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
output ต้องระบุ
ไฟล์เอาต์พุต
content string; or Args ต้องระบุ
เนื้อหาของไฟล์ อาจเป็นสตริงหรือออบเจ็กต์ actions.args() ก็ได้
is_executable default = False
ระบุว่าไฟล์เอาต์พุตควรเป็นไฟล์ปฏิบัติการหรือไม่