シェルルール

ルール

sh_binary

ルールのソースを表示
sh_binary(name, deps, srcs, data, args, aspect_hints, compatible_with, deprecation, env, env_inherit, exec_compatible_with, exec_group_compatible_with, exec_properties, features, output_licenses, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, use_bash_launcher, visibility)

sh_binary ルールは、実行可能なシェル スクリプトを宣言するために使用されます。 (sh_binary は誤称です。出力は必ずしもバイナリではありません)。このルールにより 、すべての依存関係がビルドされ、実行時にrunfiles領域に表示されます。 sh_binary() ルールには、スクリプト名から拡張子(.sh など)を除いた名前を付けることをおすすめします。ルール名とファイル名は異なる必要があります。sh_binary はシバンを尊重するため、使用可能なインタープリタを使用できます(例: #!/bin/zsh)

依存関係がなく、いくつかのデータファイルを含むシンプルなシェル スクリプトの場合:

sh_binary(
    name = "foo",
    srcs = ["foo.sh"],
    data = glob(["datafiles/*.txt"]),
)

引数

属性
name

名前(必須)

このターゲットの一意の名前。

deps

ラベルのリスト。デフォルトは[]

このターゲットに集約される「ライブラリ」ターゲットのリスト。 `deps` に関する一般的なコメントについては、deps ほとんどのビルドルールで定義されている 一般的な属性をご覧ください

この属性は、sh_library ルールを一覧表示するために使用する必要があります。これは、 srcs のコードが依存するインタープリタ型プログラムのソースコードを提供します。これらのルールによって提供されるファイルは、このターゲットの runfiles に含まれます。

srcs

ラベルのリスト。デフォルトは[]

シェル スクリプトを含むファイル。

この属性は、要素がシェル スクリプトであるシングルトン リストにする必要があります。 このスクリプトは実行可能にする必要があり、ソースファイルまたは生成されたファイルにすることができます。 実行時に必要な他のすべてのファイル(スクリプトまたはデータ)は、 data 属性に属します。

env_inherit

文字列のリスト。デフォルトは []

use_bash_launcher

ブール値。デフォルトは False

runfiles ライブラリを初期化する bash ランチャーを使用する

sh_library

ルールのソースを表示
sh_library(name, deps, srcs, data, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)

このルールの主な用途は、関連するスクリプト(コンパイルやリンクを必要としないインタープリタ言語のプログラム(Bourne シェルなど))と、それらのプログラムが実行時に必要とするデータを集約して、論理的な 「ライブラリ」にすることです。このような「ライブラリ」は、 data 属性から 1 つ以上のsh_binary ルールの 使用できます。

filegroup ルールを使用してデータ ファイルを集約できます。

インタープリタ型プログラミング言語では、「コード」と「データ」が明確に 区別されないことがあります。結局のところ、プログラムはインタープリタの観点から見ると単なる「データ」です。そのため、このルールには、srcsdepsdata という 3 つの属性があり、これらはすべて基本的に同等です。現在の実装では、これらのリストの要素は区別されません。 3 つの属性すべてで、ルール、ソースファイル、生成されたファイルを使用できます。 ただし、他のルールと同様に、属性を通常の目的に使用することをおすすめします。

sh_library(
    name = "foo",
    data = [
        ":foo_service_script",  # an sh_binary with srcs
        ":deploy_foo",  # another sh_binary with srcs
    ],
)

引数

属性
name

名前(必須)

このターゲットの一意の名前。

deps

ラベルのリスト。デフォルトは[]

このターゲットに集約される「ライブラリ」ターゲットのリスト。 `deps` に関する一般的なコメントについては、deps ほとんどのビルドルールで定義されている 一般的な属性をご覧ください

この属性は、sh_library ルールを一覧表示するために使用する必要があります。これは、 srcs のコードが依存するインタープリタ型プログラムのソースコードを提供します。これらのルールによって提供されるファイルは、このターゲットの runfiles に含まれます。

srcs

ラベルのリスト。デフォルトは[]

入力ファイルのリスト。

この属性は、このライブラリに属するシェル スクリプトのソースファイルを一覧表示するために使用する必要があります。 スクリプトは、シェルの source コマンドまたは . コマンドを使用して他のスクリプトを読み込むことができます。

sh_test

ルールのソースを表示
sh_test(name, deps, srcs, data, args, aspect_hints, compatible_with, deprecation, env, env_inherit, exec_compatible_with, exec_group_compatible_with, exec_properties, features, flaky, local, package_metadata, restricted_to, shard_count, size, tags, target_compatible_with, testonly, timeout, toolchains, use_bash_launcher, visibility)

sh_test() ルールは、Bourne シェル スクリプトとして記述されたテストを作成します。

すべてのテストルール(*_test)に共通する 属性をご覧ください。

sh_test(
    name = "foo_integration_test",
    size = "small",
    srcs = ["foo_integration_test.sh"],
    deps = [":foo_sh_lib"],
    data = glob(["testdata/*.txt"]),
)

引数

属性
name

名前(必須)

このターゲットの一意の名前。

deps

ラベルのリスト。デフォルトは[]

このターゲットに集約される「ライブラリ」ターゲットのリスト。 `deps` に関する一般的なコメントについては、deps ほとんどのビルドルールで定義されている 一般的な属性をご覧ください

この属性は、sh_library ルールを一覧表示するために使用する必要があります。これは、 srcs のコードが依存するインタープリタ型プログラムのソースコードを提供します。これらのルールによって提供されるファイルは、このターゲットの runfiles に含まれます。

srcs

ラベルのリスト。デフォルトは[]

シェル スクリプトを含むファイル。

この属性は、要素がシェル スクリプトであるシングルトン リストにする必要があります。 このスクリプトは実行可能にする必要があり、ソースファイルまたは生成されたファイルにすることができます。 実行時に必要な他のすべてのファイル(スクリプトまたはデータ)は、 data 属性に属します。

use_bash_launcher

ブール値。デフォルトは False

runfiles ライブラリを初期化する bash ランチャーを使用する