также доступно по адресу
[EN] https://www.bluebirz.net/en/automate-your-project-with-gcb/
[TH] https://www .bluebirz.net/th/automate-your-project-with-gcb-th/

Автоматическое развертывание — полезная схема, связанная с концепциями Git. Мы можем писать код для многих проектов и отправлять его в git для контроля версий. Затем мы должны извлечь выгоду из этого, чтобы доставить этот продукт на наши платформы.

Вот ссылка, которую я написал о том, как начать с git.



Что такое CI/CD

CI/CD означает «непрерывная интеграция/непрерывная доставка». Это важная настройка для автоматического развертывания.

Непрерывная интеграция описывает, как мы можем интегрировать исходный код из git и автоматизировать тестирование. Непрерывная доставка идет дальше, доставляя полностью протестированный код для развертывания на серверах.

Работа выполняется по шагам, определенным в определении сборки, например. модульное тестирование, затем интеграционное тестирование, наконец, развертывание.

Что такое Google Cloud Build

Google Cloud Build — это один из инструментов CI/CD, другие, которые вы можете услышать, например, называются Jenkins и Github Action.

Когда мы включили Google Cloud Build API, мы готовы к этому.

Это история сборки. Все сборки можно посмотреть здесь.

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

Мы можем подключиться к другим службам, таким как отправка уведомлений в Google Chat, когда сборка будет завершена. См. ссылку ниже.



На этот раз мы собираемся развернуть конвейер CI/CD в Google Cloud Build. Пойдем!

Квест сегодня

Давайте представим историю: мы хотим загрузить проверенные файлы JSON из нашего репозитория в Google Cloud Storage. Шаги должны быть:

  1. Убедитесь, что все файлы JSON верны
  2. Скопируйте все файлы JSON в Google Cloud Storage.

Заинтересованы? Пойдем!

Подключиться к репозиторию

Существует несколько коннекторов от многих поставщиков git для Google Cloud Build. Я использую Github, поэтому хочу показать здесь два самых простых способа.

1. Приложение на гитхабе

Мы можем просто установить приложение Cloud Build Github до конца и создать триггер для соединения. Приложение находится здесь, но мы можем установить его, выполнив следующие действия.

(1) Подключить репозиторий

(2) Аутентификация и установка приложения

(3) Установить на странице Github

(4) Выберите репо

2. Отразите репозиторий

Это решение также простое. Мы можем создать репозиторий в Google Cloud Source Repository, отражая реальный репозиторий в Github или BitBucket. Следуй этим шагам.

(1) создать репо в Cloud Source Repo

Первым делом создайте репозиторий в Google Cloud Source Repository. Перейдите на https://source.cloud.google.com/ и создайте репо.

(2) Подключить внешний репозиторий

(3) Авторизоваться на Github

(4) Выберите репо

(5) Зеркало завершено

Создать триггер

Далее мы можем создать триггер для выполнения задания CI/CD.

Мы можем вручную создать триггер в Интернете по адресу https://console.cloud.google.com/cloud-build/triggers. В качестве альтернативы используйте команду gcloud, подобную этой.

1. Подключите репозиторий через приложение Github.

gcloud beta builds triggers create github \
--name=<TRIGGER_NAME> \
--region=<REGION> \
--repo-name=<REPO_NAME> \
--repo-owner=<OWNER_NAME> \
--branch-pattern=<BRANCH_PATTERN> \
--build-config=<CLOUDBUILD_YAML_FILEPATH>
  • TRIGGER_NAME: имя этого триггера. Обычно указывают имя проекта, среду и ветку.
  • REGION: область триггера
  • REPO_NAME: имя исходного репо.
  • OWNER_NAME: владелец репозитория
  • BRANCH_PATTERN: шаблон ветвления, например. ^main$ означает ветку "main" или ^feature-.*означает ветку, начинающуюся с "feature-"
  • CLOUDBUILD_YAML_FILEPATH: путь определения сборки. Обычно используйте «cloudbuild.yaml» для Google Cloud Build здесь.

2. Подключить репо через зеркалирование

gcloud beta builds triggers create cloud-source-repositories \
--name=<TRIGGER_NAME> \
--repo=<REPO_NAME> \
--branch-pattern=<BRANCH_PATTERN> \
--build-config=<CLOUDBUILD_YAML_FILEPATH>

Проверьте триггер

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

Настроить файл Cloud Build

Это основная часть CI/CD. Каждый инструмент CI/CD использует для работы свой собственный формат, например Google Cloud Build.

Начните с ключа steps, за которым следует список.

Один элемент в списке должен иметь name имени изображения и args аргументов изображения.

Например выше, есть 2 шага

  1. Шаг имеет id 'check-json'. Этот шаг основан на изображении name 'gcloud'. Это waitFor ничего, да шаг можно выполнить сразу. Как только образ загружен и готов, мы создаем его и получаем доступ к entrypoint «bash» и предоставляем args, который «обновляет, устанавливает «jq» и выполняет «jq empty», чтобы проверить, не являются ли какие-либо файлы JSON неправильными».
  2. id этого шага — «copy-json». Он работает на образе name 'gsutil'. Это waitFor шаг 'check-json', который необходимо выполнить первым. Как только образ готов, мы приказываем ему скопировать ('cp') в корзину через его args.

Для получения всех доступных ключей и схем перейдите по этой ссылке.



Сделать коммит и нажать

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

Если вы используете приложение, мы можем проверить сборку на странице проверок Github, щелкнув синюю галочку (или красный крестик в случае неудачи).

Он будет перенаправлен на просмотр чеков.

Проверить результат сборки

Хорошо, сборка прошла успешно, и мы можем проверить, успешно ли прошло наше развертывание.

Да, файлы есть. Квест завершен.

Исходный код можно найти здесь.