SlideShare a Scribd company logo
Caché GitHub CI
Лебедюк Эдуард
• Автоматическое получение репозитория GitHub инстансами Caché
• Создание системы CI на COS
Цели проекта
Иерархия классов
Hook
Update Action
GitHub
API
Обновление с помощью task
PreCompile
Compile
PostCompile
UnitTests
Процесс обновления для hook/webhook
Обновление с помощью hook
Set hook=##class(CacheGitHubCI.Hook).%New()
Set hook.Namespace="USER"
Set hook.Owner="intersystems-ru"
Set hook.Repository="test"
Set hook.Branch="master"
Set a1 = ##class(CacheGitHubCI.Action).%New()
Set a1.Type="code"
Set a1.Params="s ^test($zdt($Now(-180)))=""started compiling"""
Set hook.PreCompile=a1
Set a2 = ##class(CacheGitHubCI.Action).%New()
Set a2.Type="classmethod"
Set a2.Namespace="USER"
Set a2.Params="Fileserver.Broker,Init,1"
Set hook.PostCompile=a2
W hook.CreateTask(60)
W hook.%Save()
• Аналогично, но:
– Нужен логин-пароль с администраторским доступом к репозиторию (в начале)
– Нужен сервер со внешним статичным ip
• Преимущества
– Обновления мгновенные
– Нет ненужных обновлений
Обновление с помощью webhook
Код:
Set hook.Username="GitHub Username"
Set hook.Password="GitHub Password"
W hook.CreateHook()
Do hook.%Save()
• Куб
• Дэшборд
• Листинг – История
коммитов
– Автор
– Статус
– Время начала
– Время завершения
– Длительность
– SHA последнего
коммита
• Куб обновляется
автоматически после
изменения hook
Мониторинг
Конец
https://github.com/intersystems-ru/CacheGitHubCI

More Related Content

What's hot

«Как перестать отлаживать асинхронные вызовы и начать жить»​
«Как перестать отлаживать асинхронные вызовы и начать жить»​«Как перестать отлаживать асинхронные вызовы и начать жить»​
«Как перестать отлаживать асинхронные вызовы и начать жить»​
FDConf
 
JS Fest 2018. Лилия Карпенко. Особенности создания IOS / Android Mobile Apps ...
JS Fest 2018. Лилия Карпенко. Особенности создания IOS / Android Mobile Apps ...JS Fest 2018. Лилия Карпенко. Особенности создания IOS / Android Mobile Apps ...
JS Fest 2018. Лилия Карпенко. Особенности создания IOS / Android Mobile Apps ...
JSFestUA
 
aptly: система управления репозиториями пакетов (РИТ-2014)
aptly: система управления репозиториями пакетов (РИТ-2014)aptly: система управления репозиториями пакетов (РИТ-2014)
aptly: система управления репозиториями пакетов (РИТ-2014)Andrey Smirnov
 
Мы делили апельсин
Мы делили апельсинМы делили апельсин
Мы делили апельсин
Olga Lavrentieva
 
Caché github continuous intergration
Caché github continuous intergrationCaché github continuous intergration
Caché github continuous intergration
InterSystems
 
Приемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на CachéПриемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на Caché
InterSystems CEE
 
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
NETFest
 
Создаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровожденияСоздаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровожденияOvadiah Myrgorod
 
Загрузка, обработка, хранение и отдача статики
Загрузка, обработка, хранение и отдача статикиЗагрузка, обработка, хранение и отдача статики
Загрузка, обработка, хранение и отдача статикиKirill Mokevnin
 
10 - Hadoop. Hive
10 - Hadoop. Hive10 - Hadoop. Hive
10 - Hadoop. Hive
Roman Brovko
 
Декларативные даги в Apache Airflow
Декларативные даги в Apache AirflowДекларативные даги в Apache Airflow
Декларативные даги в Apache Airflow
RamblerML
 
JS утиліти WordPress на практиці
JS утиліти WordPress на практиціJS утиліти WordPress на практиці
JS утиліти WordPress на практиці
Shtrih Sruleg
 
Обзор ES2015(ES6)
Обзор ES2015(ES6)Обзор ES2015(ES6)
Обзор ES2015(ES6)
Alex Filatov
 

What's hot (14)

«Как перестать отлаживать асинхронные вызовы и начать жить»​
«Как перестать отлаживать асинхронные вызовы и начать жить»​«Как перестать отлаживать асинхронные вызовы и начать жить»​
«Как перестать отлаживать асинхронные вызовы и начать жить»​
 
JS Fest 2018. Лилия Карпенко. Особенности создания IOS / Android Mobile Apps ...
JS Fest 2018. Лилия Карпенко. Особенности создания IOS / Android Mobile Apps ...JS Fest 2018. Лилия Карпенко. Особенности создания IOS / Android Mobile Apps ...
JS Fest 2018. Лилия Карпенко. Особенности создания IOS / Android Mobile Apps ...
 
aptly: система управления репозиториями пакетов (РИТ-2014)
aptly: система управления репозиториями пакетов (РИТ-2014)aptly: система управления репозиториями пакетов (РИТ-2014)
aptly: система управления репозиториями пакетов (РИТ-2014)
 
