Это правильный способ написать оператор if..else в файле cloudbuild.yaml? - PullRequest
1 голос
/ 25 мая 2020

Я пытаюсь развернуть облачную функцию с помощью cloudbuild.yaml. Он отлично работает, если я не использую условный оператор. Я столкнулся с ошибкой при выполнении файла cloudbuild.yaml с оператором if conditional. Как правильно это написать. Ниже мой код:

steps:
- name: 'gcr.io/cloud-builders/gcloud'
  id: deploy
  args: 
   - '-c'
   - 'if [ $BRANCH_NAME != "xoxoxoxox" ] 
     then 
        [
          'functions', 'deploy', 'groups', 
          '--region=us-central1',
          '--source=.',
          '--trigger-http', 
          '--runtime=nodejs8', 
          '--entry-point=App', 
          '--allow-unauthenticated',
          '--service-account=xoxoxoxox@appspot.gserviceaccount.com'
        ]
     fi'
  dir: 'API/groups'

Где я делаю не так?

Ответы [ 2 ]

3 голосов
/ 25 мая 2020

На странице github, https://github.com/GoogleCloudPlatform/cloud-sdk-docker, точка входа не установлена ​​на gcloud. Таким образом, вы не можете указать такие аргументы.

Хорошая практика для указания каталога - начинать с /workspace

Также правильный способ записи шага должен быть

steps:
- name: 'gcr.io/cloud-builders/gcloud'
  id: deploy
  dir: '/workspace/API/groups'
  entrypoint: bash
  args: 
   - '-c'
   - |
      if [ $BRANCH_NAME != "xoxoxoxox" ] 
      then 
        gcloud functions deploy groups
        --region=us-central1
        --source=. 
        --trigger-http 
        --runtime=nodejs8 
        --entry-point=App
        --allow-unauthenticated
        --service-account=xoxoxoxox@appspot.gserviceaccount.com
      fi
0 голосов
/ 25 мая 2020

Я не уверен, что ты сможешь это сделать.

В моем случае я использую селектор веток в триггере облачной сборки, чтобы выбрать, какую ветку (или тег) я хочу построить из шаблона.

...