gcp_cloudbuild_trigger – Создаёт триггер GCP
Новая версия с 2.8.
Обзор
- Настройка автоматического сборки в ответ на изменения в репозитории исходного кода.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |||
|---|---|---|---|---|---|
| auth_kind строка / обязательно |
| Тип используемых учетных данных. | |||
| build словарь | Содержимое шаблона сборки. Должен быть указан либо файл, либо шаблон сборки. | ||||
| images список | Список изображений, которые необходимо загрузить после успешного выполнения всех шагов сборки. Изображения загружаются с использованием учетных данных сервисного аккаунта сборщика. Хэши загруженных изображений будут сохранены в поле результатов ресурса сборки. Если какой-либо из изображений не удалось загрузить, статус сборки помечается как ОШИБКА. | ||||
| steps список | Операции, которые необходимо выполнить в рабочей области. | ||||
| args список | Список аргументов, которые будут переданы шагу при его запуске. Если изображение, используемое для запуска контейнера шага, имеет точку входа, аргументы используются как аргументы этой точки входа. Если изображение не определяет точку входа, первый элемент в аргументах используется как точка входа, а остальные — как аргументы. | ||||
| dir строка | Рабочий каталог, используемый при запуске контейнера этого шага. Если это относительный путь, он относительный к рабочему каталогу сборки. Если это абсолютный путь, он может находиться вне рабочего каталога сборки, в этом случае содержимое пути может не сохраняться между запусками шагов сборки, если для этого пути не указан том. Если сборка указывает `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 логическое |
| Отключен ли триггер. Если true, триггер никогда не приведет к сборке. | |||
| env_type строка | Указывает, в какой среде Ansible выполняется этот модуль. Это следует устанавливать только в том случае, если вы знаете, что делаете. Это изменяет только строку User Agent для любых запросов API. | ||||
| 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 jsonarg | Содержимое JSON-файла сервисного аккаунта, либо в виде словаря, либо как JSON-строка, которая его представляет. | ||||
| service_account_email строка | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount, и пользователь не хочет использовать адрес по умолчанию. | ||||
| service_account_file путь | Путь к файлу JSON учетной записи службы, если тип serviceaccount выбран в качестве типа. | ||||
| 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, используя переменную среды c(gcp_service_account_file).
- для аутентификации можно установить service_account_contents, используя переменную среды c(GCP_SERVICE_ACCOUNT_CONTENTS).
- для аутентификации можно установить service_account_email, используя переменную среды
GCP_SERVICE_ACCOUNT_EMAIL. - для аутентификации можно установить 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 complex | success | Содержимое шаблона сборки. Должен быть указан либо файл, либо шаблон сборки. | |||
| images list | success | Список изображений, которые необходимо загрузить после успешного выполнения всех этапов сборки. Изображения загружаются с использованием учетных данных сервисного аккаунта билдера. Хэши загруженных изображений будут сохранены в поле результатов ресурса Сборка. Если какое-либо из изображений не удаётся загрузить, статус сборки помечается как FAILURE. | |||
| steps complex | success | Операции, которые необходимо выполнить в рабочей области. | |||
| args list | success | Список аргументов, которые будут переданы шагу при его запуске. Если образ, используемый для запуска контейнера шага, имеет точку входа, args используются как аргументы этой точки входа. Если образ не определяет точку входа, первый элемент в args используется как точка входа, а остальные элементы — как аргументы. | |||
| dir string | success | Рабочий каталог, который следует использовать при запуске контейнера этого шага. Если это относительный путь, он относительен к рабочему каталогу сборки. Если это абсолютный путь, он может выходить за пределы рабочего каталога сборки, в этом случае содержимое пути может не сохраняться между выполнением этапов сборки, если для этого пути не указан `volume`. Если сборка указывает `RepoSource` с `dir` и шаг с `dir`, который указывает на абсолютный путь, `dir` `RepoSource` игнорируется для выполнения шага. | |||
| entrypoint string | success | Точка входа, которая должна использоваться вместо точки входа по умолчанию образа шага сборки. Если не задано, используется точка входа по умолчанию образа. | |||
| env list | success | Список определений переменных среды, которые необходимо использовать при выполнении шага. Элементы имеют вид "KEY=VALUE", где переменной среды "KEY" присваивается значение "VALUE". | |||
| id string | success | Уникальный идентификатор этого этапа сборки, используемый в `wait_for` для ссылки на этот этап сборки в качестве зависимости. | |||
| name string | success | Имя образа контейнера, который будет запускать данный этап сборки. Если образ доступен в кэше демона Docker хоста, он будет запущен непосредственно. Если нет, хост сначала попытается его скачать, используя учетные данные сервисного аккаунта билдера, если это необходимо. Кэш демона Docker уже содержит самые последние версии всех официально поддерживаемых этапов сборки (https://github.com/GoogleCloudPlatform/cloud-builders). Демон Docker также кэширует многие слои для некоторых популярных образов, таких как "ubuntu", "debian", но они будут обновляться в момент попытки их использования. Если вы создали образ на предыдущем этапе сборки, он будет сохранён в кэше демона Docker хоста и доступен для использования на последующих этапах сборки. | |||
| secretEnv list | success | Список переменных среды, которые зашифрованы с помощью криптографического ключа службы управления ключами Cloud. Эти значения должны быть указаны в `Secret` сборки. | |||
| timeout string | success | Предельное время выполнения этого этапа сборки. Если не определено, у шага нет лимита времени, и он будет продолжать выполняться до завершения или истечения времени ожидания самой сборки. | |||
| timing string | success | Только для вывода. Содержит информацию о времени выполнения этого этапа сборки. | |||
| volumes complex | success | Список томов, которые нужно смонтировать в этап сборки. Каждый том создаётся как пустой том до выполнения этапа сборки. По завершении сборки тома и их содержимое удаляются. Использование именованного тома только в одном шаге недопустимо, так как это указывает на запрос сборки с неправильной конфигурацией. | |||
| name string | success | Имя монтируемого тома. Имена томов должны быть уникальными для каждого этапа сборки и должны быть допустимыми именами для томов Docker. Каждый именованный том должен использоваться как минимум двумя этапами сборки. | |||
| path string | success | Путь для монтирования тома. Пути должны быть абсолютными и не должны конфликтовать с другими путями томов на том же этапе сборки или с определенными зарезервированными путями томов. | |||
| waitFor list | success | Идентификатор(ы) шага(ов), от которых зависит этот этап сборки. Этот этап сборки не начнется, пока все этапы сборки в `wait_for` не будут выполнены успешно. Если `wait_for` пуст, этот этап сборки начнется, когда все предыдущие этапы сборки в списке `Build.Steps` будут выполнены успешно. | |||
| tags list | success | Теги для аннотации ресурса Сборка. Это не теги Docker. | |||
| createTime string | success | Время создания триггера. | |||
| description string | success | Описание триггера для удобства чтения. | |||
| disabled boolean | success | Отключен ли триггер. Если значение true, триггер никогда не приведет к сборке. | |||
| filename string | success | Путь (от корневого каталога источника) к файлу, содержимое которого используется для шаблона. Должен быть указан либо файл, либо шаблон сборки. | |||
| id string | success | Уникальный идентификатор триггера. | |||
| ignoredFiles list | success | ignoredFiles и includedFiles — это шаблоны соответствия файлов, использующие http://godoc/pkg/path/filepath#Match с расширением поддержки `**`. Если ignoredFiles и изменённые файлы оба пусты, они не используются для определения того, нужно ли запускать сборку. Если ignoredFiles не пусто, мы игнорируем все файлы, соответствующие шаблонам ignored_file. Если изменения не содержат файлов, которые не соответствуют шаблонам ignoredFiles, сборка не запускается. | |||
| includedFiles list | success | ignoredFiles и includedFiles — это шаблоны соответствия файлов, использующие http://godoc/pkg/path/filepath#Match с расширением поддержки `**`. Если какие-либо из изменённых файлов в коммите проходят фильтр ignoredFiles, а includedFiles пусто, то с точки зрения этого фильтра сборка должна быть запущена. Если какие-либо из изменённых файлов в коммите проходят фильтр ignoredFiles, а includedFiles не пусто, то мы убеждаемся, что хотя бы один из этих файлов соответствует шаблону includedFiles. Если нет, сборка не запускается. | |||
| substitutions dictionary | success | Данные подстановок для ресурса Сборка. | |||
| triggerTemplate complex | success | Шаблон, описывающий типы изменений в исходном коде, которые запускают сборку. Имена ветвей и тегов в шаблонах триггеров интерпретируются как регулярные выражения. Любое изменение ветви или тега, соответствующее этому регулярному выражению, запустит сборку. | |||
| branchName string | success | Имя ветви для сборки. Должен быть указан один из branchName, tag или SHA коммита. | |||
| commitSha string | success | Явный SHA-код коммита для сборки. Должно быть указано ровно одно из значения: имя ветки, тега или SHA-код коммита. | |||
| dir string | success | Директория, относительно корня исходного кода, в которой должна выполняться сборка. Это должен быть относительный путь. Если для шага указана директория, и это абсолютный путь, это значение игнорируется для выполнения этого шага. | |||
| 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.9/modules/gcp_cloudbuild_trigger_module.html