Google Build cloudbuild.yaml развертывание функций Python лучшие практики - PullRequest
0 голосов
/ 06 июня 2019

Структура моего проекта настроена следующим образом:

cloudbuild.yaml
requirements.txt
functions/
    folder_a/
        test/
            main_test.py
        main.py

Что мне нужно указать в моем cloudbuild.yaml, чтобы принимать все вновь отредактированные функции в functions/, запускать их тесты и затем синхронизироватьэти функции в Google Cloud Functions?Все функции являются python37 и используют http в качестве триггера.

1 Ответ

1 голос
/ 06 июня 2019

Почему бы не перезапускать тесты и не развертывать каждый раз при изменении кода?Не повредите в тестировании, что обновленная зависимость не сломала что-то старое или что-то, от чего вы зависели, могло измениться.

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

steps:
- name: 'python'
  args: ['pip3','install', '-r', 'requirements.txt', '--user']
# This installs your requirements and `--user` makes them persist between steps

- name: 'python'
  args: ['python3','pytest', 'functions/folder_a/test/'] #run all tests in the tests folder

# Create a task for each function as shown here: https://cloud.google.com/functions/docs/bestpractices/testing#continuous_testing_and_deployment
- name: 'gcr.io/cloud-builders/gcloud']
    id: 'deployMyFunction'
  args: ['functions', 'deploy', 'my-function', '--source' , 'functions/folder_a/main.py', '--runtime' , 'python37' ,'--trigger-http']

# Option B: Write some python that iterates and deploys each function, although I can't seem to find the Cloud Functions in the python SDK SPI.
- name: 'python'
  args: ['python3','deploy.py']
  env:
  - 'PROJECT_ID=${_PROJECT_ID}'

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