Skip to content

Commit dbb748a

Browse files
committed
Merge branch 'release/2.4.0'
2 parents f43a465 + 410186a commit dbb748a

20 files changed

+1118
-198
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ exec\.log
66
bdd-log\.xml
77

88
*.ospx
9+
oscript_modules/

Jenkinsfile

+3-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ pipeline {
1717
script {
1818
if( fileExists ('tasks/test.os') ){
1919
bat 'chcp 65001 > nul && oscript tasks/test.os'
20-
junit 'tests.xml'
20+
21+
junit allowEmptyResults: true, testResults: 'tests.xml'
22+
junit allowEmptyResults: true, testResults: 'bdd-log.xml'
2123
}
2224
else
2325
echo 'no testing task'

config-example.json

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
"gitsync-options":
3+
{
4+
"global":
5+
{
6+
"email-domain": "server.com",
7+
"v8-version": "8.3.10",
8+
"git-executable": "git"
9+
}
10+
},
11+
"repositories" : [
12+
{
13+
"name" : "test",
14+
"git-local-path": "Путь",
15+
"git-remote": "адрес2",
16+
"v8-storage-dir": "каталог2",
17+
"process-fatform-modules": "on",
18+
"push-every-n-commits": 5,
19+
"auto-set-tags": "on",
20+
"stop-if-empty-comment": "on",
21+
"check-authors": "on"
22+
//"email-domain",
23+
//"v8-version",
24+
//"git-executable",
25+
},
26+
{
27+
"name" : "test2",
28+
"git-local-path": "Путь2",
29+
"git-remote": "адрес2",
30+
"v8-storage-dir": "каталог2",
31+
"process-fatform-modules": "on",
32+
"push-every-n-commits": 5,
33+
"auto-set-tags": "on",
34+
"stop-if-empty-comment": "on",
35+
"check-authors": "on"
36+
//"email-domain",
37+
//"v8-version",
38+
//"git-executable",
39+
40+
}
41+
]
42+
}

features/gitsync-sync.feature

+95
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
# language: ru
2+
3+
Функционал: Инициализация каталога исходников конфигурации
4+
Как Пользователь
5+
Я хочу выполнять автоматическую синхронизацию конфигурации из хранилища
6+
Чтобы автоматизировать свою работы с хранилищем с git
7+
8+
Контекст: Тестовый контекст
9+
Когда Я очищаю параметры команды "gitsync" в контексте
10+
И Я устанавливаю путь выполнения команды "gitsync" к текущей библиотеке
11+
И Я добавляю параметр "sync" для команды "gitsync"
12+
И Я создаю временный каталог и сохраняю его в контекст
13+
И я скопировал каталог тестового хранилища конфигурации во временный каталог
14+
И Я сохраняю значение временного каталога в переменной "КаталогХранилища1С"
15+
И Я создаю временный каталог и сохраняю его в контекст
16+
И Я сохраняю значение временного каталога в переменной "ПутьКаталогаИсходников"
17+
И Я создаю тестовой файл AUTHORS
18+
И Я записываю "0" в файл VERSION
19+
И Я создаю временный каталог и сохраняю его в контекст
20+
И Я инициализирую bare репозиторий во временном каталоге
21+
И Я сохраняю значение временного каталога в переменной "URLРепозитория"
22+
И я инициализирую связь "ПутьКаталогаИсходников" с внешним репозиторием "URLРепозитория"
23+
И я включаю отладку лога с именем "oscript.app.gitsync"
24+
И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
25+
И Я добавляю позиционный параметр для команды "gitsync" из переменной "URLРепозитория"
26+
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
27+
28+
Сценарий: Простая синхронизация хранилища с git-репозиторием
29+
Допустим Я создаю временный каталог и сохраняю его в контекст
30+
И Я сохраняю значение временного каталога в переменной "ВременнаяДиректория"
31+
И Я добавляю параметр "-tempdir" для команды "gitsync" из переменной "ВременнаяДиректория"
32+
Когда Я выполняю команду "gitsync"
33+
Тогда Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Синхронизация завершена"
34+
И Вывод команды "gitsync" не содержит "Внешнее исключение"
35+
И Код возврата команды "gitsync" равен 0
36+
37+
Сценарий: Синхронизация хранилища с git-репозиторием без tool1CD
38+
Допустим Я добавляю параметры для команды "gitsync"
39+
|--storage-user Администратор|
40+
|-useVendorUnload|
41+
Когда Я выполняю команду "gitsync"
42+
Тогда Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Синхронизация завершена"
43+
И Вывод команды "gitsync" не содержит "Внешнее исключение"
44+
И Код возврата команды "gitsync" равен 0
45+
46+
Сценарий: Синхронизация хранилища с git-репозиторием с дополнительными параметрами без tool1CD
47+
Допустим Я добавляю параметр "-useVendorUnload" для команды "gitsync"
48+
И Я создаю временный каталог и сохраняю его в контекст
49+
И Я сохраняю значение временного каталога в переменной "ВременнаяДиректория"
50+
И Я добавляю параметр "-tempdir" для команды "gitsync" из переменной "ВременнаяДиректория"
51+
И Я добавляю параметры для команды "gitsync"
52+
|--storage-user Администратор|
53+
|-useVendorUnload|
54+
|-check-authors|
55+
|-auto-set-tags|
56+
|-process-fatform-modules|
57+
И Я добавляю параметр "-push-every-n-commits 5" для команды "gitsync"
58+
Когда Я выполняю команду "gitsync"
59+
Тогда Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Синхронизация завершена"
60+
И Вывод команды "gitsync" не содержит "Внешнее исключение"
61+
И Код возврата команды "gitsync" равен 0
62+
63+
Сценарий: Синхронизация хранилища с git-репозиторием с выгрузкой только изменений
64+
Допустим Я создаю временный каталог и сохраняю его в контекст
65+
И Я сохраняю значение временного каталога в переменной "ВременнаяДиректория"
66+
И Я добавляю параметр "-increment" для команды "gitsync"
67+
Когда Я выполняю команду "gitsync"
68+
Тогда Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Синхронизация завершена"
69+
И Вывод команды "gitsync" не содержит "Внешнее исключение"
70+
И Код возврата команды "gitsync" равен 0
71+
72+
Сценарий: Синхронизация хранилища с git-репозиторием с выгрузкой только изменений без tool1CD
73+
Допустим Я добавляю параметры для команды "gitsync"
74+
|--storage-user Администратор|
75+
|-increment|
76+
|-useVendorUnload|
77+
Когда Я выполняю команду "gitsync"
78+
Тогда Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Синхронизация завершена"
79+
И Вывод команды "gitsync" не содержит "Внешнее исключение"
80+
И Код возврата команды "gitsync" равен 0
81+
82+
83+
Сценарий: Синхронизация хранилища с git-репозиторием с проверкой заполненности комментария
84+
Допустим Я добавляю параметр "-stop-if-empty-comment" для команды "gitsync"
85+
Когда Я выполняю команду "gitsync"
86+
Тогда Вывод команды "gitsync" содержит "КРИТИЧНАЯОШИБКА - Нашли следующую версию <4> от автора <Администратор>, а комментарий не задан!"
87+
И Код возврата команды "gitsync" равен 1
88+
89+
Сценарий: Синхронизация хранилища с git-репозиторием с проверкой авторов версий в хранилище
90+
Допустим Я добавляю параметр "-check-authors" для команды "gitsync"
91+
И Я создаю неполный тестовой файл AUTHORS
92+
И Я инициализирую связь "ПутьКаталогаИсходников" с внешним репозиторием "URLРепозитория"
93+
Когда Я выполняю команду "gitsync"
94+
Тогда Вывод команды "gitsync" содержит "КРИТИЧНАЯОШИБКА - Пользователю хранилища <Администратор> не сопоставлен пользователь git."
95+
И Код возврата команды "gitsync" равен 1

features/step_definitions/gitsync-init.os

+1-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@
121121

122122
ОжидаемыйКодВозврата = 0;
123123

124-
СтрокаКоманды = СтрШаблон("oscript.exe %1 %2 %3 %4", "-encoding=utf-8", ПутьГитсинк, Команда, БДД.ПолучитьИзКонтекста("ПараметрыГитсинк"));
124+
СтрокаКоманды = СтрШаблон("oscript %1 %2 %3 %4", "-encoding=utf-8", ПутьГитсинк, Команда, БДД.ПолучитьИзКонтекста("ПараметрыГитсинк"));
125125

126126
ТекстФайла = "";
127127
КодВозврата = ВыполнитьПроцесс(СтрокаКоманды, ТекстФайла);

0 commit comments

Comments
 (0)