Пользователь с правами разработчика или администратора DevOps может создавать настраиваемые сценарии, расширяющие возможности Code Stream.
С помощью таких сценариев службу Code Stream можно интегрировать с собственными средствами непрерывной интеграции (Continuous Integration, CI) и непрерывного предоставления (Continuous Delivery, CD), а также API-интерфейсами для сборки, тестирования и развертывания приложений. Настраиваемые сценарии особенно полезны в случаях, когда API-интерфейсы приложений не размещаются в общем доступе.
Настраиваемый сценарий может делать практически все, что требуется для интеграции инструментов сборки, тестирования и развертывания с Code Stream. Например, сценарий может взаимодействовать с рабочей областью конвейера для поддержки задач непрерывной интеграции, которые обеспечивают сборку и тестирование приложения, а также задач непрерывного предоставления, которые обеспечивают развертывание приложения. Сценарий можно отправлять сообщения в Slack по завершении работы конвейера, а также выполнять большое количество других функций.
Рабочая область конвейера Code Stream поддерживает Docker и Kubernetes для выполнения задач непрерывной интеграции и настраиваемых задач.
Дополнительные сведения о настройке рабочей области см. в разделе Настройка рабочей области конвейера.
Настраиваемый сценарий должен быть написан на одном из поддерживаемых языков. В сценарии прописывается бизнес-логика и определяются входные и выходные данные. К выходным относятся, помимо прочего, такие типы данных, как число, строка, текст и пароль. Можно создать несколько версий настраиваемого сценария с разной бизнес-логикой, входными и выходными данными.
Созданные сценарии хранятся в экземпляре Code Stream. Можно импортировать код YAML для создания настраиваемой интеграции или экспортировать сценарий в виде файла YAML, чтобы использовать его в другом экземпляре Code Stream.
Опубликованная версия сценария выполняется в рамках настраиваемой задачи конвейера. Если опубликованных версий несколько, можно указать, что одна из них является последней, чтобы при выборе настраиваемой задачи она отображалась как latest -->.
Если в конвейере используется настраиваемая интеграция, то при попытке ее удаления появляется сообщение об ошибке, указывающее на то, что ее нельзя удалить.
При удалении настраиваемой интеграции удаляются все версии настраиваемого сценария. Если в существующем конвейере есть настраиваемая задача, в которой применяется какая-либо версия этого сценария, выполнение этого конвейера завершится сбоем. Чтобы выполнение существующих конвейеров не завершалось сбоем, неиспользуемую версию сценария можно обозначить как устаревшую или отозвать. Если эта версия не используется ни одним из конвейеров, ее можно удалить.
Действия... | Сведения о действии... |
---|---|
Добавьте настраиваемую задачу в конвейер. |
Настраиваемая задача:
|
Выберите сценарий в настраиваемой задаче. |
Объявите входные и выходные свойства в сценарии. |
Сохраните конвейер, затем включите и запустите его. |
В ходе работы конвейера настраиваемая задача вызывает указанную версию сценария и запускает его бизнес-логику. В результате ваше средство сборки, тестирования и развертывания интегрируется со службой Code Stream. |
После завершения работы конвейера просмотрите сведения о выполнении задач и этапов. |
Убедитесь, что результаты работы конвейера соответствуют ожиданиям. |
При использовании настраиваемой задачи, которая вызывает версию настраиваемой интеграции, можно добавить настраиваемые переменные среды в качестве пар «имя — значение» на вкладке Рабочая область конвейера. Когда образ построителя создает контейнер рабочей области, который выполняет задачу непрерывной интеграции (CI) и развертывает образ, Code Stream передает переменные среды в этот контейнер.
Например, если для экземпляра Code Stream требуется веб-прокси, а для создания контейнера для настраиваемой интеграции используется узел Docker, Code Stream запускает конвейер и передает переменные настроек веб-прокси в этот контейнер.
Имя | Значение |
---|---|
HTTPS_PROXY | http://10.0.0.255:1234 |
https_proxy | http://10.0.0.255:1234 |
NO_PROXY | 10.0.0.32, *.dept.vsphere.local |
no_proxy | 10.0.0.32, *.dept.vsphere.local |
HTTP_PROXY | http://10.0.0.254:1234 |
http_proxy | http://10.0.0.254:1234 |
PATH | /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
В пользовательском интерфейсе отобразятся пары «имя — значение», например следующие.
В этом примере создается настраиваемая интеграция, которая связывает службу Code Stream с экземпляром Slack и публикует сообщения в канале Slack.
Необходимые условия
- Чтобы написать настраиваемый сценарий, необходимо использовать язык Python 2, Python 3 или Node.js либо один из языков командных оболочек (Bash, sh или zsh).
- Создайте образ контейнера с помощью установленного файла Node.js или среды выполнения Python.
Процедура
Результаты
Поздравляем! Создан сценарий настраиваемой интеграции, который связывает службу Code Stream с экземпляром Slack и публикует сообщения в канале Slack.
Дальнейшие действия
Создайте дополнительные настраиваемые интеграции, поддерживающие использование настраиваемых задач в конвейерах и расширяющие возможности службы Code Stream по автоматизации жизненного цикла выпуска программного обеспечения.