Skip to content

Commit a0d03f4

Browse files
committed
Merge remote-tracking branch 'upstream/develop' into feature/check_authors_before_run
# Conflicts: # src/core/Классы/КомандаExport.os # src/core/Классы/КомандаSync.os # src/core/Классы/МенеджерСинхронизации.os # src/core/Модули/РаспаковщикКонфигурации.os # src/xml-config.os
2 parents 57f99b6 + 50d70fc commit a0d03f4

12 files changed

+317
-135
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+
tests\.xml

Jenkinsfile

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
2+
pipeline {
3+
agent none
4+
options {
5+
buildDiscarder(logRotator(numToKeepStr: '7'))
6+
skipDefaultCheckout()
7+
}
8+
9+
stages {
10+
stage('Тестирование кода пакета WIN') {
11+
12+
agent { label 'windows' }
13+
14+
steps {
15+
checkout scm
16+
17+
script {
18+
if( fileExists ('tasks/test.os') ){
19+
bat 'chcp 65001 > nul && oscript tasks/test.os'
20+
junit 'tests.xml'
21+
}
22+
else
23+
echo 'no testing task'
24+
}
25+
26+
}
27+
28+
}
29+
30+
stage('Тестирование кода пакета LINUX') {
31+
32+
agent { label 'master' }
33+
34+
steps {
35+
echo 'under development'
36+
}
37+
38+
}
39+
40+
stage('Сборка пакета') {
41+
42+
agent { label 'windows' }
43+
44+
steps {
45+
checkout scm
46+
47+
bat 'erase /Q *.ospx'
48+
bat 'chcp 65001 > nul && call opm build .'
49+
50+
stash includes: '*.ospx', name: 'package'
51+
archiveArtifacts '*.ospx'
52+
}
53+
54+
}
55+
56+
stage('Публикация в хабе') {
57+
when {
58+
branch 'master'
59+
}
60+
agent { label 'master' }
61+
steps {
62+
sh 'rm -f *.ospx'
63+
unstash 'package'
64+
65+
sh '''
66+
artifact=`ls -1 *.ospx`
67+
basename=`echo $artifact | sed -r 's/(.+)-.*(.ospx)/\\1/'`
68+
cp $artifact $basename.ospx
69+
sudo rsync -rv *.ospx /var/www/hub.oscript.io/download/$basename/
70+
'''.stripIndent()
71+
}
72+
}
73+
74+
stage('Публикация в нестабильном хабе') {
75+
when {
76+
branch 'develop'
77+
}
78+
agent { label 'master' }
79+
steps {
80+
sh 'rm -f *.ospx'
81+
unstash 'package'
82+
83+
sh '''
84+
artifact=`ls -1 *.ospx`
85+
basename=`echo $artifact | sed -r 's/(.+)-.*(.ospx)/\\1/'`
86+
cp $artifact $basename.ospx
87+
sudo rsync -rv *.ospx /var/www/hub.oscript.io/dev-channel/$basename/
88+
'''.stripIndent()
89+
}
90+
}
91+
}
92+
}

packagedef

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55
.Версия(ПараметрыСистемы_ЛокальнаяВерсия.ВерсияПродукта())
66
.ВерсияСреды("1.0.16")
77
.ЗависитОт("logos")
8-
.ЗависитОт("cmdline", "0.4")
8+
.ЗависитОт("cmdline", "0.4.1")
99
.ЗависитОт("tempfiles")
10-
.ЗависитОт("tool1cd", "0.3")
10+
.ЗависитОт("tool1cd", "0.4")
1111
.ЗависитОт("v8runner", "0.7.0")
12+
.ЗависитОт("gitrunner", "1.1.0")
1213
.ЗависитОт("strings")
1314
.ЗависитОт("1commands", "1.1.1")
1415
.ЗависитОт("v8unpack")

src/core/Классы/КомандаExport.os

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@
3030
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-check-authors", "Проверка файла AUTHORS, на наличие всех авторов коммитов ");
3131

3232
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-amount-look-for-license", "<число> количество повторов получения лицензии (попытка подключения каждые 10 сек), 0 - без ограничений");
33+
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-stop-if-empty-comment", "Остановить, если Комментарий к версии пустой");
34+
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-auto-set-tags", "Автоматическая установка тэгов по версия конфиграции");
35+
3336

3437
Парсер.ДобавитьКоманду(ОписаниеКоманды);
3538

@@ -44,6 +47,8 @@
4447
Лимит = ПараметрыКоманды["-limit"];
4548
ПереименовыватьФайлМодуляОбычнойФормы = ПараметрыКоманды["-process-fatform-modules"];
4649
ПроверитьАвторовХранилища = ПараметрыКоманды["-check-authors"];
50+
ПрерватьВыполнениеБезКомментарияКВерсии = ПараметрыКоманды["-stop-if-empty-comment"];
51+
АвтоматическаяУстановкаТэговПоВерсиям = ПараметрыКоманды["-auto-set-tags"];
4752

4853
Если ЛокальныйКаталогГит = Неопределено Тогда
4954

@@ -81,6 +86,18 @@
8186

8287
КонецЕсли;
8388

