작업을 만드는 함수를 제공하는 모듈입니다. 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
|
파일의 시퀀스 또는 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
|
파일 시퀀스입니다.
필수 작업의 출력 파일 목록입니다. |
inputs
|
파일의 시퀀스 또는 depset입니다. 기본값은 [] 입니다.작업의 입력 파일 목록 또는 depset입니다. |
unused_inputs_list
|
파일 또는 None (기본값: None )작업에서 사용하지 않는 입력 목록이 포함된 파일입니다. 이 파일의 콘텐츠 (일반적으로 작업의 출력 중 하나)는 전체 작업 실행 중에 사용되지 않은 입력 파일 목록에 해당합니다. 이러한 파일의 변경사항은 어떠한 방식으로도 작업의 출력에 영향을 주어서는 안 됩니다. |
executable
|
File, string 또는 FilesToRunProvider: 필수 작업에서 호출할 실행 파일입니다. |
tools
|
sequence 또는 depset: 기본값은 unbound 입니다.작업에 필요한 도구의 목록 또는 depset입니다. 도구는 작업에 자동으로 제공되는 추가 런파일이 포함된 입력입니다. 목록이 제공되면 Files, FilesToRunProvider 인스턴스 또는 Files의 depset의 이질적인 모음이 될 수 있습니다. 목록에 직접 포함되어 있고 ctx.executable에서 가져온 파일의 경우 runfile이 자동으로 추가됩니다. depset이 제공되면 파일만 포함해야 합니다. 두 경우 모두 depset 내 파일은 runfile의 ctx.executable과 교차 참조되지 않습니다. |
arguments
|
sequence: 기본값은 [] 입니다.작업의 명령줄 인수입니다. 문자열 또는 actions.args() 객체 목록이어야 합니다.
|
mnemonic
|
string 또는 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')과 작업의 입력 수를 나타내는 정수)를 허용합니다. 반환된 사전에는 다음 항목이 포함될 수 있으며, 각 항목은 부동 소수점 또는 정수일 수 있습니다.
이 매개변수가 콜백은 최상위 수준이어야 합니다 (람다 및 중첩 함수는 허용되지 않음). |
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
|
파일 시퀀스입니다.
필수 작업의 출력 파일 목록입니다. |
inputs
|
파일의 시퀀스 또는 depset입니다. 기본값은 [] 입니다.작업의 입력 파일 목록 또는 depset입니다. |
tools
|
파일의 시퀀스 또는 depset. 기본값은 unbound 입니다.작업에 필요한 도구의 목록 또는 depset입니다. 도구는 작업에 자동으로 제공되는 추가 런파일이 포함된 입력입니다. 목록에는 Files 또는 FilesToRunProvider 인스턴스가 포함될 수 있습니다. |
arguments
|
sequence: 기본값은 [] 입니다.작업의 명령줄 인수입니다. 문자열 또는 actions.args() 객체 목록이어야 합니다.Bazel은 이 속성의 요소를 명령어에 인수로 전달합니다.명령어는
|
mnemonic
|
string 또는 None 기본값은 None 입니다.작업에 관한 한 단어로 된 설명입니다(예: CppCompile 또는 GoLink). |
command
|
string 또는 string의 시퀀스. 실행해야 하는 셸 명령어입니다. 문자열 (권장) 또는 문자열 시퀀스(지원 중단됨)일 수 있습니다.
(지원 중단됨) Bazel은 genrules와 동일한 셸을 사용하여 명령어를 실행합니다. |
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
|
문자열 또는 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()
도와줘
None
actions.write(output, content, is_executable=False)
expand_template
를 사용하는 것이 좋습니다.
매개변수
매개변수 | 설명 |
---|---|
output
|
필수 출력 파일입니다. |
content
|
string 또는 Args: 파일의 콘텐츠입니다. 문자열 또는 actions.args() 객체일 수 있습니다.
|
is_executable
|
기본값은 False 입니다.출력 파일을 실행 파일로 만들어야 하는지 여부입니다. |