Ресурс google_cloudbuild_trigger
Синтаксис
Для проверки ресурса Google Trigger используется google_cloudbuild_trigger
Примеры
describe google_cloudbuild_triggers(project: 'chef-gcp-inspec') do
its('count') { should eq 1 }
end
google_cloudbuild_triggers(project: 'chef-gcp-inspec').ids.each do |id|
describe google_cloudbuild_trigger(project: 'chef-gcp-inspec', id: id) do
its('filename') { should eq 'cloudbuild.yaml' }
its('trigger_template.branch_name') { should eq 'trigger-branch' }
its('trigger_template.repo_name') { should eq 'trigger-repo' }
its('trigger_template.project_id') { should eq 'trigger-project' }
end
end
Свойства
Свойства, к которым можно обратиться из ресурса google_cloudbuild_trigger:
id- Уникальный идентификатор триггера.
name- Имя триггера. Должно быть уникальным в рамках проекта.
description- Описание триггера, понятное пользователю.
disabled- Включён или выключен триггер. Если true, триггер никогда не вызовет сборку.
create_time- Время создания триггера.
substitutions- Данные подстановок для ресурса Build.
filename- Путь к файлу, начиная с корня источника, содержимое которого используется в качестве шаблона. Должен быть указан либо имя файла, либо шаблон сборки.
ignored_files- ignoredFiles и includedFiles — соответствия шаблонам файлов с использованием https://golang.org/pkg/path/filepath/#Match, расширенные поддержкой
**. Если ignoredFiles и changedFiles пустые, они не используются для определения необходимости запуска сборки. Если ignoredFiles не пустой, то любые файлы, соответствующие любому из шаблонов ignored_file, игнорируются. Если изменения не содержат файлов, которые находятся вне шаблонов ignoredFiles, сборка не запускается. included_files- ignoredFiles и includedFiles — соответствия шаблонам файлов с использованием https://golang.org/pkg/path/filepath/#Match, расширенные поддержкой
**. Если любые из изменённых файлов в коммите проходят фильтр ignoredFiles, а includedFiles пустой, по этому фильтру сборка должна быть запущена. Если любые из изменённых файлов в коммите проходят фильтр ignoredFiles, а includedFiles не пустой, то мы проверяем, что хотя бы один из этих файлов соответствует шаблону includedFiles. Если нет, сборка не запускается. trigger_template- Шаблон, описывающий типы изменений источника, которые запускают сборку. Имена ветвей и тегов в шаблонах триггера интерпретируются как регулярные выражения. Любое изменение ветви или тега, соответствующее этому регулярному выражению, запустит сборку.
project_id- Идентификатор проекта, которому принадлежит Cloud Source Repository. Если опущено, предполагается идентификатор проекта, запросившего сборку.
repo_name- Имя Cloud Source Repository. Если опущено, предполагается имя “default”.
dir- Директория, относительная к корню источника, в которой будет выполнена сборка. Должен быть относительный путь. Если для шага указан абсолютный путь, это значение игнорируется для выполнения этого шага.
branch_name- Имя ветки для сборки. Должен быть указан один из имени ветки, тега или SHA коммита. Это поле представляет собой регулярное выражение.
tag_name- Имя тега для сборки. Должен быть указан один из имени ветки, тега или SHA коммита. Это поле представляет собой регулярное выражение.
commit_sha- Явный SHA коммита для сборки. Должен быть указан один из имени ветки, тега или SHA коммита.
github- (Только бета-версия) Описывает конфигурацию триггера, который создаёт сборку всякий раз, когда получено событие GitHub.
owner- Владелец репозитория. Например: Владелец для https://github.com/googlecloudplatform/cloud-builders — “googlecloudplatform”.
name- Имя репозитория. Например: Имя для https://github.com/googlecloudplatform/cloud-builders — “cloud-builders”.
pull_request- Фильтр для сопоставления изменений в запросах на вытягивание. Укажите только одно из pullRequest или push.
branch- Регулярное выражение для ветвей, которым нужно соответствовать.
comment_control- Блокировать сборки по комментарию “/gcbrun” от владельца репозитория или соавтора.
Возможные значения:
- COMMENTS_DISABLED
- COMMENTS_ENABLED
push- Фильтр для сопоставления изменений в refs, таких как ветки или теги. Укажите только одно из pullRequest или push.
branch- Регулярное выражение для ветвей, которым нужно соответствовать. Укажите только одно из branch или tag.
tag- Регулярное выражение для тегов, которым нужно соответствовать. Укажите только одно из branch или tag.
build- Содержимое шаблона сборки. Должен быть указан либо имя файла, либо шаблон сборки.
tags- Теги для аннотации сборки. Это не теги Docker.
images- Список изображений, которые нужно будет опубликовать после успешного завершения всех этапов сборки. Изображения публикуются с помощью учетных данных сервисного аккаунта сборщика. Хэши опубликованных изображений будут храниться в поле результатов ресурса Build. Если какой-либо из изображений не удастся опубликовать, статус сборки помечается как FAILURE.
timeout- Время, в течение которого эта сборка должна быть разрешена для выполнения, с точностью до секунды. Если это время истечёт, работа над сборкой прекратится, и статус сборки будет TIMEOUT. Это время ожидания должно быть равно или больше суммы ограничений по времени для шагов сборки в рамках сборки. Ожидаемый формат — количество секунд, за которым следует s. Значение по умолчанию — десять минут (600s).
steps- Операции, которые должны выполняться в рабочей области.
name- Имя контейнерного изображения, которое будет выполнять этот конкретный этап сборки. Если изображение доступно в кэше демона Docker хоста, оно будет запущено напрямую. В противном случае хост попытается сначала извлечь изображение, используя учетные данные сервисного аккаунта сборщика при необходимости. В кэше демона Docker уже будут самые последние версии всех официально поддерживаемых этапов сборки (https://github.com/GoogleCloudPlatform/cloud-builders). Демон Docker также будет кэшировать многие слои для некоторых популярных изображений, таких как “ubuntu”, “debian”, но они будут обновляться при попытке их использования. Если вы создали изображение на предыдущем этапе сборки, оно будет храниться в кэше демона Docker хоста и доступно для использования на последующих этапах сборки.
args- Список аргументов, которые будут представлены шагу при запуске. Если изображение, используемое для запуска контейнера шага, имеет точку входа, args используются в качестве аргументов для этой точки входа. Если изображение не определяет точку входа, первый элемент в args используется в качестве точки входа, а остальные будут использоваться в качестве аргументов.
env- Список определений переменных среды, которые будут использоваться при выполнении шага. Элементы имеют вид «KEY=VALUE» для переменной среды «KEY», которой присваивается значение «VALUE».
id- Уникальный идентификатор этого этапа сборки, используемый в
wait_forдля ссылки на этот этап сборки в качестве зависимости. entrypoint- Точка входа, которая будет использоваться вместо стандартной точки входа изображения этапа сборки. Если не задано, используется стандартная точка входа изображения.
dir- Рабочий каталог для использования при выполнении контейнера этого шага. Если это значение — относительный путь, оно относительно рабочего каталога сборки. Если это значение — абсолютный путь, он может находиться за пределами рабочего каталога сборки, в этом случае содержимое пути может не сохраняться между запусками этапов сборки, если для этого пути не задан
volume. Если сборка указываетRepoSourceсdirи шаг имеетdir, который указывает на абсолютный путь,RepoSourcedirигнорируется для выполнения шага. secret_env- Список переменных среды, которые шифруются с использованием сервиса управления ключами Cloud Key Management. Эти значения должны быть указаны в
Secretсборки. timeout- Ограничение времени для выполнения этого этапа сборки. Если не определено, у шага нет ограничения по времени, и он будет разрешён до завершения или истечения времени ожидания самой сборки.
timing- Только для чтения. Хранит информацию о времени выполнения этого этапа сборки.
volumes- Список томов для подключения к этапу сборки. Каждый том создаётся как пустой том перед выполнением этапа сборки. По завершении сборки тома и их содержимое удаляются. Использование именованного тома только в одном шаге недопустимо, поскольку это указывает на запрос сборки с неправильной конфигурацией.
name- Имя тома для подключения. Имена томов должны быть уникальными для каждого этапа сборки и должны быть допустимыми именами для томов Docker. Каждый именованный том должен использоваться как минимум двумя этапами сборки.
path- Путь для подключения тома. Пути должны быть абсолютными и не могут конфликтовать с другими путями томов в рамках одного этапа сборки или с некоторыми зарезервированными путями томов.
wait_for- Идентификатор(ы) шага(ов), от которого зависит этот этап сборки. Этот этап сборки не будет запущен, пока все этапы сборки в
wait_forне завершатся успешно. Еслиwait_forпусто, этот этап сборки начнется после успешного завершения всех предыдущих этапов сборки в спискеBuild.Steps.
Разрешения GCP
Убедитесь, что для текущего проекта включён API Cloud Build.
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/google_cloudbuild_trigger/