작업을 만드는 함수를 제공하는 모듈 ctx.actions
을 사용하여 이 모듈에 액세스합니다.
회원
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- run
- run_shell
- symlink
- template_dict
- write
args
Args actions.args()
declare_directory
File actions.declare_directory(filename, *, sibling=None)
Args.add_all()
을 사용하여 작업 명령어에서 확장할 수 있습니다. 일반 파일과 디렉터리만 declare_directory의 확장된 콘텐츠에 있을 수 있습니다.
매개변수
매개변수 | 설명 |
---|---|
filename
|
필수 '형제'가 제공되지 않은 경우 현재 패키지를 기준으로 하는 새 디렉터리의 경로입니다. 그렇지 않으면 파일의 기본 이름입니다 ('sibling'은 디렉터리를 정의함). |
sibling
|
파일 또는 None . 기본값은 None 입니다. 새로 선언된 디렉터리와 동일한 디렉터리에 있는 파일입니다. 파일은 현재 패키지에 있어야 합니다. |
declare_file
File actions.declare_file(filename, *, sibling=None)
sibling
이 지정되지 않으면 파일 이름은 패키지 디렉터리를 기준으로 하고, 그렇지 않으면 파일은 sibling
과 동일한 디렉터리에 있습니다. 파일은 현재 패키지 외부에서 만들 수 없습니다.파일을 선언하는 것 외에도 파일을 내보내는 작업을 별도로 만들어야 합니다. 이 작업을 만들려면 반환된 File
객체를 작업의 생성 함수에 전달해야 합니다.
미리 선언된 출력 파일은 이 함수를 사용하여 선언할 필요가 없으며 선언할 수도 없습니다. 대신 ctx.outputs
에서 File
객체를 가져올 수 있습니다. 사용 예시 보기
매개변수
매개변수 | 설명 |
---|---|
filename
|
필수 '동위 요소'가 제공되지 않은 경우 현재 패키지를 기준으로 한 새 파일의 경로입니다. 그렇지 않으면 파일의 기본 이름입니다 ('sibling'이 디렉터리를 결정함). |
sibling
|
파일 또는 None ;
기본값은 None 새로 생성된 파일과 동일한 디렉터리에 있는 파일입니다. 파일은 현재 패키지에 있어야 합니다. |
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)
매개변수
매개변수 | 설명 |
---|---|
filename
|
필수 '형제'가 제공되지 않은 경우 새 심볼릭 링크의 경로입니다(현재 패키지 기준). 그렇지 않으면 파일의 기본 이름입니다 ('sibling'은 디렉터리를 정의함). |
sibling
|
파일 또는 None . 기본값은 None 입니다. 새로 선언된 심볼릭 링크와 동일한 디렉터리에 있는 파일입니다. |
do_nothing
None
actions.do_nothing(mnemonic, inputs=[])
매개변수
매개변수 | 설명 |
---|---|
mnemonic
|
필수사항 작업에 대한 한 단어 설명입니다(예: CppCompile 또는 GoLink). |
inputs
|
File의 sequence 또는 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
|
기본값은 False 입니다. 출력 파일이 실행 가능해야 하는지 여부입니다. |
computed_substitutions
|
TemplateDict;
default is unbound 템플릿을 확장할 때 적용할 대체입니다. |
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=unbound)
매개변수
매개변수 | 설명 |
---|---|
outputs
|
File의 sequence입니다. 필수입니다. 작업의 출력 파일 목록입니다. |
inputs
|
File의 sequence 또는 depset. 기본값은 [] 입니다. 작업의 입력 파일 목록 또는 depset입니다. |
unused_inputs_list
|
파일 또는 None . 기본값은 None 입니다. 작업에서 사용하지 않는 입력 목록이 포함된 파일입니다. 이 파일의 콘텐츠 (일반적으로 작업의 출력 중 하나)는 전체 작업 실행 중에 사용되지 않은 입력 파일 목록에 해당합니다. 이러한 파일의 변경사항은 작업의 출력에 어떤 방식으로도 영향을 미쳐서는 안 됩니다. |
executable
|
File 또는 string 또는 FilesToRunProvider;
required 작업에서 호출할 실행 파일입니다. |
tools
|
sequence 또는 depset;
기본값은 unbound 작업에 필요한 도구의 목록 또는 depset입니다. 도구는 작업에 자동으로 제공되는 추가 실행 파일이 있는 입력입니다. 목록이 제공되면 파일, FilesToRunProvider 인스턴스 또는 파일의 depsets의 이질적인 컬렉션일 수 있습니다. 목록에 직접 있고 ctx.executable에서 가져온 파일에는 runfile이 자동으로 추가됩니다. deps를 제공하는 경우 파일만 포함해야 합니다. 두 경우 모두 depsets 내의 파일이 runfile에 대해 ctx.executable과 상호 참조되지 않습니다. |
arguments
|
sequence;
default is [] 작업의 명령줄 인수입니다. 문자열 또는 actions.args() 객체의 목록이어야 합니다.
|
mnemonic
|
문자열 또는 None ;
기본값은 None 입니다. 작업에 대한 한 단어 설명입니다(예: CppCompile 또는 GoLink). |
progress_message
|
string 또는 None ;
기본값은 None 빌드 중에 사용자에게 표시할 진행률 메시지입니다(예: 'foo.cc를 컴파일하여 foo.o 생성'). 메시지에는 %{label} , %{input} 또는 %{output} 패턴이 포함될 수 있으며, 이는 각각 라벨 문자열, 첫 번째 입력 또는 출력의 경로로 대체됩니다. 정적 문자열 대신 패턴을 사용하는 것이 좋습니다. 패턴이 더 효율적이기 때문입니다.
|
use_default_shell_env
|
기본값은 False 입니다. 작업에서 기본 셸 환경을 사용해야 하는지 여부입니다. 기본 셸 환경은 몇 가지 OS 종속 변수와 --action_env 을 통해 설정된 변수로 구성됩니다.
|
env
|
dict 또는 None . 기본값은 None 입니다. 환경 변수의 사전을 설정합니다.
|
execution_requirements
|
dict 또는 None ;
기본값은 None 작업 예약에 관한 정보입니다. 유용한 키는 태그를 참고하세요. |
input_manifests
|
sequence 또는 None . 기본값은 None 입니다. 입력 실행 파일 메타데이터를 설정합니다. 일반적으로 resolve_command에 의해 생성됩니다. |
exec_group
|
string 또는 None ;
기본값은 None 입니다. 지정된 실행 그룹의 실행 플랫폼에서 작업을 실행합니다. 없으면 타겟의 기본 실행 플랫폼을 사용합니다. |
shadowed_action
|
작업;
기본값은 None 작업의 입력 목록과 환경에 추가된 지정된 섀도우 작업의 입력과 환경을 사용하여 작업을 실행합니다. 작업 환경은 섀도 처리된 작업의 환경 변수를 덮어쓸 수 있습니다. 없으면 작업의 입력과 지정된 환경만 사용합니다. |
resource_set
|
호출 가능하거나 None 입니다. 기본값은 None 입니다. 이 작업이 로컬에서 실행되는 경우 실행 시 리소스 사용량을 추정하는 데 사용되는 리소스 세트 사전을 반환하는 콜백 함수입니다. 이 함수는 OS 이름을 나타내는 문자열 (예: 'osx')과 작업에 대한 입력 수를 나타내는 정수라는 두 개의 위치 인수를 허용합니다. 반환된 사전에는 다음 항목이 포함될 수 있으며, 각 항목은 float 또는 int일 수 있습니다.
이 매개변수가 콜백은 최상위 수준이어야 합니다 (람다 및 중첩 함수는 허용되지 않음). |
toolchain
|
라벨 또는 문자열 또는 None . 기본값은 unbound 입니다. 이 작업에 사용된 실행 파일 또는 도구의 도구 모음 유형입니다. 작업이 올바른 실행 플랫폼에서 실행되도록 매개변수를 설정해야 합니다. 현재는 아무 작업도 하지 않지만 향후 Bazel 출시에서 필요하므로 도구 모음을 사용하는 경우 설정하는 것이 좋습니다. 이 작업을 만드는 규칙은 '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=unbound)
매개변수
매개변수 | 설명 |
---|---|
outputs
|
File의 sequence입니다. 필수입니다. 작업의 출력 파일 목록입니다. |
inputs
|
File의 sequence 또는 depset. 기본값은 [] 입니다. 작업의 입력 파일 목록 또는 depset입니다. |
tools
|
File의 시퀀스 또는 depset. 기본값은 unbound 입니다. 작업에 필요한 도구의 목록 또는 depset입니다. 도구는 작업에 자동으로 제공되는 추가 실행 파일이 있는 입력입니다. 목록에는 Files 또는 FilesToRunProvider 인스턴스가 포함될 수 있습니다. |
arguments
|
sequence;
default is [] 작업의 명령줄 인수입니다. 문자열 또는 actions.args() 객체의 목록이어야 합니다.Bazel은 이 속성의 요소를 명령에 인수로 전달합니다.명령은
|
mnemonic
|
문자열 또는 None ;
기본값은 None 입니다. 작업에 대한 한 단어 설명입니다(예: CppCompile 또는 GoLink). |
command
|
string 또는 string의 sequence; 필수 실행할 셸 명령어입니다. 문자열 (권장) 또는 문자열 시퀀스(지원 중단)일 수 있습니다.
(지원 중단됨) Bazel은 genrule과 동일한 셸을 사용하여 명령어를 실행합니다. |
progress_message
|
string 또는 None ;
기본값은 None 빌드 중에 사용자에게 표시할 진행률 메시지입니다(예: 'foo.cc를 컴파일하여 foo.o 생성'). 메시지에는 %{label} , %{input} 또는 %{output} 패턴이 포함될 수 있으며, 이는 각각 라벨 문자열, 첫 번째 입력 또는 출력의 경로로 대체됩니다. 정적 문자열 대신 패턴을 사용하는 것이 좋습니다. 패턴이 더 효율적이기 때문입니다.
|
use_default_shell_env
|
기본값은 False 입니다. 작업에서 기본 셸 환경을 사용해야 하는지 여부입니다. 기본 셸 환경은 몇 가지 OS 종속 변수와 --action_env 을 통해 설정된 변수로 구성됩니다.
|
env
|
dict 또는 None . 기본값은 None 입니다. 환경 변수의 사전을 설정합니다.
|
execution_requirements
|
dict 또는 None ;
기본값은 None 작업 예약에 관한 정보입니다. 유용한 키는 태그를 참고하세요. |
input_manifests
|
sequence 또는 None . 기본값은 None 입니다. 입력 실행 파일 메타데이터를 설정합니다. 일반적으로 resolve_command에 의해 생성됩니다. |
exec_group
|
string 또는 None ;
기본값은 None 입니다. 지정된 실행 그룹의 실행 플랫폼에서 작업을 실행합니다. 없으면 타겟의 기본 실행 플랫폼을 사용합니다. |
shadowed_action
|
작업;
기본값은 None 작업의 입력 목록에 추가된 지정된 섀도우 작업의 검색된 입력을 사용하여 작업을 실행합니다. 없으면 작업의 입력만 사용합니다. |
resource_set
|
호출 가능 또는 None ; 기본값은 None 입니다. 로컬에서 실행되는 경우 리소스 사용량을 추정하는 콜백 함수입니다. ctx.actions.run() 을 참고하세요.
|
toolchain
|
라벨 또는 문자열 또는 None . 기본값은 unbound 입니다. 이 작업에 사용된 실행 파일 또는 도구의 도구 모음 유형입니다. 작업이 올바른 실행 플랫폼에서 실행되도록 매개변수를 설정해야 합니다. 현재는 아무 작업도 하지 않지만 향후 Bazel 출시에서 필요하므로 도구 모음을 사용하는 경우 설정하는 것이 좋습니다. 이 작업을 만드는 규칙은 'rule()' 함수 내에서 이 도구 모음을 정의해야 합니다. `toolchain` 및 `exec_group` 매개변수가 모두 설정된 경우 `exec_group` 이 사용됩니다. `exec_group` 이 동일한 도구 모음을 지정하지 않으면 오류가 발생합니다. |
심볼릭 링크
None
actions.symlink(output, target_file=None, target_path=None, is_executable=False, progress_message=None)
이 함수는 target_file
또는 target_path
중 정확히 하나가 지정된 상태로 호출해야 합니다.
target_file
를 사용하는 경우 declare_file()
또는 declare_directory()
로 output
를 선언하고 target_file
의 유형을 일치시킵니다. 이렇게 하면 심볼릭 링크가 target_file
를 가리키게 됩니다. Bazel은 심볼릭 링크의 타겟이나 콘텐츠가 변경될 때마다 이 작업의 출력을 무효화합니다.
그렇지 않은 경우 target_path
을 사용할 때 declare_symlink()
로 output
을 선언합니다. 이 경우 심볼릭 링크는 target_path
을 가리킵니다. Bazel은 심볼릭 링크를 확인하지 않으며 심볼릭 링크의 텍스트 콘텐츠 (즉, readlink()
값)가 변경될 때만 이 작업의 출력이 무효화됩니다. 특히 이 방법은 끊어진 심볼릭 링크를 만드는 데 사용할 수 있습니다.
매개변수
매개변수 | 설명 |
---|---|
output
|
required 이 작업의 출력입니다. |
target_file
|
파일 또는 None ;
기본값은 None 입니다. 출력 심볼릭 링크가 가리키는 파일입니다. |
target_path
|
string 또는 None . 기본값은 None 입니다. 출력 심볼릭 링크가 가리키는 정확한 경로입니다. 정규화 또는 기타 처리가 적용되지 않습니다. |
is_executable
|
기본값은 False 입니다. target_path 이 아닌 target_file 에만 사용할 수 있습니다. true인 경우 작업이 실행될 때 target_file 의 경로가 실행 가능한지 확인하고 실행 가능하지 않으면 오류가 보고됩니다. is_executable 를 False로 설정해도 타겟이 실행 불가능하다는 의미는 아니며, 확인이 실행되지 않는다는 의미입니다.빌드 시점에 매달린 심볼릭 링크가 없을 수 있으므로 |
progress_message
|
문자열 또는 None 입니다. 기본값은 None 입니다. 빌드 중에 사용자에게 표시할 진행 메시지입니다. |
template_dict
TemplateDict actions.template_dict()
도와줘
None
actions.write(output, content, is_executable=False)
expand_template
를 사용하는 것이 좋습니다.
매개변수
매개변수 | 설명 |
---|---|
output
|
required 출력 파일입니다. |
content
|
string 또는 Args;
required 파일의 콘텐츠입니다. 문자열 또는 actions.args() 객체일 수 있습니다.
|
is_executable
|
기본값은 False 입니다. 출력 파일이 실행 가능해야 하는지 여부입니다. |