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