gcp_cloudbuild_trigger – Создаёт триггер GCP
Новая версия с 2.8.
Обзор
- Настройка автоматического сборки в ответ на изменения в репозитории исходного кода.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |||
|---|---|---|---|---|---|
| auth_kind строка / обязательно |
| Тип используемых учетных данных. | |||
| build - | Содержание шаблона сборки. Должен быть указан либо файл, либо шаблон сборки. | ||||
| images - | Список изображений, которые будут загружены после успешного выполнения всех шагов сборки. Изображения загружаются с использованием учетных данных сервисного аккаунта сборщика. Хэши загруженных изображений будут сохранены в поле результатов ресурса сборки. Если какое-либо изображение не удастся загрузить, статус сборки будет помечен как «ОШИБКА». | ||||
| steps - | Операции, которые будут выполнены в рабочей области. | ||||
| args - | Список аргументов, которые будут переданы шагу при его запуске. Если для изображения, используемого для запуска контейнера шага, определена точка входа, args используются в качестве аргументов к этой точке входа. Если в изображении точка входа не определена, первый элемент в args используется в качестве точки входа, а остальные — в качестве аргументов. | ||||
| dir - | Рабочая директория, используемая при запуске контейнера данного шага. Если это относительный путь, он относительный к рабочей директории сборки. Если это абсолютный путь, он может находиться вне рабочей директории сборки, в этом случае содержимое пути может не сохраняться между выполнениями шагов сборки, если для этого пути не указан `volume`. Если сборка указывает `RepoSource` с `dir`, и шаг с `dir`, который указывает абсолютный путь, то `RepoSource` `dir` игнорируется для выполнения шага. | ||||
| entrypoint - | Точка входа, которая будет использоваться вместо значения по умолчанию для изображения шага сборки. Если не задано, используется значение по умолчанию изображения. | ||||
| env - | Список определений переменных окружения, которые будут использоваться при выполнении шага. Элементы имеют вид «KEY=VALUE», где переменной окружения «KEY» присваивается значение «VALUE». | ||||
| id - | Уникальный идентификатор для данного шага сборки, используемый в `wait_for` для ссылки на этот шаг сборки в качестве зависимости. | ||||
| name - | Имя контейнерного образа, который будет выполнять данный шаг сборки. Если образ доступен в кэше демона Docker хоста, он будет запущен непосредственно. В противном случае хост попытается сначала загрузить образ, используя учетные данные сервисного аккаунта сборщика, если необходимо. В кэше демона Docker хоста уже имеются самые последние версии всех официально поддерживаемых шагов сборки (https://github.com/GoogleCloudPlatform/cloud-builders.) Дэмон Docker также кэширует многие слои для некоторых популярных образов, таких как "ubuntu", "debian", но они обновляются в момент попытки их использования. Если вы создали образ на предыдущем шаге сборки, он будет сохранён в кэше демона Docker хоста и доступен для использования на последующих шагах сборки. | ||||
| secret_env - | Список переменных среды, которые зашифрованы с помощью криптографического ключа Cloud Key Management Service. Эти значения должны быть указаны в `Secret` сборки. | ||||
| timeout - | Время ожидания для выполнения данного шага сборки. Если не задано, у шага нет лимита времени, и он будет выполняться до завершения или завершения самой сборки. | ||||
| timing - | Только для вывода. Содержит информацию о времени выполнения данного шага сборки. | ||||
| volumes - | Список томов, которые нужно смонтировать в шаг сборки. Каждый том создаётся как пустой том до начала выполнения шага сборки. По завершении сборки тома и их содержимое удаляются. Использование именованного тома только в одном шаге является недопустимым, так как это указывает на запрос сборки с неправильной конфигурацией. | ||||
| name - | Имя тома для монтирования. Имена томов должны быть уникальными для каждого шага сборки и должны быть допустимыми именами для томов Docker. Каждый именованный том должен использоваться как минимум двумя шагами сборки. | ||||
| path - | Путь для монтирования тома. Пути должны быть абсолютными и не могут конфликтовать с другими путями томов в том же шаге сборки или с определёнными резервированными путями томов. | ||||
| wait_for - | Идентификатор(ы) шага(ов), от которых зависит данный шаг сборки. Данный шаг сборки не начнётся, пока все шаги сборки в `wait_for` не будут выполнены успешно. Если `wait_for` пусто, этот шаг сборки начнётся, когда все предыдущие шаги сборки в списке `Build.Steps` будут успешно завершены. | ||||
| tags - | Теги для аннотирования сборки. Это не теги Docker. | ||||
| description - | Описание триггера для отображения пользователю. | ||||
| disabled boolean |
| Отключён ли триггер. Если значение true, триггер никогда не приведёт к созданию сборки. | |||
| filename - | Путь к файлу, начиная с корневого каталога исходного кода, содержимое которого используется для шаблона. Должен быть указан либо файл, либо шаблон сборки. | ||||
| id - | Уникальный идентификатор для триггера. | ||||
| ignored_files - | ignoredFiles и includedFiles — это шаблоны соответствия файлам, использующие http://godoc/pkg/path/filepath#Match, расширенные поддержкой `**`. Если ignoredFiles и изменённые файлы оба пусты, то они не используются для определения того, нужно ли запускать сборку. Если ignoredFiles не пусто, то мы игнорируем любые файлы, которые соответствуют любому из шаблонов ignored_file. Если изменение не содержит файлов, которые находятся вне шаблонов ignoredFiles, то мы не запускаем сборку. | ||||
| included_files - | ignoredFiles и includedFiles — это шаблоны соответствия файлам, использующие http://godoc/pkg/path/filepath#Match, расширенные поддержкой `**`. Если любые из изменённых в коммите файлов проходят фильтр ignoredFiles, а includedFiles пусто, то, насколько касается этого фильтра, мы должны запустить сборку. Если любые из изменённых в коммите файлов проходят фильтр ignoredFiles, а includedFiles не пусто, то мы убеждаемся, что хотя бы один из этих файлов соответствует шаблону includedFiles. Если нет, то мы не запускаем сборку. | ||||
| project строка | Проект Google Cloud Platform для использования. | ||||
| scopes список | Массив используемых областей. | ||||
| service_account_contents строка | Строка, представляющая содержимое файла JSON сервисного аккаунта. Это не должно передаваться в виде словаря, а в виде строки с точным содержимым файла JSON сервисного аккаунта (валидный JSON). | ||||
| service_account_email строка | Необязательный адрес электронной почты сервисного аккаунта, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. | ||||
| service_account_file путь | Путь к файлу JSON учетной записи службы, если в качестве типа выбрана учетная запись службы. | ||||
| state - |
| Указывает, должен ли данный объект существовать в GCP | |||
| substitutions - | Данные подстановок для ресурса Build. | ||||
| trigger_template - | Шаблон, описывающий типы изменений исходного кода, которые запускают сборку. Имена ветвей и тегов в шаблонах триггеров интерпретируются как регулярные выражения. Любое изменение ветви или тега, соответствующее этому регулярному выражению, запустит сборку. | ||||
| branch_name - | Имя ветви для сборки. Должен быть указан один из: имя ветви, тега или SHA коммита. | ||||
| commit_sha - | Явный SHA коммита для сборки. Должен быть указан один из: имя ветви, тега или SHA коммита. | ||||
| dir - | Директория, относительная к корню исходного кода, в которой следует выполнить сборку. Это должен быть относительный путь. Если для шага задан dir как абсолютный путь, это значение игнорируется для выполнения этого шага. | ||||
| project_id - | Идентификатор проекта, владеющего Cloud Source Repository. Если опущено, предполагается идентификатор проекта, запрашивающего сборку. | ||||
| repo_name - | По умолчанию: "default" | Имя Cloud Source Repository. Если опущено, предполагается имя "default". | |||
| tag_name - | Имя тега для сборки. Должен быть указан один из: имя ветви, тега или SHA коммита. | ||||
Примечания
Примечание
- Справочник API: https://cloud.google.com/cloud-build/docs/api/reference/rest/
- Автоматизация сборок с помощью триггеров сборок: https://cloud.google.com/cloud-build/docs/running-builds/automate-builds
- Идентификатор этого ресурса создаётся API после первого создания ресурса. Если вы хотите управлять этим ресурсом после создания, вам необходимо скопировать сгенерированный идентификатор в конфигурационный файл. В противном случае будут создаваться новые триггеры при последующих запусках.
- Для аутентификации можно установить service_account_file с помощью переменной среды
GCP_SERVICE_ACCOUNT_FILE. - Для аутентификации можно установить service_account_email с помощью переменной среды
GCP_SERVICE_ACCOUNT_EMAIL. - Для аутентификации можно установить service_account_contents с помощью переменной среды
GCP_SERVICE_ACCOUNT_CONTENTS. - Для аутентификации можно установить auth_kind с помощью переменной среды
GCP_AUTH_KIND. - Для аутентификации можно установить scopes с помощью переменной среды
GCP_SCOPES. - Значения переменных среды будут использоваться только в случае, если значения конфигурационного файла не заданы.
- Параметры service_account_email и service_account_file взаимоисключающие.
Примеры
- name: create a repository
gcp_sourcerepo_repository:
name: projects/{{ gcp_project }}/repos/{{ resource_name }}
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
- name: create a trigger
gcp_cloudbuild_trigger:
trigger_template:
branch_name: master
project_id: test_project
repo_name: test_object
filename: cloudbuild.yaml
project: test_project
auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem"
state: present
Значения возврата
Общие значения возврата документированы здесь, следующие являются полями, уникальными для этого модуля:
| Ключ | Возвращаемое значение | Описание | |||
|---|---|---|---|---|---|
| build сложный | успех | Содержание шаблона сборки. Должен быть указан либо файл, либо шаблон сборки. | |||
| images список | успех | Список изображений, которые необходимо опубликовать после успешного выполнения всех этапов сборки. Изображения публикуются с использованием учетных данных сервисного аккаунта сборщика. Хэши опубликованных изображений будут сохранены в поле результатов ресурса Сборка. Если какое-либо из изображений не удается опубликовать, статус сборки отмечается как ОШИБКА. | |||
| steps сложный | успех | Операции, которые должны быть выполнены в рабочем пространстве. | |||
| args список | успех | Список аргументов, которые будут переданы шагу при его запуске. Если изображение, используемое для запуска контейнера шага, имеет точку входа, аргументы используются в качестве аргументов для этой точки входа. Если изображение не определяет точку входа, первый элемент в аргументах используется в качестве точки входа, а оставшиеся элементы используются в качестве аргументов. | |||
| dir строка | успех | Рабочий каталог, который следует использовать при запуске контейнера этого шага. Если это значение является относительным путем, оно относительно рабочего каталога сборки. Если это значение является абсолютным, оно может находиться вне рабочего каталога сборки, в этом случае содержимое пути может не сохраняться между выполнением этапов сборки, если для этого пути не указан том. Если сборка указывает `RepoSource` с `dir` и шаг со `dir`, указывающий абсолютный путь, `dir` `RepoSource` игнорируется для выполнения шага. | |||
| entrypoint строка | успех | Точка входа, которая должна использоваться вместо точки входа по умолчанию изображения шага сборки. Если не установлено, используется точка входа по умолчанию изображения. | |||
| env список | успех | Список определений переменных среды, которые будут использоваться при запуске шага. Элементы имеют вид «KEY=VALUE» для переменной среды «KEY», которой присваивается значение «VALUE». | |||
| id строка | успех | Уникальный идентификатор для этого шага сборки, используемый в `wait_for` для ссылки на этот шаг сборки в качестве зависимости. | |||
| name строка | успех | Имя контейнерного изображения, которое будет запускать этот конкретный шаг сборки. Если изображение доступно в кэше демона Docker хоста, оно будет запущено непосредственно. В противном случае хост попытается сначала скачать изображение, используя учетные данные сервисного аккаунта сборщика при необходимости. В кэше демона Docker уже будут содержаться последние версии всех официально поддерживаемых этапов сборки (https://github.com/GoogleCloudPlatform/cloud-builders). Демон Docker также будет кэшировать многие слои для некоторых популярных изображений, таких как «ubuntu», «debian», но они будут обновлены в момент попытки их использования. Если вы создали изображение на предыдущем шаге сборки, оно будет храниться в кэше демона Docker хоста и доступно для использования на последующих шагах сборки. | |||
| secretEnv список | успех | Список переменных среды, которые зашифрованы с помощью криптоключа службы управления ключами Cloud. Эти значения должны быть указаны в `Secret` сборки. | |||
| timeout строка | успех | Срок выполнения этого шага сборки. Если не определено, у шага нет лимита по времени, и ему будет разрешено продолжать выполняться до тех пор, пока он не завершится или не истечёт время ожидания самой сборки. | |||
| timing строка | успех | Только для вывода. Содержит информацию о времени выполнения этого шага сборки. | |||
| volumes сложный | успех | Список томов, которые необходимо смонтировать в шаг сборки. Каждый том создаётся как пустой том перед выполнением шага сборки. После завершения сборки тома и их содержимое удаляются. Использование именованного тома только в одном шаге неверно, так как это указывает на запрос сборки с неправильной конфигурацией. | |||
| name строка | успех | Имя монтируемого тома. Имена томов должны быть уникальными для каждого шага сборки и должны быть допустимыми именами томов Docker. Каждый именованный том должен использоваться как минимум двумя шагами сборки. | |||
| path строка | успех | Путь, по которому монтируется том. Пути должны быть абсолютными и не должны конфликтовать с другими путями томов на том же шаге сборки или с определёнными зарезервированными путями томов. | |||
| waitFor список | успех | Идентификатор(ы) шага(ов), от которого зависит этот шаг сборки. Этот шаг сборки не начнется, пока все шаги сборки в `wait_for` не завершатся успешно. Если `wait_for` пусто, этот шаг сборки начнется, когда все предыдущие шаги сборки в списке `Build.Steps` завершатся успешно. | |||
| tags список | успех | Теги для аннотации ресурса Сборка. Это не теги Docker. | |||
| createTime строка | успех | Время создания триггера. | |||
| description строка | успех | Описание триггера, понятное человеку. | |||
| disabled булево | успех | Отключен ли триггер. Если true, триггер никогда не приведет к созданию сборки. | |||
| filename строка | успех | Путь к файлу от корневого каталога исходного кода, содержимое которого используется в шаблоне. Должен быть указан либо файл, либо шаблон сборки. | |||
| id строка | успех | Уникальный идентификатор триггера. | |||
| ignoredFiles список | успех | ignoredFiles и includedFiles — это шаблоны файлов, использующие http://godoc/pkg/path/filepath#Match с расширением поддержки `**`. Если ignoredFiles и изменённые файлы пустые, они не используются для определения того, нужно ли запускать сборку. Если ignoredFiles не пустой, игнорируются все файлы, соответствующие шаблонам ignored_file. Если изменения не содержат файлов, которые находятся за пределами шаблонов ignoredFiles, сборка не запускается. | |||
| includedFiles список | успех | ignoredFiles и includedFiles — это шаблоны файлов, использующие http://godoc/pkg/path/filepath#Match с расширением поддержки `**`. Если какие-либо из изменённых в коммите файлов проходят фильтр ignoredFiles и includedFiles пустое, по этому фильтру запускается сборка. Если какие-либо из изменённых в коммите файлов проходят фильтр ignoredFiles и includedFiles не пустое, убеждаемся, что хотя бы один из этих файлов соответствует шаблону includedFiles. Если нет, сборка не запускается. | |||
| substitutions словарь | успех | Данные подстановок для ресурса Сборка. | |||
| triggerTemplate сложный | успех | Шаблон, описывающий типы изменений исходного кода для запуска сборки. Имена ветвей и тегов в шаблонах триггеров интерпретируются как регулярные выражения. Любое изменение ветви или тега, соответствующее этому регулярному выражению, запустит сборку. | |||
| branchName строка | успех | Имя ветви для сборки. Должен быть указан только один из имени ветки, тега или хэша коммита. | |||
| commitSha строка | успех | Явный хэш коммита для сборки. Должен быть указан только один из имени ветки, тега или хэша коммита. | |||
| dir string | success | Директория, относительная к корню источника, в которой нужно запустить сборку. Это должен быть относительный путь. Если для шага указан dir в виде абсолютного пути, это значение игнорируется для выполнения этого шага. | |||
| projectId string | success | Идентификатор проекта, который владеет Cloud Source Repository. Если опущено, используется идентификатор проекта, запрашивающего сборку. | |||
| repoName string | success | Имя Cloud Source Repository. Если опущено, предполагается имя "default". | |||
| tagName string | success | Имя тега для сборки. Должно быть указано ровно одно из имени ветки, тега или SHA коммита. | |||
Статус
- Данный модуль не гарантирует обратную совместимость интерфейса. [превью]
- Данный модуль поддерживается сообществом Ansible. [community]
Авторы
- Google Inc. (@googlecloudplatform)
Подсказка
Если вы заметили какие-либо проблемы в этом руководстве, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/gcp_cloudbuild_trigger_module.html