89+
Если ПрерватьВыполнениеБезКомментарияКВерсии = Неопределено Тогда
90+
91+
ПрерватьВыполнениеБезКомментарияКВерсии = Ложь;
92+
93+
КонецЕсли;
94+
95+
Если АвтоматическаяУстановкаТэговПоВерсиям = Неопределено Тогда
96+
97+
АвтоматическаяУстановкаТэговПоВерсиям = Ложь;
98+
99+
КонецЕсли;
100+
84101
МаксВерсия = Число(МаксВерсия);
85102
МинВерсия = Число(МинВерсия);
86103
Лимит = Число(Лимит);
@@ -90,7 +107,19 @@
90107
Распаковщик.ДоменПочтыДляGitПоУмолчанию = ПараметрыКоманды["-email"];
91108
Распаковщик.ПереименовыватьФайлМодуляОбычнойФормы = ПереименовыватьФайлМодуляОбычнойФормы;
92109
ДополнительныеПараметры.Лог.Информация("Начинаю выгрузку исходников");
93-
РаспаковщикКонфигурации.ВыполнитьЭкспортИсходников(Распаковщик, ПараметрыКоманды["ПутьКХранилищу"], ЛокальныйКаталогГит, МинВерсия, МаксВерсия, Формат,,, Лимит, ПроверитьАвторовХранилища);
110+
РаспаковщикКонфигурации.ВыполнитьЭкспортИсходников(Распаковщик,
111+
ПараметрыКоманды["ПутьКХранилищу"],
112+
ЛокальныйКаталогГит,
113+
МинВерсия,
114+
МаксВерсия,
115+
Формат,
116+
,
117+
,
118+
Лимит,
119+
ПрерватьВыполнениеБезКомментарияКВерсии,
120+
,
121+
АвтоматическаяУстановкаТэговПоВерсиям,
122+
ПроверитьАвторовХранилища);
94123
ДополнительныеПараметры.Лог.Информация("Выгрузка завершена");
95124

96125
Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех;

src/core/Классы/КомандаSync.os

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-amount-look-for-license", "<число> количество повторов получения лицензии (попытка подключения каждые 10 сек), 0 - без ограничений");
3232
Парсер.ДобавитьПараметрФлагКоманды (ОписаниеКоманды, "-process-fatform-modules", "Переименовывать модули обычных форм в Module.bsl");
3333
Парсер.ДобавитьПараметрФлагКоманды (ОписаниеКоманды, "-check-authors", "Проверка файла AUTHORS, на наличие всех авторов коммитов ");
34+
Парсер.ДобавитьПараметрФлагКоманды (ОписаниеКоманды, "-stop-if-empty-comment", "Остановить, если Комментарий к версии пустой");
35+
Парсер.ДобавитьПараметрФлагКоманды (ОписаниеКоманды, "-auto-set-tags", "Автоматическая установка тэгов по версия конфиграции");
3436

3537
Парсер.ДобавитьКоманду(ОписаниеКоманды);
3638

@@ -50,6 +52,9 @@
5052
Парсер.ДобавитьПараметрФлаг ("-process-fatform-modules", "Переименовывать модули обычных форм в Module.bsl");
5153
Парсер.ДобавитьПараметрФлаг ("-check-authors", "Проверка файла AUTHORS, на наличие всех авторов коммитов ");
5254

55+
Парсер.ДобавитьПараметрФлагКоманды("-stop-if-empty-comment", "Остановить, если Комментарий к версии пустой");
56+
Парсер.ДобавитьПараметрФлагКоманды("-auto-set-tags", "Автоматическая установка тэгов по версия конфиграции");
57+
5358
КонецПроцедуры // ЗарегистрироватьКоманду
5459

5560
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры) Экспорт
@@ -70,7 +75,8 @@
7075
КоличествоКоммитовДоPush = ПараметрыКоманды["-push-every-n-commits"];
7176
ПереименовыватьФайлМодуляОбычнойФормы = ПараметрыКоманды["-process-fatform-modules"];
7277
ПроверитьАвторовХранилища = ПараметрыКоманды["-check-authors"];
73-
78+
ПрерватьВыполнениеБезКомментарияКВерсии = ПараметрыКоманды["-stop-if-empty-comment"];
79+
АвтоматическаяУстановкаТэговПоВерсиям = ПараметрыКоманды["-auto-set-tags"];
7480

7581
Если НачальнаяВерсия = Неопределено Тогда
7682

@@ -102,6 +108,18 @@
102108

103109
КонецЕсли;
104110

111+
Если ПрерватьВыполнениеБезКомментарияКВерсии = Неопределено Тогда
112+
113+
ПрерватьВыполнениеБезКомментарияКВерсии = Ложь;
114+
115+
КонецЕсли;
116+
117+
Если АвтоматическаяУстановкаТэговПоВерсиям = Неопределено Тогда
118+
119+
АвтоматическаяУстановкаТэговПоВерсиям = Ложь;
120+
121+
КонецЕсли;
122+
105123
НачальнаяВерсия = Число(НачальнаяВерсия);
106124
КонечнаяВерсия = Число(КонечнаяВерсия);
107125
Лимит = Число(Лимит);
@@ -161,10 +179,13 @@
161179
КоличествоКоммитовДоPush,
162180
URLРепозитория,
163181
Лимит,
182+
ПрерватьВыполнениеБезКомментарияКВерсии,
183+
ИмяВетки,
184+
АвтоматическаяУстановкаТэговПоВерсиям,
164185
ПроверитьАвторовХранилища);
165186

166187
Лог.Информация("Отправка изменений на удаленный узел");
167-
КодВозврата = Распаковщик.ВыполнитьGitPush(ЛокальныйКаталогГит, URLРепозитория, ИмяВетки);
188+
КодВозврата = Распаковщик.ВыполнитьGitPush(ЛокальныйКаталогГит, URLРепозитория, ИмяВетки, АвтоматическаяУстановкаТэговПоВерсиям);
168189
Если КодВозврата <> 0 Тогда
169190
ВызватьИсключение "Не удалось отправить изменения на удаленный узел (код: " + КодВозврата + ")";
170191
КонецЕсли;

0 commit comments

Comments
 (0)