Skip to content

Commit 0f30942

Browse files
committed
Merge branch 'release/v0.5'
2 parents 52bd1bf + 2b7fcfb commit 0f30942

14 files changed

+323
-125
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
tests.xml
2+
*.ospx
3+
oscript_modules/
4+
src/oscript.cfg

.vscode/tasks.json

Lines changed: 0 additions & 83 deletions
This file was deleted.

Jenkinsfile

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

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
Сей волшебный инструмент позволяет автоматизировать сборку тиражных релизов 1С:Предприятие 8.
44

5+
Обсудить [![Join the chat at https://gitter.im/EvilBeaver/oscript-library](https://badges.gitter.im/EvilBeaver/oscript-library.svg)](https://gitter.im/EvilBeaver/oscript-library?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![GitHub release](https://img.shields.io/github/release/oscript-library/packman.svg)](https://github.com/oscript-library/packman/releases) [![Build Status](http://build.oscript.io/buildStatus/icon?job=oscript-library/packman/develop)](http://build.oscript.io/job/oscript-library/job/packman/job/develop/)
6+
7+
58
## Возможности
69

710
* Собирать конфигурацию из исходников

packagedef

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-

1+
ПутьКСценариюПараметров = ОбъединитьПути(ТекущийСценарий().Каталог, "src", "Модули", "ПараметрыСистемы.os");
2+
ПараметрыСистемы_ЛокальнаяВерсия = ЗагрузитьСценарий(ПутьКСценариюПараметров);
3+
24
Описание.Имя("packman")
3-
.Версия("0.4.3")
5+
.Версия(ПараметрыСистемы_ЛокальнаяВерсия.ВерсияПродукта())
46
.ЗависитОт("logos")
57
.ЗависитОт("cmdline", "0.5")
68
.ЗависитОт("v8runner")
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
///////////////////////////////////////////////////////////////////////////////////////////////////
3+
// Прикладной интерфейс
4+
5+
Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт
6+
ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, "Вывод версии приложения");
7+
Парсер.ДобавитьКоманду(ОписаниеКоманды);
8+
КонецПроцедуры
9+
10+
Функция ВыполнитьКоманду(Знач ПараметрыКоманды) Экспорт
11+
12+
Сообщить(ПараметрыСистемы.ВерсияПродукта());
13+
14+
Возврат 0;
15+
16+
КонецФункции
17+
18+
Процедура ПоказатьСправкуПоКоманде(Знач Парсер, Знач ИмяКоманды)
19+
20+
Парсер.ВывестиСправкуПоКоманде(ИмяКоманды);
21+
22+
КонецПроцедуры

src/Классы/КомандаВыгрузитьИзХранилища.os

Lines changed: 49 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-storage-user", "Пользователь хранилища 1С");
1919
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-storage-pwd", "Пароль пользователя хранилища 1С (опционально)");
2020
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-storage-v", "Версия в хранилище, которую включаем в дистрибутив (опционально)");
21+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-v8version", "Версия платформы 1С");
2122
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-use-tool1cd", "Использовать для чтения хранилища Tool1CD");
2223
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-details", "Выходной файл с параметрами коммита хранилища (только для tool1cd)");
2324

@@ -35,18 +36,25 @@
3536
Параметры = РазобратьПараметры(ПараметрыКоманды);
3637

3738
Попытка
38-
ФайлВерсии = ПолучитьИмяВременногоФайла(".cf");
39+
40+
УправлениеКонфигуратором = ОкружениеСборки.ПолучитьКонфигуратор();
41+
Если ЗначениеЗаполнено(Параметры.Версия1С) Тогда
42+
УправлениеКонфигуратором.ИспользоватьВерсиюПлатформы(Параметры.Версия1С);
43+
КонецЕсли;
44+
3945
Если Параметры.ИспользоватьTool1CD Тогда
46+
ФайлВерсии = ВФ.НовоеИмяФайла(".cf");
47+
4048
ВыгрузитьВерсиюСредствамиTool1CD(Параметры.АдресХранилища, Параметры.ВерсияХранилища, ФайлВерсии, Параметры.ФайлПараметровКоммита);
49+
50+
ФайлТест = Новый Файл(ФайлВерсии);
51+
Ожидаем.Что(ФайлТест.Существует(), "Должен существовать выгруженный файл версии");
52+
53+
ЗагрузитьКонфигурациюВБазуСборки(УправлениеКонфигуратором, ФайлВерсии);
4154
Иначе
42-
ВыгрузитьВерсиюИзХранилища(Параметры.АдресХранилища, Параметры.ВерсияХранилища, ФайлВерсии, Параметры.ПользовательХранилища, Параметры.ПарольХранилища);
55+
ВыгрузитьВерсиюИзХранилища(УправлениеКонфигуратором, Параметры.АдресХранилища, Параметры.ВерсияХранилища, Параметры.ПользовательХранилища, Параметры.ПарольХранилища);
4356
КонецЕсли;
44-
45-
ФайлТест = Новый Файл(ФайлВерсии);
46-
Ожидаем.Что(ФайлТест.Существует(), "Должен существовать выгруженный файл версии");
47-
48-
УправлениеКонфигуратором = ОкружениеСборки.ПолучитьКонфигуратор();
49-
ЗагрузитьКонфигурациюВБазуСборки(УправлениеКонфигуратором, ФайлВерсии);
57+
5058
Исключение
5159
ВФ.Удалить();
5260
ВызватьИсключение;
@@ -75,35 +83,51 @@
7583
Результат.Вставить("ПользовательХранилища", ПараметрыКоманды["-storage-user"]);
7684
Результат.Вставить("ПарольХранилища", ПараметрыКоманды["-storage-pwd"]);
7785
Результат.Вставить("ВерсияХранилища", ПараметрыКоманды["-storage-v"]);
86+
Результат.Вставить("Версия1С", ПараметрыКоманды["-v8version"]);
7887
Результат.Вставить("ИспользоватьTool1CD", ПараметрыКоманды["-use-tool1cd"]);
7988
Результат.Вставить("ФайлПараметровКоммита", ПараметрыКоманды["-details"]);
8089

8190
Возврат Результат;
8291

8392
КонецФункции
8493

85-
Процедура ВыгрузитьВерсиюИзХранилища(Знач АдресХранилища,
94+
Процедура ВыгрузитьВерсиюИзХранилища(Конфигуратор,
95+
Знач ПутьКХранилищу,
8696
Знач ВерсияХранилища,
87-
Знач ВыходнойФайл,
88-
Знач ПользовательХранилища = Неопределено,
89-
Знач ПарольХранилища = Неопределено) Экспорт
97+
Знач ПользовательХранилища,
98+
Знач ПарольХранилища = "") Экспорт
9099

91-
ВременныйКаталог = "";
92-
Конфигуратор = ПолучитьКонфигуратор(ВременныйКаталог);
100+
101+
ПараметрыЗапуска = Конфигуратор.ПолучитьПараметрыЗапуска();
102+
ПараметрыЗапуска.Добавить("/ConfigurationRepositoryF """+ПутьКХранилищу+"""");
103+
104+
ПараметрыЗапуска.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+"""");
105+
106+
Если Не ЗначениеЗаполнено(ПарольХранилища) Тогда
107+
ПараметрыЗапуска.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+"""");
108+
КонецЕсли;
109+
110+
ПараметрыЗапуска.Добавить("/ConfigurationRepositoryUpdateCfg");
93111

94-
Лог.Отладка("Выгружаю версию из хранилища");
112+
Если ЗначениеЗаполнено(ВерсияХранилища) Тогда
113+
ПараметрыЗапуска.Добавить("-v "+ВерсияХранилища);
114+
КонецЕсли;
115+
116+
ПараметрыЗапуска.Добавить("-force");
95117

96-
Конфигуратор.ПолучитьВерсиюИзХранилища(
97-
АдресХранилища,
98-
ПользовательХранилища,
99-
ПарольХранилища,
100-
ВерсияХранилища);
101-
102-
Лог.Отладка("Копирую файл версии");
103-
КопироватьФайл(ОбъединитьПути(ВременныйКаталог, "source.cf"), ВыходнойФайл);
118+
ПараметрыЗапуска.Добавить("/UpdateDBCfg");
119+
120+
Лог.Отладка("Получению новую версию из хранилища");
104121

105-
ВФ.Удалить();
106-
Лог.Отладка("Удален временный каталог: " + ВременныйКаталог);
122+
Попытка
123+
Конфигуратор.ВыполнитьКоманду(ПараметрыЗапуска);
124+
Исключение
125+
126+
ТекстОшибки = Конфигуратор.ВыводКоманды();
127+
ВызватьИсключение ТекстОшибки;
128+
129+
КонецПопытки;
130+
107131
КонецПроцедуры
108132

109133
Процедура ВыгрузитьВерсиюСредствамиTool1CD(Знач КаталогХранилища, Знач ВерсияХранилища, Знач ФайлВерсии, Знач ФайлПараметровКоммита = Неопределено) Экспорт

src/Классы/КомандаПроверитьСинтаксис.os

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, "Выполнить проверку синтаксиса");
88

9+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-v8version", "Версия платформы");
10+
911
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-ThinClient", "Тонкий клиент");
1012
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-WebClient", "Веб-клиент");
1113
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-Server", "Сервер");
@@ -32,9 +34,15 @@
3234
Функция ВыполнитьКоманду(Знач ПараметрыКоманды) Экспорт
3335

3436
Конфигуратор = ОкружениеСборки.ПолучитьКонфигуратор();
37+
Версия1С = ПараметрыКоманды["-v8version"];
38+
Если ЗначениеЗаполнено(Версия1С) Тогда
39+
Конфигуратор.ИспользоватьВерсиюПлатформы(Версия1С);
40+
КонецЕсли;
41+
3542
ДатаНачала = ТекущаяДата();
3643
Успешно = Истина;
3744
Попытка
45+
ПараметрыКоманды.Удалить("-v8version");
3846
Конфигуратор.ВыполнитьРасширеннуюПроверкуКонфигуратора(ПараметрыКоманды);
3947
Исключение
4048
Успешно = Ложь;

0 commit comments

Comments
 (0)