ctx.actions
.
Anggota
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- jalankan
- run_shell
- symlink
- template_dict
- tulis
args
Args actions.args()
declare_directory
File actions.declare_directory(filename, *, sibling=None)
Args.add_all()
.
Parameter
Parameter | Deskripsi |
---|---|
filename
|
wajib Jika tidak ada 'saudara' disediakan, jalur direktori baru, relatif terhadap paket saat ini. Jika tidak, nama dasar untuk file ('sibling' menentukan direktori). |
sibling
|
File; or None ;
default = Tidak adaFile yang berada di direktori yang sama dengan direktori yang baru dideklarasikan. File harus ada dalam paket saat ini. |
declare_file
File actions.declare_file(filename, *, sibling=None)
sibling
tidak ditentukan, nama file akan relatif terhadap direktori paket. Jika tidak, file akan berada di direktori yang sama dengan sibling
. File tidak dapat dibuat di luar paket saat ini.Ingat bahwa selain mendeklarasikan file, Anda harus membuat tindakan yang memunculkan file secara terpisah. Untuk membuat tindakan tersebut, Anda harus meneruskan objek File
yang ditampilkan ke fungsi konstruksi tindakan.
Perhatikan bahwa file output yang telah dideklarasikan tidak perlu (dan tidak dapat) dideklarasikan menggunakan fungsi ini. Anda bisa mendapatkan objek File
dari ctx.outputs
sebagai gantinya. Lihat contoh penggunaan.
Parameter
Parameter | Deskripsi |
---|---|
filename
|
wajib Jika tidak ada 'saudara' disediakan, jalur file baru, relatif terhadap paket saat ini. Jika tidak, nama dasar untuk file ('sibling' menentukan direktori). |
sibling
|
File; or None ;
default = Tidak adaFile yang berada di direktori yang sama dengan file yang baru dibuat. File harus ada dalam paket saat ini. |
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)
Eksperimental. Parameter ini bersifat eksperimental dan dapat berubah kapan saja. Harap tidak bergantung padanya. Fitur ini dapat diaktifkan secara eksperimental dengan menyetel --experimental_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.
Parameter
Parameter | Deskripsi |
---|---|
filename
|
wajib Jika tidak ada 'saudara' disediakan, jalur symlink baru, relatif terhadap paket saat ini. Jika tidak, nama dasar untuk file ('sibling' menentukan direktori). |
sibling
|
File; or None ;
default = Tidak adaFile yang berada di direktori yang sama dengan symlink yang baru dideklarasikan. |
do_nothing
None actions.do_nothing(mnemonic, inputs=[])
Parameter
Parameter | Deskripsi |
---|---|
mnemonic
|
wajib Deskripsi tindakan satu kata, misalnya, CppCompile atau GoLink. |
inputs
|
sequence of Files; or depset ;
default = []Daftar file input tindakan. |
expand_template
None actions.expand_template(template, output, substitutions={}, is_executable=False, computed_substitutions=unbound)
substitutions
, sesuai urutan substitusi yang ditentukan. Setiap kali kunci kamus muncul di template (atau hasil dari penggantian sebelumnya), kamus akan diganti dengan nilai terkait. Tidak ada sintaksis khusus untuk kunci tersebut. Misalnya, Anda dapat menggunakan tanda kurung kurawal untuk menghindari konflik (misalnya, {KEY}
). Lihat contoh penggunaan.
Parameter
Parameter | Deskripsi |
---|---|
template
|
wajib File template, yang merupakan file teks berenkode UTF-8. |
output
|
wajib File output, yang merupakan file teks berenkode UTF-8. |
substitutions
|
default = {} Substitusi yang akan dibuat saat meluaskan template. |
is_executable
|
default = Salah Apakah file output harus dapat dieksekusi. |
computed_substitutions
|
TemplateDict ;
default = tidak terikatEksperimental. Parameter ini bersifat eksperimental dan dapat berubah kapan saja. Harap tidak bergantung padanya. Fitur ini dapat diaktifkan secara eksperimental dengan menyetel --+experimental_lazy_template_expansion Eksperimental: Substitusi yang akan dibuat saat meluaskan template. |
lari
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)
Parameter
Parameter | Deskripsi |
---|---|
outputs
|
sequence of Files ;
wajibDaftar file output dari tindakan. |
inputs
|
sequence of Files; or depset ;
default = []Daftar atau hapus file input tindakan. |
unused_inputs_list
|
File; or None ;
default = Tidak adaFile 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 selama keseluruhan eksekusi tindakan. Perubahan apa pun pada file tersebut tidak boleh memengaruhi output tindakan dengan cara apa pun. |
executable
|
File; or string; or FilesToRunProvider ;
wajibFile yang dapat dieksekusi yang akan dipanggil oleh tindakan. |
tools
|
sequence; or depset ;
default = tidak terikatDaftar atau hapus daftar alat yang diperlukan oleh tindakan. Alat adalah input dengan runfile tambahan yang otomatis tersedia untuk tindakan. Jika disediakan, daftar dapat berupa kumpulan File, instance FilesToRunProvider, atau depset Files yang heterogen. File yang langsung ada dalam daftar dan berasal dari ctx.executable akan otomatis ditambahkan runfile-nya. Jika depset diberikan, depset tersebut hanya boleh berisi Files. 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 = Tidak adaDeskripsi tindakan satu kata, misalnya, CppCompile atau GoLink. |
progress_message
|
string; or None ;
default = Tidak adaPesan progres yang akan ditampilkan kepada pengguna selama build, misalnya, "Mengompilasi foo.cc to create foo.o". Pesan ini dapat berisi pola %{label} , %{input} , atau %{output} , yang 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 = Salah Apakah tindakan harus menggunakan lingkungan shell bawaan atau tidak. |
env
|
dict; or None ;
default = Tidak adaMenetapkan kamus variabel lingkungan. |
execution_requirements
|
dict; or None ;
default = Tidak adaInformasi untuk menjadwalkan tindakan. Lihat tag untuk kunci yang berguna. |
input_manifests
|
sequence; or None ;
default = Tidak ada(Eksperimental) menyetel metadata runfiles input; parameter tersebut biasanya dihasilkan oleh resolve_command. |
exec_group
|
string; or None ;
default = Tidak adaMenjalankan tindakan di platform eksekusi grup exec tertentu. Jika tidak ada, target akan menggunakan platform eksekusi default. |
shadowed_action
|
Action ;
default = Tidak adaMenjalankan tindakan menggunakan input dan lingkungan tindakan berbayang yang diberikan dan ditambahkan ke daftar input dan lingkungan tindakan. Lingkungan tindakan dapat menimpa variabel lingkungan tindakan yang dibayangi apa pun. Jika tidak ada, hanya input tindakan dan lingkungan yang diberikan yang akan digunakan. |
resource_set
|
callable; or None ;
default = Tidak adaFungsi 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 mungkin berupa float atau int:
Jika parameter ini disetel ke Callback harus merupakan level teratas (lambda dan fungsi bertingkat tidak diizinkan). |
toolchain
|
Label; or string; or None ;
default = Tidak adaJenis toolchain yang dapat dieksekusi atau alat yang digunakan dalam tindakan ini. Parameter ini harus disetel, agar tindakan dapat dieksekusi di platform eksekusi yang benar. Untuk saat ini tidak ada pengoperasian, tetapi sebaiknya setel jika toolchain digunakan, karena akan diperlukan pada rilis Bazel mendatang. Perhatikan bahwa aturan yang membuat tindakan ini perlu mendefinisikan toolchain ini dalam 'rule()' . Jika parameter `toolchain` dan `exec_group` ditetapkan, `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=None)
Parameter
Parameter | Deskripsi |
---|---|
outputs
|
sequence of Files ;
wajibDaftar file output dari tindakan. |
inputs
|
sequence of Files; or depset ;
default = []Daftar atau hapus file input tindakan. |
tools
|
sequence of Files; or depset ;
default = tidak terikatDaftar atau hapus daftar alat yang diperlukan oleh tindakan. Alat adalah input dengan runfile tambahan yang otomatis tersedia untuk tindakan. Daftar 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 tersebut dapat mengakses argumen ini menggunakan substitusi variabel shell seperti Jika |
mnemonic
|
string; or None ;
default = Tidak adaDeskripsi tindakan satu kata, misalnya, CppCompile atau GoLink. |
command
|
string; or sequence of strings ;
wajibperintah shell yang akan dijalankan. Ini dapat berupa string (lebih disukai) atau urutan string (tidak digunakan lagi). Jika (Tidak digunakan lagi) Jika Bazel menggunakan {i>shell<i} yang sama untuk menjalankan perintah seperti yang dilakukan untuk genrules. |
progress_message
|
string; or None ;
default = Tidak adaPesan progres yang akan ditampilkan kepada pengguna selama build, misalnya, "Mengompilasi foo.cc to create foo.o". Pesan ini dapat berisi pola %{label} , %{input} , atau %{output} , yang 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 = Salah Apakah tindakan harus menggunakan lingkungan shell bawaan atau tidak. |
env
|
dict; or None ;
default = Tidak adaMenetapkan kamus variabel lingkungan. |
execution_requirements
|
dict; or None ;
default = Tidak adaInformasi untuk menjadwalkan tindakan. Lihat tag untuk kunci yang berguna. |
input_manifests
|
sequence; or None ;
default = Tidak ada(Eksperimental) menyetel metadata runfiles input; parameter tersebut biasanya dihasilkan oleh resolve_command. |
exec_group
|
string; or None ;
default = Tidak adaMenjalankan tindakan di platform eksekusi grup exec tertentu. Jika tidak ada, target akan menggunakan platform eksekusi default. |
shadowed_action
|
Action ;
default = Tidak adaMenjalankan tindakan menggunakan input yang ditemukan dari tindakan dibayangi tertentu yang ditambahkan ke daftar input tindakan. Jika tidak ada, hanya input tindakan yang akan digunakan. |
resource_set
|
callable; or None ;
default = Tidak adaFungsi callback untuk memperkirakan penggunaan resource jika dijalankan secara lokal. Lihat ctx.actions.run() .
|
toolchain
|
Label; or string; or None ;
default = Tidak adaJenis toolchain yang dapat dieksekusi atau alat yang digunakan dalam tindakan ini. Parameter ini harus disetel, agar tindakan dapat dieksekusi di platform eksekusi yang benar. Untuk saat ini tidak ada pengoperasian, tetapi sebaiknya setel jika toolchain digunakan, karena akan diperlukan pada rilis Bazel mendatang. Perhatikan bahwa aturan yang membuat tindakan ini perlu mendefinisikan toolchain ini dalam 'rule()' . Jika parameter `toolchain` dan `exec_group` ditetapkan, `exec_group` akan digunakan. Error akan muncul jika `exec_group` tidak menentukan hal yang sama. Rantai Alat (Toolchain). |
symlink
None actions.symlink(output, target_file=None, target_path=None, is_executable=False, progress_message=None)
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
. Ini membuat symlink mengarah ke target_file
. Bazel membatalkan output tindakan ini setiap kali target symlink atau kontennya berubah.
Atau, saat Anda menggunakan target_path
, deklarasikan output
dengan declare_symlink()
). Dalam hal ini, symlink mengarah ke target_path
. Bazel tidak pernah me-resolve symlink dan output tindakan ini hanya menjadi tidak valid jika konten teks symlink (yaitu, nilai readlink()
) berubah. Secara khusus, ini dapat digunakan untuk membuat symlink yang menjuntai.
Parameter
Parameter | Deskripsi |
---|---|
output
|
wajib 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 ada(Eksperimental) Jalur persis yang akan dituju symlink output. Tidak ada normalisasi atau pemrosesan lain yang diterapkan. Akses ke fitur ini memerlukan setelan --experimental_allow_unresolved_symlinks .
|
is_executable
|
default = Salah Hanya dapat digunakan dengan target_file , bukan target_path . Jika true (benar), saat tindakan dieksekusi, jalur target_file akan diperiksa untuk mengonfirmasi bahwa tindakan tersebut dapat dieksekusi, dan error akan dilaporkan jika tidak. Menetapkan is_executable ke Salah (False) bukan berarti target tidak dapat dieksekusi, hanya saja tidak ada verifikasi yang dilakukan.Fitur ini tidak masuk akal untuk |
progress_message
|
string; or None ;
default = Tidak adaPesan progres yang akan ditampilkan kepada pengguna selama build. |
template_dict
TemplateDict actions.template_dict()
--+experimental_lazy_template_expansion
Eksperimental: Menampilkan objek TemplateDict untuk perluasan template yang hemat memori.
write
None actions.write(output, content, is_executable=False)
expand_template
.
Parameter
Parameter | Deskripsi |
---|---|
output
|
wajib File output. |
content
|
string; or Args ;
wajibisi file. Dapat berupa string atau objek actions.args() .
|
is_executable
|
default = Salah Apakah file output harus dapat dieksekusi. |