로컬 워크스테이션에서 빌드를 제출하려고 하는데 설명할 수 없는 오류가 발생합니다.
gcloud builds submit --config cloudbuild.yaml .
Creating temporary tarball archive of 149 file(s) totalling 121.5 MiB before compression.
Uploading tarball of [.] to [gs://***/source/1598211672.63-e76a3db01aa3435885a35cc3b94f0246.tgz]
ERROR: (gcloud.builds.submit) INVALID_ARGUMENT: Request contains an invalid argument.
cloudbuild.yaml
git push 또는 github PR 코멘트에 의해 트리거되면 동일한 작업이 올바르게 실행됩니다. 또한 몇 달 전에는 이런 방식으로 빌드를 제출할 수 있었습니다.
gcloud auth list
활성 계정은 프로젝트 소유자 역할이 확실히 있는 계정임을 나타냅니다. 또한 스토리지 버킷 관리, 컴퓨팅 인스턴스 관리 등과 같은 다른 gcloud 명령을 실행할 수 있습니다.
답변1
이것은 의도한 대로 작동하고 있으며 문서화되어 있습니다.여기:
기본적으로 누락된 대체 변수 또는 누락된 대체 항목이 있는 경우 빌드는 오류를 반환합니다. 그러나 ALLOW_LOOSE 옵션을 설정하여 이 검사를 건너뛸 수 있습니다.
트리거를 사용하여 빌드를 호출할 때도 다음과 같습니다.
트리거에 의해 빌드가 호출되면 ALLOW_LOOSE 옵션이 기본적으로 설정됩니다. 이 경우 누락된 대체 변수 또는 누락된 대체 항목이 있어도 빌드는 오류를 반환하지 않습니다. 트리거에 의해 호출된 빌드에 대해서는 ALLOW_LOOSE 옵션을 재정의할 수 없습니다.
답변2
나는 추가했다
options:
substitution_option: 'ALLOW_LOOSE'
cloudbuild.yaml에 추가하면 이제 빌드가 제출됩니다. 어떤 이유로 cloudbuild.yaml이 다음과 같은 대체 항목을 정의한 경우:
substitutions:
_SLACK_MESSAGE_TEMPLATE: 'backend build succeeded"
_SLACK_MESSAGE_TEMPLATE
cli cloudbuild submit을 통해 제공하더라도 오류를 반환합니다 --substitutions
.