Skip to content

Commit f8eab94

Browse files
committed
Merge branch 'release/2.3.0'
2 parents acf518b + ac02cab commit f8eab94

21 files changed

+742
-250
lines changed

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
tests\.xml
3+
4+
exec\.log
5+
6+
bdd-log\.xml
7+
8+
*.ospx

.vscode/tasks.json

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
{
2-
"version": "0.1.0",
2+
"version": "2.0.0",
3+
"_runner": "terminal",
34
"windows": {
45
"command": "cmd",
5-
"args": ["/c", "chcp 65001 >nul &"]
6+
"args": ["/c", "chcp 65001 ;"]
67
},
78
"linux": {
89
"command": "sh",
@@ -11,6 +12,28 @@
1112
"isShellCommand": true,
1213
"showOutput": "silent",
1314
"tasks": [
15+
{
16+
"taskName": "Testing project (opm test)",
17+
"args": [
18+
// "oscript",
19+
// "src/opm.os",
20+
"opm",
21+
"test"
22+
],
23+
// "echoCommand": true,
24+
// "showOutput": "always",
25+
"suppressTaskName": true,
26+
// "isTestCommand": false,
27+
"problemMatcher": {
28+
"fileLocation": "absolute",
29+
"pattern": {
30+
"regexp": "{Модуль\\s+(.+)\\s\\/\\s.*:\\s+(\\d+)\\s+\\/\\s+([^{]*)",
31+
"file": 1,
32+
"location": 2,
33+
"message": 3
34+
}
35+
}
36+
},
1437
{
1538
"taskName": "Testing project",
1639
"args": [

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+
}

bin/v8unpack.exe

-64 KB
Binary file not shown.

features/opm-build.feature

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# language: ru
2+
3+
Функционал: Проверка сборки продукта
4+
Как Пользователь
5+
Я хочу автоматически проверять сборку моего продукта
6+
Чтобы гарантировать возможность установку моего продукта у пользователей
7+
8+
Контекст: Отключение отладки в логах
9+
Допустим Я выключаю отладку лога с именем "oscript.lib.gitsync"
10+
И Я очищаю параметры команды "opm" в контексте
11+
12+
Сценарий: Выполнение команды без параметров
13+
Когда Я добавляю параметр "build ." для команды "opm"
14+
И Я выполняю команду "opm"
15+
Тогда Вывод команды "opm" содержит "Сборка пакета завершена"
16+
И Вывод команды "opm" не содержит "Внешнее исключение"
17+
И Код возврата команды "opm" равен 0
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# language: ru
2+
3+
Функциональность: Выполнение команды продукта
4+
5+
Как разработчик
6+
Я хочу иметь возможность выполнять команды продукта
7+
Чтобы выполнять коллективную разработку приложения для OneScript
8+
9+
Контекст:
10+
Допустим Я очищаю параметры команды "oscript" в контексте
11+
И я включаю отладку лога с именем "oscript.app.gitsync"
12+
# И я включаю отладку лога с именем "bdd"
13+
14+
Сценарий: Получение версии продукта
15+
Когда Я выполняю команду "oscript" c параметрами "src/gitsync.os version"
16+
Тогда Я сообщаю вывод команды "oscript"
17+
Тогда я вижу в консоли строку подобно "(\d+\.){2}\d+"
18+
И Вывод команды "oscript" не содержит "GitSync v"
19+
И Код возврата команды "oscript" равен 0
20+
21+
Сценарий: Получение помощи продукта
22+
Когда Я выполняю команду "oscript" c параметрами "src/gitsync.os help"
23+
Тогда я вижу в консоли строку подобно "GitSync\s+v(\d+\.){2}\d+"
24+
Тогда Вывод команды "oscript" содержит
25+
"""
26+
Возможные команды:
27+
"""
28+
И Код возврата команды "oscript" равен 0
29+
30+
Сценарий: Вызов исполняемого файла без параметров
31+
Когда Я выполняю команду "oscript" c параметрами "src/gitsync.os"
32+
Тогда я вижу в консоли строку подобно "GitSync\s+v(\d+\.){2}\d+"
33+
Тогда Вывод команды "oscript" содержит
34+
"""
35+
ОШИБКА - Некорректные аргументы командной строки
36+
Возможные команды:
37+
"""
38+
И Код возврата команды "oscript" равен 5

packagedef

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@
55
.Версия(ПараметрыСистемы_ЛокальнаяВерсия.ВерсияПродукта())
66
.ВерсияСреды("1.0.16")
77
.ЗависитОт("logos")
8-
.ЗависитОт("cmdline")
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")
15+
.ЗависитОт("v8unpack")
1416
.ВключитьФайл("src")
1517
.ВключитьФайл("tests")
1618
.ВключитьФайл("features")

readme.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,4 +196,18 @@
196196

197197
Выгрузить 2 версии от последней выгруженной, но не более 5-ой версии. Удобно когда выгрузка идет небольшими партиями, при заранее известном максимальном номере версии.
198198

199-
gitsync export store -maxversion 5 -limit 2
199+
gitsync export store -maxversion 5 -limit 2
200+
201+
# Решение проблемы вызванной ошибкой "Не обнаружено свободной лицензии!"
202+
203+
В случае возникновения ошибки "Не обнаружено свободной лицензии!" рекомендуется воспользоваться параметром ```-amount-look-for-license```. Данный параметр может быть использован со следующими командами ```export``` и ```sync```.
204+
При возникновении данной ошибки повторное получение лицензии происходит через 10 сек.
205+
По умолчанию данный параметр равен 1.
206+
207+
Выполнить 5 попыток получения лицензии:
208+
209+
gitsync export -amount-look-for-license 5
210+
211+
Выполнять получение лицензии без ограничения:
212+
213+
gitsync export -amount-look-for-license 0

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,11 @@
6464

6565
Пока Истина Цикл
6666

67-
Контроллер.ВыполнитьСинхронизациюПоФайлуНастроек(ЭтотОбъект, ИмяФайлаНастроек, ПараметрыКоманды["-force"] = Истина);
67+
Контроллер.ВыполнитьСинхронизациюПоФайлуНастроек(
68+
ПараметрыКоманды,
69+
ДополнительныеПараметры,
70+
ИмяФайлаНастроек,
71+
ПараметрыКоманды["-force"] = Истина);
6872

6973
Если Интервал <= 0 Тогда
7074

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

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@
2626
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-maxversion", "<номер максимальной версии для выгрузки>");
2727
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-limit", "<выгрузить неболее limit версий от текущей выгруженной>");
2828
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-tempdir", "<Путь к каталогу временных файлов>");
29+
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-process-fatform-modules", "Переименовывать модули обычных форм в Module.bsl");
30+
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-check-authors", "Проверка файла AUTHORS, на наличие всех авторов коммитов ");
31+
32+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-amount-look-for-license", "<число> количество повторов получения лицензии (попытка подключения каждые 10 сек), 0 - без ограничений");
33+
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-stop-if-empty-comment", "Остановить, если Комментарий к версии пустой");
34+
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-auto-set-tags", "Автоматическая установка тэгов по версия конфиграции");
35+
2936

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

@@ -38,13 +45,23 @@
3845
МинВерсия = ПараметрыКоманды["-minversion"];
3946
МаксВерсия = ПараметрыКоманды["-maxversion"];
4047
Лимит = ПараметрыКоманды["-limit"];
48+
ПереименовыватьФайлМодуляОбычнойФормы = ПараметрыКоманды["-process-fatform-modules"];
49+
ПроверитьАвторовХранилища = ПараметрыКоманды["-check-authors"];
50+
ПрерватьВыполнениеБезКомментарияКВерсии = ПараметрыКоманды["-stop-if-empty-comment"];
51+
АвтоматическаяУстановкаТэговПоВерсиям = ПараметрыКоманды["-auto-set-tags"];
4152

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

4455
ЛокальныйКаталогГит = ТекущийКаталог();
4556

4657
КонецЕсли;
4758

59+
Если ПроверитьАвторовХранилища = Неопределено Тогда
60+
61+
ПроверитьАвторовХранилища = Ложь;
62+
63+
КонецЕсли;
64+
4865
Если Формат = Неопределено Тогда
4966

5067
Формат = РежимВыгрузкиФайлов.Авто;
@@ -69,15 +86,40 @@
6986

7087
КонецЕсли;
7188

89+
Если ПрерватьВыполнениеБезКомментарияКВерсии = Неопределено Тогда
90+
91+
ПрерватьВыполнениеБезКомментарияКВерсии = Ложь;
92+
93+
КонецЕсли;
94+
95+
Если АвтоматическаяУстановкаТэговПоВерсиям = Неопределено Тогда
96+
97+
АвтоматическаяУстановкаТэговПоВерсиям = Ложь;
98+
99+
КонецЕсли;
100+
72101
МаксВерсия = Число(МаксВерсия);
73102
МинВерсия = Число(МинВерсия);
74103
Лимит = Число(Лимит);
75104

76105
Распаковщик = РаспаковщикКонфигурации.ПолучитьИНастроитьРаспаковщик(ПараметрыКоманды, ДополнительныеПараметры);
77106
Распаковщик.ВерсияПлатформы = ПараметрыКоманды["-v8version"];
78107
Распаковщик.ДоменПочтыДляGitПоУмолчанию = ПараметрыКоманды["-email"];
108+
Распаковщик.ПереименовыватьФайлМодуляОбычнойФормы = ПереименовыватьФайлМодуляОбычнойФормы;
79109
ДополнительныеПараметры.Лог.Информация("Начинаю выгрузку исходников");
80-
РаспаковщикКонфигурации.ВыполнитьЭкспортИсходников(Распаковщик, ПараметрыКоманды["ПутьКХранилищу"], ЛокальныйКаталогГит, МинВерсия, МаксВерсия, Формат,,, Лимит);
110+
РаспаковщикКонфигурации.ВыполнитьЭкспортИсходников(Распаковщик,
111+
ПараметрыКоманды["ПутьКХранилищу"],
112+
ЛокальныйКаталогГит,
113+
МинВерсия,
114+
МаксВерсия,
115+
Формат,
116+
,
117+
,
118+
Лимит,
119+
ПрерватьВыполнениеБезКомментарияКВерсии,
120+
,
121+
АвтоматическаяУстановкаТэговПоВерсиям,
122+
ПроверитьАвторовХранилища);
81123
ДополнительныеПараметры.Лог.Информация("Выгрузка завершена");
82124

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

0 commit comments

Comments
 (0)