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

โมดูลที่มีฟังก์ชันสำหรับสร้างการดำเนินการ เข้าถึงโมดูลนี้โดยใช้ 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" เส้นทางของ symlink ใหม่จะสัมพันธ์กับแพ็กเกจปัจจุบัน มิฉะนั้น ชื่อฐานสำหรับไฟล์ ("sibling" จะกำหนดไดเรกทอรี)
sibling File; or None; default = ไม่มี
ไฟล์ที่อาศัยอยู่ในไดเรกทอรีเดียวกับ symlink ที่ประกาศใหม่

do_nothing

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

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

พารามิเตอร์

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

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

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

progress_message string; or None; ค่าเริ่มต้น = ไม่มี
ข้อความความคืบหน้าที่จะแสดงให้ผู้ใช้เห็นระหว่างบิลด์ เช่น "กำลังคอมไพล์ foo.cc เพื่อสร้าง foo.o" ข้อความอาจมีรูปแบบ %{label}, %{input} หรือ %{output} ซึ่งแทนที่ด้วยสตริงป้ายกำกับ อินพุตแรก หรือเส้นทางของเอาต์พุตตามลำดับ ต้องการใช้รูปแบบแทนสตริงแบบคงที่ เนื่องจากรูปแบบนั้นมีประสิทธิภาพมากกว่า
use_default_shell_env default = False
การดำเนินการควรใช้สภาพแวดล้อม Shell ในตัวหรือไม่
env dict; or None; ค่าเริ่มต้น = ไม่มี
ตั้งค่าพจนานุกรมของตัวแปรสภาพแวดล้อม
execution_requirements dict; or None; ค่าเริ่มต้น = ไม่มี
ข้อมูลสำหรับการกำหนดเวลาการดำเนินการ ดูแท็กสำหรับคีย์ที่เป็นประโยชน์
input_manifests sequence; or None; ค่าเริ่มต้น = ไม่มี
(ทดลอง) จะตั้งค่าข้อมูลเมตาของรันไฟล์อินพุต ซึ่งโดยปกติจะสร้างโดย valid_command
exec_group string; or None; ค่าเริ่มต้น = ไม่มี
เรียกใช้การดำเนินการบนแพลตฟอร์มการดำเนินการของกลุ่มผู้บริหารที่ระบุ หากไม่มี ให้ใช้แพลตฟอร์มการดำเนินการเริ่มต้นของเป้าหมาย
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; ค่าเริ่มต้น = ไม่มี
ไฟล์ที่ลิงก์สัญลักษณ์ของเอาต์พุตจะชี้ไป
target_path string; or None; ค่าเริ่มต้น = ไม่มี
(ทดลอง) เส้นทางเฉพาะเจาะจงที่ลิงก์สัญลักษณ์ของเอาต์พุตจะชี้ไป ไม่ได้ใช้การปรับให้สอดคล้องตามมาตรฐานหรือการประมวลผลอื่นๆ การเข้าถึงฟีเจอร์นี้ต้องมีการตั้งค่า --experimental_allow_unresolved_symlinks
is_executable ค่าเริ่มต้น = เท็จ
ใช้ได้กับ target_file เท่านั้น และจะใช้กับ target_path ไม่ได้ หากเป็น "จริง" เมื่อดำเนินการแล้ว ระบบจะตรวจสอบเส้นทางของ target_file เพื่อยืนยันว่าดำเนินการได้ และจะรายงานข้อผิดพลาดหากไม่เป็นเช่นนั้น การตั้งค่า is_executable เป็น "เท็จ" ไม่ได้หมายความว่าเป้าหมายจะเรียกใช้ไม่ได้ เพียงแต่ไม่มีการยืนยันเท่านั้น

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

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

template_dict

TemplateDict actions.template_dict()

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

เขียน

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

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

พารามิเตอร์

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