также доступно по адресу
[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. Шаги должны быть:
- Убедитесь, что все файлы JSON верны
- Скопируйте все файлы 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 шага
- Шаг имеет
id
'check-json'. Этот шаг основан на изображенииname
'gcloud'. ЭтоwaitFor
ничего, да шаг можно выполнить сразу. Как только образ загружен и готов, мы создаем его и получаем доступ кentrypoint
«bash» и предоставляемargs
, который «обновляет, устанавливает «jq» и выполняет «jq empty», чтобы проверить, не являются ли какие-либо файлы JSON неправильными». id
этого шага — «copy-json». Он работает на образеname
'gsutil'. ЭтоwaitFor
шаг 'check-json', который необходимо выполнить первым. Как только образ готов, мы приказываем ему скопировать ('cp') в корзину через егоargs
.
Для получения всех доступных ключей и схем перейдите по этой ссылке.
Сделать коммит и нажать
После завершения отправки и ожидания в течение некоторого времени мы можем увидеть, прошла ли сборка успешно или нет. Если нет, мы можем изменить наш код и нажать еще раз.
Если вы используете приложение, мы можем проверить сборку на странице проверок Github, щелкнув синюю галочку (или красный крестик в случае неудачи).
Он будет перенаправлен на просмотр чеков.
Проверить результат сборки
Хорошо, сборка прошла успешно, и мы можем проверить, успешно ли прошло наше развертывание.
Да, файлы есть. Квест завершен.
Исходный код можно найти здесь.