Включая замены по умолчанию внутри других «замен» - PullRequest
0 голосов
/ 19 февраля 2020

Отсюда ... https://cloud.google.com/cloud-build/docs/configuring-builds/substitute-variable-values

Я пытаюсь использовать замены внутри моего cloudbuild.yaml файла, но почти все мои замены зависят от идентификатора проекта, которым я являюсь развертывание в.

У меня есть файл yaml, подобный этому ...

steps:
- name: 'gcr.io/cloud-builders/gcloud'
  args: ['functions', 'deploy', 'functionName', ...other args... , '--service-account', '${_SERVICE_ACCOUNT}', '--source', '${_SOURCE_REPO}']
substitutions:
  _SOURCE_REPO: 'https://source.developers.google.com/projects/$PROJECT_ID/repos/my-repo-id/moveable-aliases/master/paths/functions/src'
  _SERVICE_ACCOUNT: 'blah@${PROJECT_ID}.iam.gserviceaccount.com'

И все, что я пытаюсь с заменами (я пробовал оба формата $_FOO и ${_FOO}) и в итоге я получаю blah@${PROJECT_ID}.iam.gserviceaccount.com с текстом ${PROJECT_ID}, который все еще там, а не с фактическим идентификатором проекта.

Если я переместлю текст на шаг и просто использую его вместо подстановки, то оно работает. Но в идеале я хотел бы использовать этот метод, так как эти значения будут использоваться очень часто, поэтому хотелось бы сохранить повторение. из предложений, упомянутых @ralemos, но, похоже, ничего не работает.

Если я использую этот формат ...

steps:
  - name: 'gcr.io/cloud-builders/gcloud'
    args: ['functions', 'deploy', 'functionName', ...other args... , '--service-account', '${SERVICE_ACCOUNT}', '--source', '${SOURCE_REPO}']
options:
  env:
    SOURCE_REPO: 'https://source.developers.google.com/projects/${PROJECT_ID}/repos/my-repo-id/moveable-aliases/master/paths/functions/src'
    SERVICE_ACCOUNT: 'blah@${PROJECT_ID}.iam.gserviceaccount.com

Он жалуется, что строки env недействительны.

Если я использую этот формат ...

steps:
  - name: 'gcr.io/cloud-builders/gcloud'
    args: ['functions', 'deploy', 'functionName', ...other args... , '--service-account', '${SERVICE_ACCOUNT}', '--source', '${SOURCE_REPO}']
options:
  env:
    'SOURCE_REPO=https://source.developers.google.com/projects/${PROJECT_ID}/repos/my-repo-id/moveable-aliases/master/paths/functions/src'
    'SERVICE_ACCOUNT=blah@${PROJECT_ID}.iam.gserviceaccount.com

Он жалуется, что SERVICE_ACCOUNT и SOURCE_REPO не являются допустимыми встроенными заменами.

Если я использую $$SOURCE_REPO в качестве синтаксис просто заменяет его на $SOURCE_REPO вместо использования подстановки.

На данный момент кажется, что то, что я пытаюсь сделать, просто невозможно.

1 Ответ

0 голосов
/ 19 февраля 2020

Вы можете использовать переменные env вместо подстановок, как вы можете видеть в ответе на этот пост сообщества .

Результат будет примерно таким:

steps:
  - name: 'gcr.io/cloud-builders/gcloud'
    args: ['functions', 'deploy', 'functionName', ...other args... , '--service-account', '${SERVICE_ACCOUNT}', '--source', '${SOURCE_REPO}']
options:
  env:
    SOURCE_REPO: 'https://source.developers.google.com/projects/${PROJECT_ID}/repos/my-repo-id/moveable-aliases/master/paths/functions/src'
    SERVICE_ACCOUNT: 'blah@${PROJECT_ID}.iam.gserviceaccount.com

Дайте мне знать, помогло ли это вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...