ctx.actions
.
Pelanggan
- argumen
- deklarasikan_direktori
- deklarasikan_file
- deklarasikan_symlink
- tidak ada
- luaskan_template
- lari
- run_shell
- symlink
- template_dikte
- tulis
args
Args actions.args()Menampilkan objek Args yang dapat digunakan untuk membuat command line hemat memori.
deklarasikan_direktori
File actions.declare_directory(filename, *, sibling=None)Mendeklarasikan bahwa aturan atau aspek membuat direktori dengan nama yang diberikan, dalam paket saat ini. Anda harus membuat tindakan yang menghasilkan direktori. Konten direktori tidak dapat diakses secara langsung dari Starlark, tetapi dapat diperluas dalam perintah tindakan dengan
Args.add_all()
. Hanya file dan direktori reguler yang dapat berada dalam konten yang diperluas dari deklarasi_direktori.
Parameter
Parameter | Deskripsi |
---|---|
filename
|
wajib Jika tidak ada 'sibling' yang diberikan, jalur direktori baru, relatif terhadap paket saat ini. Jika tidak, nama dasar untuk file ('sibling' akan menentukan direktori). |
sibling
|
File; or None ;
default = Tidak adaFile yang berada dalam direktori yang sama dengan direktori yang baru dideklarasikan. File harus berada dalam paket saat ini. |
deklarasikan_file
File actions.declare_file(filename, *, sibling=None)Mendeklarasikan bahwa aturan atau aspek membuat file dengan nama file yang ditentukan. Jika
sibling
tidak ditentukan, nama file akan bersifat relatif terhadap direktori paket, jika tidak, file akan berada dalam direktori yang sama dengan sibling
. File tidak dapat dibuat di luar paket saat ini.Ingat bahwa selain mendeklarasikan file, Anda harus secara terpisah membuat tindakan yang memunculkan file tersebut. Untuk membuat tindakan tersebut, Anda harus meneruskan objek File
yang ditampilkan ke fungsi konstruksi tindakan.
Perhatikan bahwa file output yang telah dideklarasikan sebelumnya tidak perlu (dan tidak dapat) dideklarasikan menggunakan fungsi ini. Sebagai gantinya, Anda bisa mendapatkan objek File
dari ctx.outputs
. Lihat contoh penggunaan.
Parameter
Parameter | Deskripsi |
---|---|
filename
|
wajib Jika tidak ada 'sibling' yang diberikan, jalur file baru, relatif terhadap paket saat ini. Jika tidak, nama dasar untuk file ('sibling' akan menentukan direktori). |
sibling
|
File; or None ;
default = Tidak adaFile yang berada di direktori yang sama dengan file yang baru dibuat. File harus berada dalam paket saat ini. |
deklarasikan_symlink
File actions.declare_symlink(filename, *, sibling=None)
Parameter ini bersifat eksperimental dan dapat berubah kapan saja. Fitur ini dapat dinonaktifkan dengan menyetel --noexperimental_allow_unresolved_symlinks
Mendeklarasikan bahwa aturan atau aspek membuat symlink dengan nama yang diberikan dalam paket saat ini. Anda harus membuat tindakan yang menghasilkan symlink ini. Bazel tidak akan pernah membatalkan referensi symlink ini dan akan mentransfernya kata demi kata ke sandbox atau eksekutor jarak jauh. Symlink di dalam artefak pohon saat ini tidak didukung.
Parameter
Parameter | Deskripsi |
---|---|
filename
|
wajib Jika tidak ada 'sibling' yang diberikan, jalur symlink baru, relatif terhadap paket saat ini. Jika tidak, nama dasar untuk file ('sibling' akan menentukan direktori). |
sibling
|
File; or None ; default = Tidak adaFile yang berada di direktori yang sama dengan symlink yang baru dideklarasikan. |
tidak melakukan apa pun
None actions.do_nothing(mnemonic, inputs=[])Membuat tindakan kosong yang tidak menjalankan perintah atau menghasilkan output, tetapi berguna untuk menyisipkan 'tindakan tambahan'.
Parameter
Parameter | Deskripsi |
---|---|
mnemonic
|
wajib Deskripsi satu kata dari tindakan, misalnya, CppCompile atau GoLink. |
inputs
|
sequence of Files; or depset ;
default = []Daftar file input tindakan. |
luaskan_template
None actions.expand_template(template, output, substitutions={}, is_executable=False, computed_substitutions=unbound)Membuat tindakan perluasan template. Saat dieksekusi, tindakan akan menghasilkan file berdasarkan template. Bagian-bagian template akan diganti menggunakan kamus
substitutions
, sesuai urutan penggantiannya. Setiap kali kunci kamus muncul di template (atau hasil dari penggantian sebelumnya), kunci tersebut akan diganti dengan nilai terkait. Tidak ada sintaksis khusus untuk kunci. Anda dapat, misalnya, menggunakan tanda kurung kurawal untuk menghindari konflik (misalnya, {KEY}
). Lihat contoh penggunaan.
Parameter
Parameter | Deskripsi |
---|---|
template
|
diperlukan File template, yaitu file teks yang berenkode UTF-8. |
output
|
diperlukan File output, yaitu file teks berenkode UTF-8. |
substitutions
|
default = {} Substitusi yang harus dilakukan saat meluaskan template. |
is_executable
|
default = False Apakah file output harus dapat dijalankan. |
computed_substitutions
|
TemplateDict ;
default = tidak terikatEksperimental. Parameter ini bersifat eksperimental dan dapat berubah kapan saja. Jangan bergantung padanya. Ini dapat diaktifkan secara eksperimental dengan menetapkan --+experimental_lazy_template_expansion Eksperimental: Substitusi yang harus dilakukan saat memperluas template. |
jalankan
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)Membuat tindakan yang menjalankan file yang dapat dieksekusi. Lihat contoh penggunaan.
Parameter
Parameter | Deskripsi |
---|---|
outputs
|
sequence of Files ;
wajibDaftar file output tindakan. |
inputs
|
sequence of Files; or depset ; default = []Daftar atau depset file input tindakan. |
unused_inputs_list
|
File; or None ;
default = NoneFile yang berisi daftar input yang tidak digunakan oleh tindakan. Konten file ini (umumnya salah satu output tindakan) sesuai dengan daftar file input yang tidak digunakan di seluruh eksekusi tindakan. Perubahan apa pun dalam file tersebut tidak boleh memengaruhi output tindakan dengan cara apa pun. |
executable
|
File; or string; or FilesToRunProvider ;
diperlukanFile yang dapat dieksekusi untuk dipanggil oleh tindakan. |
tools
|
sequence; or depset ; default = unboundDaftar atau depset alat yang diperlukan oleh tindakan. Alat adalah input dengan runfile tambahan yang secara otomatis tersedia untuk tindakan tersebut. Jika disediakan, daftar tersebut dapat berupa kumpulan Files, instance FilesToRunProvider, atau kumpulan File yang heterogen. File yang berada langsung dalam daftar dan berasal dari ctx.executable akan menjalankan runfile secara otomatis. Jika tersedia, depset hanya boleh berisi File. Dalam kedua kasus tersebut, file dalam depset tidak direferensikan silang dengan ctx.executable untuk runfile. |
arguments
|
sequence ;
default = []Argumen command line untuk tindakan. Harus berupa daftar string atau objek actions.args() .
|
mnemonic
|
string; or None ; default = NoneDeskripsi satu kata untuk tindakan tersebut, misalnya, CppCompile atau GoLink. |
progress_message
|
string; or None ;
default = NonePesan progres yang akan ditampilkan kepada pengguna selama proses build, misalnya, "Compil foo.cc to create foo.o". Pesan dapat berisi pola %{label} , %{input} , atau %{output} yang masing-masing diganti dengan string label, input pertama, atau jalur output. Memilih untuk menggunakan pola daripada string statis, karena yang pertama lebih efisien.
|
use_default_shell_env
|
default = False Apakah tindakan harus menggunakan lingkungan shell bawaan atau tidak. |
env
|
dict; or None ;
default = NoneMenetapkan kamus variabel lingkungan. |
execution_requirements
|
dict; or None ;
default = NoneInformasi untuk menjadwalkan tindakan. Lihat tag untuk kunci yang berguna. |
input_manifests
|
sequence; or None ;
default = None(Eksperimental) menetapkan metadata runfile input; biasanya dibuat dengan resolve_command. |
exec_group
|
string; or None ;
default = NoneMenjalankan tindakan pada platform eksekusi grup exec yang diberikan. Jika tidak ada, platform platform default akan digunakan. |
shadowed_action
|
Action ;
default = NoneMenjalankan tindakan menggunakan input dan lingkungan tindakan yang dibayangi yang ditambahkan ke daftar dan lingkungan input tindakan. Lingkungan tindakan dapat menimpa variabel lingkungan tindakan yang dibayangi. Jika tidak ada, hanya akan menggunakan input tindakan dan lingkungan tertentu. |
resource_set
|
callable; or None ;
default = NoneFungsi callback yang menampilkan kamus set resource, yang digunakan untuk memperkirakan penggunaan resource pada waktu eksekusi jika tindakan ini dijalankan secara lokal. Fungsi ini menerima dua argumen posisi: string yang mewakili nama OS (misalnya "osx"), dan bilangan bulat yang mewakili jumlah input untuk tindakan. Kamus yang ditampilkan dapat berisi entri berikut, yang masing-masing dapat berupa float atau int:
Jika parameter ini ditetapkan ke Callback harus berada di tingkat teratas (lambda dan fungsi bertingkat tidak diizinkan). |
toolchain
|
Label; or string; or None ;
default = tidak terikatJenis toolchain dari file yang dapat dieksekusi atau alat yang digunakan dalam tindakan ini. Parameter harus ditetapkan agar tindakan dieksekusi di platform eksekusi yang benar. Saat ini, proses ini bersifat tanpa pengoperasian, tetapi sebaiknya tetapkan saat toolchain digunakan, karena akan diperlukan dalam rilis Bazel mendatang. Perhatikan bahwa aturan yang membuat tindakan ini perlu menentukan toolchain ini di dalam fungsi 'rule()' miliknya. Jika parameter `Toolchain` dan `exec_group` disetel, `exec_group` akan digunakan. Error akan muncul jika `exec_group` tidak menentukan hal yang sama. |
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)Membuat tindakan yang menjalankan perintah shell. Lihat contoh penggunaan.
Parameter
Parameter | Deskripsi |
---|---|
outputs
|
sequence of Files ;
wajibDaftar file output tindakan. |
inputs
|
sequence of Files; or depset ; default = []Daftar atau depset file input tindakan. |
tools
|
sequence of Files; or depset ; default = unboundDaftar atau depset alat yang diperlukan oleh tindakan. Alat adalah input dengan runfile tambahan yang secara otomatis tersedia untuk tindakan tersebut. Daftar ini dapat berisi instance Files atau FilesToRunProvider. |
arguments
|
sequence ;
default = []Argumen command line untuk tindakan. Harus berupa daftar string atau objek actions.args() .Bazel meneruskan elemen dalam atribut ini sebagai argumen ke perintah.Perintah dapat mengakses argumen ini menggunakan substitusi variabel shell seperti Jika |
mnemonic
|
string; or None ; default = NoneDeskripsi satu kata untuk tindakan tersebut, misalnya, CppCompile atau GoLink. |
command
|
string; or sequence of strings ;
diperlukanPerintah shell untuk dieksekusi. Ini dapat berupa string (lebih disukai) atau urutan string (tidak digunakan lagi). Jika (Tidak digunakan lagi) Jika Bazel menggunakan shell yang sama untuk menjalankan perintah seperti yang dilakukan untuk genrules. |
progress_message
|
string; or None ;
default = NonePesan progres yang akan ditampilkan kepada pengguna selama proses build, misalnya, "Compil foo.cc to create foo.o". Pesan dapat berisi pola %{label} , %{input} , atau %{output} yang masing-masing diganti dengan string label, input pertama, atau jalur output. Memilih untuk menggunakan pola daripada string statis, karena yang pertama lebih efisien.
|
use_default_shell_env
|
default = False Apakah tindakan harus menggunakan lingkungan shell bawaan atau tidak. |
env
|
dict; or None ;
default = NoneMenetapkan kamus variabel lingkungan. |
execution_requirements
|
dict; or None ;
default = NoneInformasi untuk menjadwalkan tindakan. Lihat tag untuk kunci yang berguna. |
input_manifests
|
sequence; or None ;
default = None(Eksperimental) menetapkan metadata runfile input; biasanya dibuat dengan resolve_command. |
exec_group
|
string; or None ;
default = NoneMenjalankan tindakan pada platform eksekusi grup exec yang diberikan. Jika tidak ada, platform platform default akan digunakan. |
shadowed_action
|
Action ;
default = NoneMenjalankan tindakan menggunakan input bayangan tindakan yang ditentukan yang ditambahkan ke daftar input tindakan. Jika tidak ada, hanya akan menggunakan input tindakan. |
resource_set
|
callable; or None ; default = NoneFungsi callback untuk memperkirakan penggunaan resource jika dijalankan secara lokal. Lihat ctx.actions.run() .
|
toolchain
|
Label; or string; or None ;
default = tidak terikatJenis toolchain dari file yang dapat dieksekusi atau alat yang digunakan dalam tindakan ini. Parameter harus ditetapkan agar tindakan dieksekusi di platform eksekusi yang benar. Saat ini, proses ini bersifat tanpa pengoperasian, tetapi sebaiknya tetapkan saat toolchain digunakan, karena akan diperlukan dalam rilis Bazel mendatang. Perhatikan bahwa aturan yang membuat tindakan ini perlu menentukan toolchain ini di dalam fungsi 'rule()' miliknya. Jika parameter `Toolchain` dan `exec_group` disetel, `exec_group` akan digunakan. Error akan terjadi jika `exec_group` tidak menentukan toolchain yang sama. |
symlink
None actions.symlink(output, target_file=None, target_path=None, is_executable=False, progress_message=None)Membuat tindakan yang menulis symlink dalam sistem file.
Fungsi ini harus dipanggil dengan salah satu dari target_file
atau target_path
yang ditentukan.
Saat Anda menggunakan target_file
, deklarasikan output
dengan declare_file()
atau declare_directory()
dan cocokkan dengan jenis target_file
. Hal ini membuat symlink mengarah ke target_file
. Bazel akan membatalkan output tindakan ini setiap kali target symlink atau kontennya berubah.
Jika tidak, saat Anda menggunakan target_path
, deklarasikan output
dengan declare_symlink()
). Dalam hal ini, symlink mengarah ke target_path
. Bazel tidak pernah menyelesaikan symlink dan output tindakan ini hanya menjadi tidak valid saat konten teks symlink (yaitu, nilai readlink()
) berubah. Secara khusus, atribut ini dapat digunakan untuk membuat symlink yang bergantung.
Parameter
Parameter | Deskripsi |
---|---|
output
|
diperlukan Output dari tindakan ini. |
target_file
|
File; or None ;
default = Tidak adaFile yang akan dituju oleh symlink output. |
target_path
|
string; or None ;
default = Tidak adaJalur persis yang akan dituju oleh symlink output. Tidak ada normalisasi atau pemrosesan lainnya yang diterapkan. |
is_executable
|
default = False Hanya dapat digunakan dengan target_file , bukan target_path . Jika benar, saat tindakan dieksekusi, jalur target_file akan diperiksa untuk mengonfirmasi bahwa tindakan tersebut dapat dijalankan, dan error akan dilaporkan jika tidak. Menetapkan is_executable ke False bukan berarti target tidak dapat dijalankan, hanya saja verifikasi tidak dilakukan.Fitur ini tidak masuk akal untuk |
progress_message
|
string; or None ; default = NonePesan progres yang akan ditampilkan kepada pengguna selama proses build. |
template_dict
TemplateDict actions.template_dict()Eksperimental. API ini bersifat eksperimental dan dapat berubah kapan saja. Jangan bergantung padanya. Ini dapat diaktifkan secara eksperimental dengan menetapkan
--+experimental_lazy_template_expansion
Eksperimental: Menampilkan objek TemplateDict untuk perluasan template yang hemat memori.
write
None actions.write(output, content, is_executable=False)Membuat tindakan tulis file. Saat tindakan dieksekusi, konten yang ditentukan akan ditulis ke file. Ini digunakan untuk membuat file menggunakan informasi yang tersedia dalam fase analisis. Jika file berukuran besar dan memiliki banyak konten statis, sebaiknya gunakan
expand_template
.
Parameter
Parameter | Deskripsi |
---|---|
output
|
diperlukan File output. |
content
|
string; or Args ; wajibmengisi file. Dapat berupa string atau objek actions.args() .
|
is_executable
|
default = False Apakah file output harus dapat dijalankan. |