Мы делили апельсин
Мы делили апельсинМы делили апельсин
Мы делили апельсин
 
Caché github continuous intergration
Caché github continuous intergrationCaché github continuous intergration
Caché github continuous intergration
 
Приемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на CachéПриемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на Caché
 
Erlang tasty & useful stuff
Erlang tasty & useful stuffErlang tasty & useful stuff
Erlang tasty & useful stuff
 
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
 
Создаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровожденияСоздаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровождения
 
Загрузка, обработка, хранение и отдача статики
Загрузка, обработка, хранение и отдача статикиЗагрузка, обработка, хранение и отдача статики
Загрузка, обработка, хранение и отдача статики
 
10 - Hadoop. Hive
10 - Hadoop. Hive10 - Hadoop. Hive
10 - Hadoop. Hive
 
Декларативные даги в Apache Airflow
Декларативные даги в Apache AirflowДекларативные даги в Apache Airflow
Декларативные даги в Apache Airflow
 
JS утиліти WordPress на практиці
JS утиліти WordPress на практиціJS утиліти WordPress на практиці
JS утиліти WordPress на практиці
 
Обзор ES2015(ES6)
Обзор ES2015(ES6)Обзор ES2015(ES6)
Обзор ES2015(ES6)
 

Viewers also liked

cv i
cv icv i
Bba 2001
Bba 2001Bba 2001
Bba 2001
Monie Joey
 
GLOVER_NFFP_04_Tech_Rpt
GLOVER_NFFP_04_Tech_RptGLOVER_NFFP_04_Tech_Rpt
GLOVER_NFFP_04_Tech_Rpt
James Ervin Glover, Ph.D.
 
AMIP
AMIPAMIP
Xử lý hạ đường huyết ở người bị tiểu đường
Xử lý hạ đường huyết ở người bị tiểu đườngXử lý hạ đường huyết ở người bị tiểu đường
Xử lý hạ đường huyết ở người bị tiểu đườngjaymie257
 
t h a no 2 cv
t h a no 2 cvt h a no 2 cv
t h a no 2 cv
themba sono
 
Построение систем электронного архива и систем управления инженерными данными
Построение систем электронного архива и систем управления инженерными даннымиПостроение систем электронного архива и систем управления инженерными данными
Построение систем электронного архива и систем управления инженерными данными
SAPR-Peterburg
 
Biografi
BiografiBiografi
Biografi
ratu15
 
мята истинная (mint true)
мята истинная (mint true)мята истинная (mint true)
мята истинная (mint true)
Larixko
 
ننننننننننننننننننننننننننننننننننننننن
نننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننن
ننننننننننننننننننننننننننننننننننننننن
rolaalhdethat12345
 
Математическое моделирование поведения морских гидротехнических объектов в ср...
Математическое моделирование поведения морских гидротехнических объектов в ср...Математическое моделирование поведения морских гидротехнических объектов в ср...
Математическое моделирование поведения морских гидротехнических объектов в ср...
SAPR-Peterburg
 
雪ミクハコスコ製作記
雪ミクハコスコ製作記雪ミクハコスコ製作記
雪ミクハコスコ製作記
shiftsphere
 
Вкусное печенье с корицей за 15 минут
Вкусное печенье с корицей за 15 минутВкусное печенье с корицей за 15 минут
Вкусное печенье с корицей за 15 минут
Larixko
 
Titan_IV
Titan_IVTitan_IV

Viewers also liked (14)

cv i
cv icv i
cv i
 
Bba 2001
Bba 2001Bba 2001
Bba 2001
 
GLOVER_NFFP_04_Tech_Rpt
GLOVER_NFFP_04_Tech_RptGLOVER_NFFP_04_Tech_Rpt
GLOVER_NFFP_04_Tech_Rpt
 
AMIP
AMIPAMIP
AMIP
 
Xử lý hạ đường huyết ở người bị tiểu đường
Xử lý hạ đường huyết ở người bị tiểu đườngXử lý hạ đường huyết ở người bị tiểu đường
Xử lý hạ đường huyết ở người bị tiểu đường
 
t h a no 2 cv
t h a no 2 cvt h a no 2 cv
t h a no 2 cv
 
Построение систем электронного архива и систем управления инженерными данными
Построение систем электронного архива и систем управления инженерными даннымиПостроение систем электронного архива и систем управления инженерными данными
Построение систем электронного архива и систем управления инженерными данными
 
Biografi
BiografiBiografi
Biografi
 
мята истинная (mint true)
мята истинная (mint true)мята истинная (mint true)
мята истинная (mint true)
 
ننننننننننننننننننننننننننننننننننننننن
نننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننننن
ننننننننننننننننننننننننننننننننننننننن
 
Математическое моделирование поведения морских гидротехнических объектов в ср...
Математическое моделирование поведения морских гидротехнических объектов в ср...Математическое моделирование поведения морских гидротехнических объектов в ср...
Математическое моделирование поведения морских гидротехнических объектов в ср...
 
