Поиск по сайту:

Как начать работу с непрерывной интеграцией и доставкой на облачной платформе Google


Непрерывная интеграция/непрерывная доставка (CI/CD) — это процесс автоматизации обновлений приложений, от изменений в системе управления версиями до автоматизированных сборок и автоматизированных развертываний на ваших серверах. GCP предоставляет для этого услугу под названием Cloud Build.

Написание конфигурации сборки

Показанный здесь конвейер CI/CD работает довольно просто. GCP прослушивает изменения в вашей системе управления версиями, будь то новые коммиты в определенной ветке или новые запросы на вытягивание. Затем он отправляет исходный код в Cloud Build, который запускает набор команд для тестирования и сборки приложения и отправляет выходные артефакты сборки в App Engine, GKE, Cloud Functions или корзину Cloud Storage.

Большая часть конфигурации Cloud Build на самом деле происходит вне Cloud Build, в файле YAML с именем cloudbuild.yaml. Это определяет этапы сборки, параметры и параметры вывода. Схема выглядит примерно так:

steps:
- name: string
  args: [string, string, ...]
  env: [string, string, ...]
  dir: string
  id: string
  waitFor: [string, string, ...]
  entrypoint: string
  secretEnv: string
  volumes: object(Volume)
  timeout: string (Duration format)
- name: string
  ...
- name: string
  ...
timeout: string (Duration format)
queueTtl: string (Duration format)
logsBucket: string
options:
 env: [string, string, ...]
 secretEnv: string
 volumes: object(Volume)
 sourceProvenanceHash: enum(HashType)
 machineType: enum(MachineType)
 diskSizeGb: string (int64 format)
 substitutionOption: enum(SubstitutionOption)
 logStreamingOption: enum(LogStreamingOption)
 logging: enum(LoggingMode)
substitutions: map (key: string, value: string)
tags: [string, string, ...]
secrets: object(Secret)
images:
- [string, string, ...]
artifacts: object (Artifacts)

Однако вам не понадобятся все эти параметры. Простая конфигурация, подобная следующей, позволит создать приложение NPM и развернуть его в корзине облачного хранилища:

steps:
# Install dependencies
- name: node
  entrypoint: npm
  args: ['install']
# Run tests
- name: node
  entrypoint: npm
  args: ['test']
# Run custom commands
- name: node
  entrypoint: npm
  args: ['run', 'build']
artifacts:
  objects:
    location: 'gs://mybucket/'
    paths: ['build']

Первый ключ, «Шаги», запускает npm install для упорядочения зависимостей, затем npm test для запуска любых настроенных вами тестов, затем npm run build  , чтобы начать процесс сборки. После завершения выходные артефакты в папке build отправляются в gs://mybucket/. Однако вам не нужно выполнять развертывание в выходной корзине; Cloud Build поддерживает развертывание в GKE, Cloud Functions и Cloud Run, а также в App Engine.

В конечном счете, этот шаг будет сильно зависеть от того, какое приложение вы создаете, поэтому мы не можем написать пошаговое руководство для всех. Мы рекомендуем прочитать обзор конфигурации Google, чтобы узнать больше.

Настройка облачного источника и облачной сборки

Когда у вас есть конфигурация сборки, вы можете настроить Cloud Build для обработки фактических сборок. Cloud Build получает свой источник от Cloud Source, собственного решения Google, размещенного на Git. Если вы хотите использовать свой собственный git, вы можете связать внешнюю учетную запись или просто настроить Cloud Source в качестве вторичного удаленного выпуска.

Перейдите в Cloud Source и создайте новый репозиторий. Вы можете войти с помощью Github или Bitbucket, чтобы связать внешнюю учетную запись и выбрать репозиторий, или просто создать новую и добавить ее в качестве дополнительного удаленного.

Перейдите в Cloud Build и нажмите «Настроить триггер сборки» на панели инструментов.

Дайте ему имя, выберите исходный репозиторий и выберите, когда вы хотите запустить этот триггер. Вы можете срабатывать на основе коммитов в определенной ветке, новых тегов или запросов на вытягивание. Вы также можете использовать регулярное выражение для сопоставления имен ветвей.

Вы захотите оставить здесь значение по умолчанию для файла конфигурации Cloud Build, но если вы дали ему другое имя или поместили его по другому пути, вы можете выбрать это здесь. У вас также есть возможность установить пользовательские переменные, что позволит вам повторно использовать конфигурацию с несколькими триггерами в разных ветвях.

Нажмите «Создать», и триггер появится на панели инструментов. Здесь вы можете запустить триггер вручную, чтобы проверить свои настройки.

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