-
Notifications
You must be signed in to change notification settings - Fork 4
/
packagedef
176 lines (143 loc) · 9.69 KB
/
packagedef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
Перем ПараметрыПриложения;
////////////////////////////////////////////////////////////
// Описание пакета для сборки и установки
// Полную документацию см. на hub.oscript.io/packaging
//
///////////////////////////////////////////////////////////////////
// Процедуры установки пакета с клиентской машины
///////////////////////////////////////////////////////////////////
// Вызывается пакетным менеджером перед установкой пакета на клиентскую машину.
//
// Параметры:
// КаталогУстановкиПакета - строка. Путь в который пакетный менеджер устанавливает текущий пакет.
// ЧтениеZipФайла - ЧтениеZipФайла. Архив пакета.
//
Процедура ПередУстановкой(Знач КаталогУстановкиПакета, Знач ЧтениеZipФайла) Экспорт
Сообщить("Перед установкой удаляю все epf-файлы из каталога пакета " + КаталогУстановкиПакета);
МассивФайлов = НайтиФайлы(КаталогУстановкиПакета, "*.epf", Истина);
Для каждого Файл Из МассивФайлов Цикл
УдалитьФайлы(Файл.ПолноеИмя);
КонецЦикла;
КонецПроцедуры
// Вызывается пакетным менеджером после распаковки пакета на клиентскую машину.
//
// Параметры:
// КаталогУстановкиПакета - строка. Путь в который пакетный менеджер устанавливает текущий пакет.
//
Процедура ПриУстановке(Знач КаталогУстановкиПакета, СтандартнаяОбработка) Экспорт
КонецПроцедуры
///////////////////////////////////////////////////////////////////
// Процедуры сборки пакета
///////////////////////////////////////////////////////////////////
// Вызывается пакетным менеджером перед началом сборки пакета.
//
// Параметры:
// РабочийКаталог - Строка - Текущий рабочий каталог с исходниками пакета.
//
Процедура ПередСборкой(Знач РабочийКаталог) Экспорт
ФС.ОбеспечитьПустойКаталог(ОбъединитьПути(РабочийКаталог, "oscript_modules"));
СистемнаяИнформация = Новый СистемнаяИнформация;
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;
Если ЭтоWindows Тогда
ИмяУтилиты = КаталогПрограммы() + "\opm.bat";
Иначе
ИмяУтилиты = "opm";
КонецЕсли;
КомандаOpm = Новый Команда;
КомандаOpm.УстановитьКоманду(ИмяУтилиты);
КомандаOpm.ДобавитьПараметр("install -l");
КомандаOpm.ДобавитьЛогВыводаКоманды("task.build");
КодВозврата = КомандаOpm.Исполнить();
Если КодВозврата <> 0 Тогда
ВызватьИсключение КомандаOpm.ПолучитьВывод();
КонецЕсли;
КонецПроцедуры
// Вызывается пакетным менеджером после помещения файлов в пакет.
//
// Параметры:
// РабочийКаталог - Строка - Текущий рабочий каталог с исходниками пакета.
// АрхивПакета - ЗаписьZIPФайла - ZIP-архив с содержимым пакета (включаемые файлы).
//
Процедура ПриСборке(Знач РабочийКаталог, Знач АрхивПакета) Экспорт
КонецПроцедуры
// Вызывается пакетным менеджером после сборки пакета.
//
// Параметры:
// РабочийКаталог - Строка - Текущий рабочий каталог с исходниками пакета.
// ПутьКФайлуПакета - Строка - Полный путь к собранному файлу пакета.
//
Процедура ПослеСборки(Знач РабочийКаталог, Знач ПутьКФайлуПакета) Экспорт
Файл = Новый Файл(ОбъединитьПути(РабочийКаталог, "content.zip"));
Если Файл.Существует() Тогда
УдалитьФайлы(Файл.ПолноеИмя);
КонецЕсли;
ВерсияПриложения = ПараметрыПриложения.Версия();
ФайлКонечный = Новый Файл(ОбъединитьПути(РабочийКаталог, "build", СтрШаблон("vanessa-ci-scripts-%1.zip", ВерсияПриложения)));
Если ФайлКонечный.Существует() Тогда
УдалитьФайлы(ФайлКонечный.ПолноеИмя);
КонецЕсли;
АрхивПакета = Новый ЧтениеZipФайла(ПутьКФайлуПакета);
Элемент = АрхивПакета.Элементы.Найти(Файл.Имя);
Ожидаем.Что(Элемент, "Не сформирован файл " + ФайлКонечный.ПолноеИмя)
.ЭтоНе().Равно(Неопределено);
АрхивПакета.Извлечь(Элемент, РабочийКаталог);
ПереместитьФайл(Файл.ПолноеИмя, ФайлКонечный.ПолноеИмя);
Ожидаем.Что(ФайлКонечный.Существует(), "Не сформирован файл " + ФайлКонечный.ПолноеИмя)
.ЭтоИстина();
Сообщить("ИНФОРМАЦИЯ - Создан файл релиза " + ФайлКонечный.ПолноеИмя);
КонецПроцедуры
ПутьКСценариюПараметров = ОбъединитьПути(ТекущийСценарий().Каталог, "src", "Модули", "ПараметрыПриложения.os");
ПараметрыПриложения = ЗагрузитьСценарий(ПутьКСценариюПараметров);
Описание.Имя(ПараметрыПриложения.ИмяПриложения())
.Версия(ПараметрыПриложения.Версия())
.Автор("Karlo Ivan")
.АдресАвтора("[email protected]")
.Описание("Набор скриптов Continuous Integration for 1C. Устанавливается как библиотека OScript на компьютер с ролью gitlab-runner.")
.ВерсияСреды("1.9.0")
.ВключитьФайл("doc")
.ВключитьФайл("fixtures")
.ВключитьФайл("oscript_modules")
.ВключитьФайл("src")
.ВключитьФайл("tools/CI")
.ВключитьФайл("tools/scripts")
.ВключитьФайл("tools/README.md")
.ВключитьФайл("CHANGELOG.md")
.ВключитьФайл("LICENSE")
.ВключитьФайл("packagedef")
.ВключитьФайл("README.md")
// .ЗависитОт("1bdd", "1.13.0")
.ЗависитОт("1commands", "1.5.0")
.ЗависитОт("1connector", "2.3.2")
// .ЗависитОт("1testrunner", "1.8.0")
.ЗависитОт("add", "6.8.0")
.ЗависитОт("asserts", "1.3.0")
.ЗависитОт("cli", "0.10.2")
.ЗависитОт("configor", "0.8.1")
.ЗависитОт("coverage", "0.6.1")
.ЗависитОт("gitrules", "1.1.2")
.ЗависитОт("gitsync", "3.4.1")
.ЗависитОт("json", "1.1.1")
.ЗависитОт("oscript-config", "0.1.0")
.ЗависитОт("precommit4onec", "21.09")
.ЗависитОт("tempfiles", "1.0.0")
.ЗависитОт("vanessa-automation", "1.2.040")
.ЗависитОт("vanessa-runner", "1.11.11")
.ЗависитОт("yaml", "0.5.1")
.РазработкаЗависитОт("1bdd")
.РазработкаЗависитОт("1commands")
.РазработкаЗависитОт("1testrunner")
.РазработкаЗависитОт("asserts")
.РазработкаЗависитОт("configor")
.РазработкаЗависитОт("coverage")
.РазработкаЗависитОт("fs")
.РазработкаЗависитОт("yaml")
.ОпределяетКласс("КомандаGenerateConfig", "src/Классы/КомандаGenerateConfig.os")
.ОпределяетКласс("КомандаInit", "src/Классы/КомандаInit.os")
.ОпределяетКласс("КомандаPrepare", "src/Классы/КомандаPrepare.os")
.ОпределяетКласс("КомандаRun", "src/Классы/КомандаRun.os")
.ОпределяетКласс("Общие", "src/Модули/Общие.os")
.ОпределяетКласс("ПараметрыПриложения", "src/Модули/ПараметрыПриложения.os")
.ИсполняемыйФайл("src/main.os", "vanessa-ciScripts")
.ИсполняемыйФайл("src/main.os", "vanessa-ci-scripts")
.ИсполняемыйФайл("src/main.os", "vci")
;