작업을 생성하는 함수를 제공하는 모듈입니다. 이 모듈에 액세스하려면 ctx.actions
를 사용하세요.
회원
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- 실행
- run_shell
- 심볼릭 링크
- template_dict
- 쓰기
args
Args actions.args()
declare_directory
File actions.declare_directory(filename, *, sibling=None)
Args.add_all()
를 사용하여 작업 명령어로 확장할 수 있습니다. 일반 파일과 디렉터리만 선언_디렉터리의 확장된 콘텐츠에 포함될 수 있습니다.
매개변수
매개변수 | 설명 |
---|---|
filename
|
필수 '동위'가 없는 경우 현재 패키지를 기준으로 한 새 디렉터리의 경로입니다. 그렇지 않은 경우 파일의 기본 이름('형제'는 디렉터리를 정의함) |
sibling
|
File 또는 None
기본값은 None 입니다. 새로 선언된 디렉터리와 동일한 디렉터리에 있는 파일입니다. 파일이 현재 패키지에 있어야 합니다. |
declare_file
File actions.declare_file(filename, *, sibling=None)
sibling
을 지정하지 않으면 파일 이름은 패키지 디렉터리를 기준으로 하며, 지정하지 않으면 파일이 sibling
와 동일한 디렉터리에 있습니다. 현재 패키지 외부에서는 파일을 만들 수 없습니다.파일 선언 외에도 파일을 내보내는 작업을 별도로 생성해야 합니다. 이 작업을 만들려면 반환된 File
객체를 작업의 구성 함수에 전달해야 합니다.
사전 선언된 출력 파일은 이 함수를 사용하여 선언할 필요가 없으며 선언될 수도 없습니다. 대신 ctx.outputs
에서 File
객체를 가져올 수 있습니다. 사용 예 보기
매개변수
매개변수 | 설명 |
---|---|
filename
|
필수 '동위'가 없는 경우 현재 패키지를 기준으로 한 새 파일의 경로입니다. 그렇지 않으면 파일의 기본 이름('동위'가 디렉터리를 결정함)에 따라 달라집니다. |
sibling
|
File 또는 None
기본값은 None 입니다. 새로 생성된 파일과 동일한 디렉터리에 있는 파일입니다. 파일이 현재 패키지에 있어야 합니다. |
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)
매개변수
매개변수 | 설명 |
---|---|
filename
|
필수 '동위'가 없는 경우 현재 패키지를 기준으로 한 새 심볼릭 링크의 경로입니다. 그렇지 않은 경우 파일의 기본 이름('형제'는 디렉터리를 정의함) |
sibling
|
File 또는 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
기본값은 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
|
File 또는 None
기본값은 None 입니다. 작업에서 사용하지 않는 입력 목록이 포함된 파일입니다. 이 파일의 콘텐츠 (일반적으로 작업의 출력 중 하나)는 전체 작업 실행 중에 사용되지 않은 입력 파일의 목록에 해당합니다. 이러한 파일의 변경사항은 어떤 식으로든 작업의 출력에 영향을 미치면 안 됩니다. |
executable
|
File 또는 string; 또는 FilesToRunProvider입니다.
필수 작업으로 호출할 실행 파일입니다. |
tools
|
sequence; 또는 depset;
기본값은 unbound 입니다. 작업에 필요한 모든 도구의 나열 또는 배포입니다. 도구는 작업에서 자동으로 사용할 수 있는 추가 실행 파일이 포함된 입력입니다. 목록이 제공되는 경우 Files, FilesToRunProvider 인스턴스 또는 Files 배포의 이종 컬렉션일 수 있습니다. 목록에 직접 있고 ctx.executable에서 가져온 파일에는 실행 파일이 자동으로 추가됩니다. depset이 제공되면 Files만 포함해야 합니다. 두 경우 모두, depset 내에 있는 파일은 runfile에 대해 ctx.executable과 교차 참조되지 않습니다. |
arguments
|
sequence;
기본값은 [] 입니다. 작업의 명령줄 인수입니다. 문자열 또는 actions.args() 객체의 목록이어야 합니다.
|
mnemonic
|
string; 또는 None
기본값은 None 입니다. 작업에 대한 한 단어로 된 설명입니다(예: CppCompile 또는 GoLink). |
progress_message
|
string; 또는 None
기본값은 None 입니다. 빌드 중에 사용자에게 표시할 진행률 메시지(예: 'foo.o를 만들기 위해 foo.cc 컴파일'). 메시지에는 %{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
|
callable; 또는 None
기본값은 None 입니다. 리소스 집합 사전을 반환하는 콜백 함수로, 이 작업이 로컬에서 실행되는 경우 실행 시 리소스 사용량을 예측하는 데 사용됩니다. 이 함수는 두 개의 위치 인수를 허용합니다. OS 이름을 나타내는 문자열 (예: 'osx')과 작업에 대한 입력 수를 나타내는 정수입니다. 반환된 사전에는 다음 항목이 포함될 수 있으며, 각 항목은 부동 소수점 수 또는 정수일 수 있습니다.
이 매개변수가 콜백은 최상위 수준이어야 합니다 (람다 및 중첩 함수는 허용되지 않음). |
toolchain
|
라벨 또는 string; 또는 None
기본값은 unbound 입니다. 이 작업에 사용되는 실행 파일 또는 도구의 도구 모음 유형입니다. 작업이 올바른 실행 플랫폼에서 실행되도록 매개변수를 설정해야 합니다. 현재는 작동하지 않지만 향후 Bazel 릴리스에서 필요하므로 도구 모음이 사용될 때 이를 설정하는 것이 좋습니다. 이 작업을 만드는 규칙은 'rule()' 내에 이 도구 모음을 정의해야 합니다. 함수를 사용하세요. `tools` 및 `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의 sequence; 또는 depset
기본값은 unbound 입니다. 작업에 필요한 모든 도구의 나열 또는 배포입니다. 도구는 작업에서 자동으로 사용할 수 있는 추가 실행 파일이 포함된 입력입니다. 목록에는 Files 또는 FilesToRunProvider 인스턴스가 포함될 수 있습니다. |
arguments
|
sequence;
기본값은 [] 입니다. 작업의 명령줄 인수입니다. 문자열 또는 actions.args() 객체의 목록이어야 합니다.Bazel은 이 속성의 요소를 명령어에 인수로 전달합니다.명령어는
|
mnemonic
|
string; 또는 None
기본값은 None 입니다. 작업에 대한 한 단어로 된 설명입니다(예: CppCompile 또는 GoLink). |
command
|
string; 또는 문자열의 시퀀스
필수 실행할 셸 명령어를 사용합니다 문자열 (권장) 또는 문자열 시퀀스(지원 중단됨)일 수 있습니다.
(지원 중단됨) Bazel은 genrule과 동일한 셸을 사용하여 명령어를 실행합니다. |
progress_message
|
string; 또는 None
기본값은 None 입니다. 빌드 중에 사용자에게 표시할 진행률 메시지(예: 'foo.o를 만들기 위해 foo.cc 컴파일'). 메시지에는 %{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
|
callable; 또는 None
기본값은 None 입니다. 로컬에서 실행되는 경우 리소스 사용량을 추정하는 콜백 함수입니다. ctx.actions.run() 를 참고하세요.
|
toolchain
|
라벨 또는 string; 또는 None
기본값은 unbound 입니다. 이 작업에 사용되는 실행 파일 또는 도구의 도구 모음 유형입니다. 작업이 올바른 실행 플랫폼에서 실행되도록 매개변수를 설정해야 합니다. 현재는 작동하지 않지만 향후 Bazel 릴리스에서 필요하므로 도구 모음이 사용될 때 이를 설정하는 것이 좋습니다. 이 작업을 만드는 규칙은 'rule()' 내에 이 도구 모음을 정의해야 합니다. 함수를 사용하세요. `tools` 및 `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
|
필수 이 작업의 출력입니다. |
target_file
|
File 또는 None
기본값은 None 입니다. 출력 심볼릭 링크가 가리키는 파일입니다. |
target_path
|
string; 또는 None
기본값은 None 입니다. 출력 심볼릭 링크가 가리키는 정확한 경로입니다. 정규화 또는 다른 처리가 적용되지 않습니다. |
is_executable
|
기본값은 False 입니다. target_path 가 아닌 target_file 하고만 사용할 수 있습니다. true인 경우 작업이 실행될 때 target_file 의 경로를 확인하여 실행 파일인지 확인하고, 그렇지 않으면 오류가 보고됩니다. is_executable 를 False로 설정하면 타겟을 실행할 수 없는 것이 아니라 확인이 완료되지 않을 뿐입니다.댕글링 심볼릭 링크는 빌드 시간에 존재하지 않을 수 있으므로 |
progress_message
|
string; 또는 None
기본값은 None 입니다. 빌드 중에 사용자에게 표시할 진행률 메시지입니다. |
template_dict
TemplateDict actions.template_dict()
write
None
actions.write(output, content, is_executable=False)
expand_template
를 사용하는 것이 좋습니다.
매개변수
매개변수 | 설명 |
---|---|
output
|
필수 출력 파일입니다. |
content
|
string; 또는 Args
필수 지정할 수 있습니다. 문자열 또는 actions.args() 객체일 수 있습니다.
|
is_executable
|
기본값은 False 입니다. 출력 파일이 실행 가능한 파일인지 여부입니다. |