雪ミクハコスコ製作記
雪ミクハコスコ製作記雪ミクハコスコ製作記
雪ミクハコスコ製作記
 
Вкусное печенье с корицей за 15 минут
Вкусное печенье с корицей за 15 минутВкусное печенье с корицей за 15 минут
Вкусное печенье с корицей за 15 минут
 
Titan_IV
Titan_IVTitan_IV
Titan_IV
 

Similar to Cache GitHub Continous Integration

WebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
WebCamp: Developer Day: Parse'им бэкенд - Аким ХалиловWebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
WebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
GeeksLab Odessa
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NET
Vitaly Baum
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
Timur Shemsedinov
 
GitLab, Prometheus и Grafana с Kubernetes
GitLab, Prometheus и Grafana с KubernetesGitLab, Prometheus и Grafana с Kubernetes
GitLab, Prometheus и Grafana с Kubernetes
Victor Login
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорьdrupalconf
 
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыMoscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Oleg Nenashev
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"
Yandex
 
Тестирование Web API
Тестирование Web APIТестирование Web API
Тестирование Web API
Byndyusoft
 
Простой и кросс-платформенный WEB-сервер на .NET
Простой и кросс-платформенный WEB-сервер на .NETПростой и кросс-платформенный WEB-сервер на .NET
Простой и кросс-платформенный WEB-сервер на .NET
Mikhail Shcherbakov
 
Лекция 1 Практика
Лекция 1 ПрактикаЛекция 1 Практика
Лекция 1 Практика
Victor Kulikov
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов ИгорьPVasili
 
Davit mkrtchyan rich wicket presentation
Davit mkrtchyan rich wicket presentationDavit mkrtchyan rich wicket presentation
Davit mkrtchyan rich wicket presentation
Victoria Astapenko
 
Доставка данных в реальном времени.
Доставка данных в реальном времени. Доставка данных в реальном времени.
Доставка данных в реальном времени.
beshkenadze
 
Gevent для эмуляции нагрузки
Gevent для эмуляции нагрузкиGevent для эмуляции нагрузки
Gevent для эмуляции нагрузкиm0use
 
Использование gevent для эмуляции высокой нагрузки
Использование gevent для эмуляции высокой нагрузкиИспользование gevent для эмуляции высокой нагрузки
Использование gevent для эмуляции высокой нагрузки
Python Meetup
 
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
HappyDev
 
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Ontico
 
Solit 2012, Enterprise разработка PHP приложений, Иван Захарченко
Solit 2012, Enterprise разработка PHP приложений, Иван ЗахарченкоSolit 2012, Enterprise разработка PHP приложений, Иван Захарченко
Solit 2012, Enterprise разработка PHP приложений, Иван Захарченкоsolit
 
Сергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и Javascript
Сергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и JavascriptСергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и Javascript
Сергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и Javascript
Sergey Platonov
 

Similar to Cache GitHub Continous Integration (20)

WebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
WebCamp: Developer Day: Parse'им бэкенд - Аким ХалиловWebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
WebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NET
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
GitLab, Prometheus и Grafana с Kubernetes
GitLab, Prometheus и Grafana с KubernetesGitLab, Prometheus и Grafana с Kubernetes
GitLab, Prometheus и Grafana с Kubernetes
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорь
 
Chef
ChefChef
Chef
 
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыMoscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"
 
Тестирование Web API
Тестирование Web APIТестирование Web API
Тестирование Web API
 
Простой и кросс-платформенный WEB-сервер на .NET
Простой и кросс-платформенный WEB-сервер на .NETПростой и кросс-платформенный WEB-сервер на .NET
Простой и кросс-платформенный WEB-сервер на .NET
 
Лекция 1 Практика
Лекция 1 ПрактикаЛекция 1 Практика
Лекция 1 Практика
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
 
Davit mkrtchyan rich wicket presentation
Davit mkrtchyan rich wicket presentationDavit mkrtchyan rich wicket presentation
Davit mkrtchyan rich wicket presentation
 
Доставка данных в реальном времени.
Доставка данных в реальном времени. Доставка данных в реальном времени.
Доставка данных в реальном времени.
 
Gevent для эмуляции нагрузки
Gevent для эмуляции нагрузкиGevent для эмуляции нагрузки
Gevent для эмуляции нагрузки
 
Использование gevent для эмуляции высокой нагрузки
Использование gevent для эмуляции высокой нагрузкиИспользование gevent для эмуляции высокой нагрузки
Использование gevent для эмуляции высокой нагрузки
 
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
 
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
 
Solit 2012, Enterprise разработка PHP приложений, Иван Захарченко
Solit 2012, Enterprise разработка PHP приложений, Иван ЗахарченкоSolit 2012, Enterprise разработка PHP приложений, Иван Захарченко
Solit 2012, Enterprise разработка PHP приложений, Иван Захарченко
 
Сергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и Javascript
Сергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и JavascriptСергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и Javascript
Сергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и Javascript
 

Cache GitHub Continous Integration