mirror of
https://github.com/BlizD/Tasks.git
synced 2025-03-19 21:07:53 +02:00
Скрипт для создания релиза (еще не закончен)
This commit is contained in:
parent
db9d669a9f
commit
61d02f75e2
@ -2982,9 +2982,9 @@
|
|||||||
<d3p1:fixedVariantMeasure>Day</d3p1:fixedVariantMeasure>
|
<d3p1:fixedVariantMeasure>Day</d3p1:fixedVariantMeasure>
|
||||||
<d3p1:fixedVariantInterval>1</d3p1:fixedVariantInterval>
|
<d3p1:fixedVariantInterval>1</d3p1:fixedVariantInterval>
|
||||||
<d3p1:autoFullInterval>true</d3p1:autoFullInterval>
|
<d3p1:autoFullInterval>true</d3p1:autoFullInterval>
|
||||||
<d3p1:fullIntervalBegin>2016-12-13T19:00:00</d3p1:fullIntervalBegin>
|
<d3p1:fullIntervalBegin>2016-12-18T09:00:00</d3p1:fullIntervalBegin>
|
||||||
<d3p1:fullIntervalEnd>2016-12-22T19:59:59</d3p1:fullIntervalEnd>
|
<d3p1:fullIntervalEnd>2016-12-27T09:59:59</d3p1:fullIntervalEnd>
|
||||||
<d3p1:visualBegin>2016-12-13T19:00:00</d3p1:visualBegin>
|
<d3p1:visualBegin>2016-12-18T09:00:00</d3p1:visualBegin>
|
||||||
<d3p1:intervalDrawType>Gradient</d3p1:intervalDrawType>
|
<d3p1:intervalDrawType>Gradient</d3p1:intervalDrawType>
|
||||||
<d3p1:noneVariantChars>3</d3p1:noneVariantChars>
|
<d3p1:noneVariantChars>3</d3p1:noneVariantChars>
|
||||||
<d3p1:noneVariantMeasure>Day</d3p1:noneVariantMeasure>
|
<d3p1:noneVariantMeasure>Day</d3p1:noneVariantMeasure>
|
||||||
|
65
src/scripts/.vscode/tasks.json
vendored
Normal file
65
src/scripts/.vscode/tasks.json
vendored
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
{
|
||||||
|
"version": "0.1.0",
|
||||||
|
"command": "oscript",
|
||||||
|
"isShellCommand": true,
|
||||||
|
"showOutput": "silent",
|
||||||
|
"args": [
|
||||||
|
"-encoding=utf-8"
|
||||||
|
],
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"taskName": "OneScript: compile",
|
||||||
|
"args": [
|
||||||
|
"-compile",
|
||||||
|
"${file}"
|
||||||
|
],
|
||||||
|
"echoCommand": true,
|
||||||
|
"showOutput": "always",
|
||||||
|
"suppressTaskName": true,
|
||||||
|
"isBuildCommand": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"taskName": "OneScript: check",
|
||||||
|
"args": [
|
||||||
|
"-check",
|
||||||
|
"${file}"
|
||||||
|
],
|
||||||
|
"echoCommand": true,
|
||||||
|
"showOutput": "always",
|
||||||
|
"suppressTaskName": true,
|
||||||
|
"isBuildCommand": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"taskName": "OneScript: make",
|
||||||
|
"args": [
|
||||||
|
"-make",
|
||||||
|
"${file}",
|
||||||
|
"${fileBasename}.exe"
|
||||||
|
],
|
||||||
|
"echoCommand": true,
|
||||||
|
"showOutput": "always",
|
||||||
|
"suppressTaskName": true,
|
||||||
|
"isBuildCommand": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"taskName": "OneScript: run",
|
||||||
|
"args": [
|
||||||
|
"${file}",
|
||||||
|
"1.0.1.012"
|
||||||
|
],
|
||||||
|
"echoCommand": true,
|
||||||
|
"showOutput": "always",
|
||||||
|
"suppressTaskName": true,
|
||||||
|
"isBuildCommand": true,
|
||||||
|
"problemMatcher": {
|
||||||
|
"fileLocation": "absolute",
|
||||||
|
"pattern": {
|
||||||
|
"regexp": "^{Модуль\\s+(.*)\\s\\/\\s.*:\\s+(\\d+)\\s+\\/\\s+(.*)}$",
|
||||||
|
"file": 1,
|
||||||
|
"location": 2,
|
||||||
|
"message": 3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
56
src/scripts/CreateRelease.os
Normal file
56
src/scripts/CreateRelease.os
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
#Использовать v8runner
|
||||||
|
#Использовать logos
|
||||||
|
|
||||||
|
Перем Лог;
|
||||||
|
Перем Конфигуратор;
|
||||||
|
Перем НоваяВерсия;
|
||||||
|
|
||||||
|
Процедура Инициализация()
|
||||||
|
Лог.УстановитьУровень(УровниЛога.Отладка);
|
||||||
|
|
||||||
|
Конфигуратор = Новый УправлениеКонфигуратором();
|
||||||
|
Конфигуратор.УстановитьКонтекст("/FD:\Cloud\Dev\Tasks\Base","Иванов Антон Борисович", "");
|
||||||
|
//Конфигуратор.ВыгрузитьКонфигурациюВФайлы("d:\Cloud\Dev\GitRep\Tasks\src\cf\")
|
||||||
|
|
||||||
|
//Версия = "1.0.1.012";
|
||||||
|
НоваяВерсия = АргументыКоманднойСтроки[0];
|
||||||
|
|
||||||
|
СоздатьФайлыПоставкиДляРелиза();
|
||||||
|
|
||||||
|
//СоздатьФайлыКомплектаДляРелиза();
|
||||||
|
|
||||||
|
Конецпроцедуры
|
||||||
|
|
||||||
|
Процедура СоздатьФайлыКомплектаДляРелиза()
|
||||||
|
КаталогСозданияФайловКомплектовПоставки = "d:\Cloud\Dev\Tasks\_Rel\distribute\"+НоваяВерсия+"\";
|
||||||
|
|
||||||
|
ИмяФайлаОписанияКомплектаПоставки = "d:\Cloud\Dev\Tasks\_Rel\releases\ОписаниеПоставки.edf";
|
||||||
|
Лог.Отладка("ИмяФайлаОписанияКомплектаПоставки "+ ИмяФайлаОписанияКомплектаПоставки);
|
||||||
|
Конфигуратор.СоздатьФайлыКомплекта(КаталогСозданияФайловКомплектовПоставки,ИмяФайлаОписанияКомплектаПоставки);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура СоздатьФайлыПоставкиДляРелиза()
|
||||||
|
КаталогРелизов = "d:\Cloud\Dev\Tasks\_Rel\releases\";
|
||||||
|
ПутьФайлаПолнойПоставки = КаталогРелизов + ""+НоваяВерсия+"\1Cv8.cf";
|
||||||
|
ПутьФайлаПоставкиОбновления = КаталогРелизов + ""+НоваяВерсия+"\1Cv8.cfu";
|
||||||
|
//Сообщить("ПутьФайлаПолнойПоставки "+ ПутьФайлаПолнойПоставки);
|
||||||
|
//Сообщить("ПутьФайлаПоставкиОбновления "+ ПутьФайлаПоставкиОбновления);
|
||||||
|
|
||||||
|
МассивДистрибутивовДляОбновления = Новый Массив();
|
||||||
|
НайденныеФайлы = НайтиФайлы(КаталогРелизов,"*");
|
||||||
|
Для каждого пФайл Из НайденныеФайлы Цикл
|
||||||
|
Если пФайл.ЭтоКаталог()
|
||||||
|
И пФайл.Имя <> НоваяВерсия Тогда
|
||||||
|
ПутьДистрибутиваДляОбновления = пФайл.ПолноеИмя + "\1Cv8.cf";
|
||||||
|
МассивДистрибутивовДляОбновления.Добавить(ПутьДистрибутиваДляОбновления);
|
||||||
|
Лог.Отладка("ПутьДистрибутиваДляОбновления "+ ПутьДистрибутиваДляОбновления);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Конфигуратор.СоздатьФайлыПоставки(ПутьФайлаПолнойПоставки,ПутьФайлаПоставкиОбновления,МассивДистрибутивовДляОбновления);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Инициализация
|
||||||
|
Лог = Логирование.ПолучитьЛог("СоздатьРелиз");
|
||||||
|
Инициализация();
|
255
src/scripts/distr_build.os
Normal file
255
src/scripts/distr_build.os
Normal file
@ -0,0 +1,255 @@
|
|||||||
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
// Демонстрационный скрипт создания дистрибутива
|
||||||
|
// Copyright: EvilBeaver <ovsiankin.aa@gmail.com> 2014
|
||||||
|
//
|
||||||
|
// Выполняет следующие шаги:
|
||||||
|
// 1. Получает из Хранилища крайнюю версию конфигурации
|
||||||
|
// 2. Создает на ее основе файл "конфигурации поставщика"
|
||||||
|
// 3. Собирает дистрибутив, включающий в себя конфигурацию поставщика
|
||||||
|
//
|
||||||
|
// Во время работы сценарий использует специальный "каталог сборки" (BuildArea) в котором
|
||||||
|
// накапливает временные файлы и сохраняет финальный результат.
|
||||||
|
//
|
||||||
|
// В качестве входных параметров используются:
|
||||||
|
// 1. Путь к хранилищу конфигурации
|
||||||
|
// 2. Логин/Пароль доступа в хранилище в виде строки Пользователь[:Пароль]
|
||||||
|
// (если пароля нет, то текст в квадратных скобках можно опустить)
|
||||||
|
// 3. Путь к файлу настройки дистрибутива (*.edf). Файл создается в Конфигураторе
|
||||||
|
// в меню Конфигурация\Поставка конфигурации\Комплект поставки.
|
||||||
|
// О том, как его создать см. документацию 1С:Предприятия 8
|
||||||
|
//
|
||||||
|
// Путь к платформе и каталог сборки жестко прописаны в процедуре ЗадатьНачальныеНастройки
|
||||||
|
//
|
||||||
|
// DISCLAIMER:
|
||||||
|
// Этот скрипт является примером использования OneScript и не может быть использован в реальных бизнес-решениях.
|
||||||
|
// Скрипт поставляется "как есть" и вы используете его на свой страх и риск.
|
||||||
|
// Вы также несете ответственность за любые желательные и нежелательные последствия его применения.
|
||||||
|
|
||||||
|
Перем мПараметрыДоступаКБазе;
|
||||||
|
Перем мПараметрыДоступаКХранилищу;
|
||||||
|
Перем мПутьКПлатформе;
|
||||||
|
Перем мКаталогСборки;
|
||||||
|
|
||||||
|
Функция СкопироватьМассив(Источник)
|
||||||
|
|
||||||
|
НовыйМассив = Новый Массив;
|
||||||
|
Для Каждого Элемент Из Источник Цикл
|
||||||
|
НовыйМассив.Добавить(Элемент);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат НовыйМассив;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ЗапуститьИПодождать(Параметры)
|
||||||
|
|
||||||
|
СтрокаЗапуска = "";
|
||||||
|
Для Каждого Параметр Из Параметры Цикл
|
||||||
|
|
||||||
|
СтрокаЗапуска = СтрокаЗапуска + " " + Параметр;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КодВозврата = 0;
|
||||||
|
ЗапуститьПриложение(мПутьКПлатформе + СтрокаЗапуска, , Истина, КодВозврата);
|
||||||
|
|
||||||
|
Возврат КодВозврата;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ФайлИнформации()
|
||||||
|
|
||||||
|
Возврат мКаталогСборки + "\log.txt";
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПутьКВременнойБазе()
|
||||||
|
Возврат мКаталогСборки + "\TempDB";
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура ВывестиФайлИнформации()
|
||||||
|
|
||||||
|
Файл = Новый Файл(ФайлИнформации());
|
||||||
|
Если Файл.Существует() Тогда
|
||||||
|
Чтение = Новый ЧтениеТекста(Файл.ПолноеИмя);
|
||||||
|
Сообщение = Чтение.Прочитать();
|
||||||
|
Сообщить(Сообщение);
|
||||||
|
Чтение.Закрыть();
|
||||||
|
Иначе
|
||||||
|
Сообщить("Информации об ошибке нет");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Функция ПараметрыВременнойБазы()
|
||||||
|
|
||||||
|
ПараметрыВремБазы = СкопироватьМассив(мПараметрыДоступаКБазе);
|
||||||
|
ПараметрыВремБазы[1] = "/F""" + ПутьКВременнойБазе() + """";
|
||||||
|
ПараметрыВремБазы.Удалить(2);
|
||||||
|
|
||||||
|
Возврат ПараметрыВремБазы;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура ПолучитьВерсиюИзХранилища()
|
||||||
|
|
||||||
|
КаталогСборки = мКаталогСборки;
|
||||||
|
|
||||||
|
Файл = Новый Файл(КаталогСборки);
|
||||||
|
Если НЕ Файл.Существует() Тогда
|
||||||
|
СоздатьКаталог(КаталогСборки);
|
||||||
|
ИначеЕсли Не Файл.ЭтоКаталог() Тогда
|
||||||
|
ВызватьИсключение "Каталог сборки не является каталогом";
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПараметрыПолучитьВерсию = СкопироватьМассив(мПараметрыДоступаКХранилищу);
|
||||||
|
ПараметрыПолучитьВерсию.Добавить("/ConfigurationRepositoryDumpCfg """+КаталогСборки+"\source.cf""");
|
||||||
|
|
||||||
|
Сообщить("Получение версии из хранилища");
|
||||||
|
КодВозврата = ЗапуститьИПодождать(ПараметрыПолучитьВерсию);
|
||||||
|
Если КодВозврата = 0 Тогда
|
||||||
|
Сообщить("Версия получена");
|
||||||
|
Иначе
|
||||||
|
Сообщить("Не удалось получить версию из хранилища:");
|
||||||
|
ВывестиФайлИнформации();
|
||||||
|
ЗавершитьРаботу(1);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура СоздатьВременнуюБазу()
|
||||||
|
|
||||||
|
КаталогВременнойБазы = ПутьКВременнойБазе();
|
||||||
|
Файл = Новый Файл(КаталогВременнойБазы);
|
||||||
|
Если Не Файл.Существует() Тогда
|
||||||
|
СоздатьКаталог(КаталогВременнойБазы);
|
||||||
|
ИначеЕсли Файл.ЭтоКаталог() Тогда
|
||||||
|
УдалитьФайлы(КаталогВременнойБазы, "*.*");
|
||||||
|
Иначе
|
||||||
|
ВызватьИсключение "Не удалось создать каталог временной базы TempDB";
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПараметрыЗапуска = Новый Массив;
|
||||||
|
ПараметрыЗапуска.Добавить("CREATEINFOBASE");
|
||||||
|
ПараметрыЗапуска.Добавить("File="""+КаталогВременнойБазы+""";");
|
||||||
|
ПараметрыЗапуска.Добавить("/UseTemplate""" + мКаталогСборки + "\source.cf" + """");
|
||||||
|
ПараметрыЗапуска.Добавить("/Out""" + ФайлИнформации() + """");
|
||||||
|
|
||||||
|
Сообщить("Создание временной базы");
|
||||||
|
КодВозврата = ЗапуститьИПодождать(ПараметрыЗапуска);
|
||||||
|
Если КодВозврата = 0 Тогда
|
||||||
|
Сообщить("Временная база создана");
|
||||||
|
Иначе
|
||||||
|
Сообщить("Не удалось создать временную базу:");
|
||||||
|
ВывестиФайлИнформации();
|
||||||
|
ЗавершитьРаботу(1);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура СоздатьФайлПоставки()
|
||||||
|
|
||||||
|
ПараметрыВремБазы = ПараметрыВременнойБазы();
|
||||||
|
|
||||||
|
ПараметрыВремБазы.Добавить("/CreateDistributionFiles -cffile """ + мКаталогСборки + "\1cv8.cf" + """");
|
||||||
|
|
||||||
|
Сообщить("Создание файла поставки");
|
||||||
|
Если ЗапуститьИПодождать(ПараметрыВремБазы) = 0 Тогда
|
||||||
|
Сообщить("Файл поставки создан");
|
||||||
|
Иначе
|
||||||
|
Сообщить("Не удалось создать файл поставки:");
|
||||||
|
ВывестиФайлИнформации();
|
||||||
|
ЗавершитьРаботу(1);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура СоздатьДистрибутив()
|
||||||
|
|
||||||
|
КаталогСборки = мКаталогСборки + "\setup";
|
||||||
|
Файл = Новый Файл(КаталогСборки);
|
||||||
|
Если Не Файл.Существует() Тогда
|
||||||
|
СоздатьКаталог(КаталогСборки);
|
||||||
|
ИначеЕсли Файл.ЭтоКаталог() Тогда
|
||||||
|
УдалитьФайлы(КаталогСборки, "*.*");
|
||||||
|
Иначе
|
||||||
|
ВызватьИсключение "Не удалось создать каталог сборки";
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
// Сюда должен быть передан путь к файлу настройки дистрибутива, например:
|
||||||
|
// "С:\Users\Андрей\Documents\install.edf";
|
||||||
|
|
||||||
|
ФайлПараметров = АргументыКоманднойСтроки[2];
|
||||||
|
|
||||||
|
ПараметрыВремБазы = ПараметрыВременнойБазы();
|
||||||
|
ПараметрыВремБазы.Добавить("/CreateDistributive """ + КаталогСборки + """");
|
||||||
|
ПараметрыВремБазы.Добавить("-File """ + ФайлПараметров + """");
|
||||||
|
ПараметрыВремБазы.Добавить("-MakeSetup");
|
||||||
|
|
||||||
|
Сообщить("Создание дистрибутива");
|
||||||
|
Если ЗапуститьИПодождать(ПараметрыВремБазы) = 0 Тогда
|
||||||
|
Сообщить("Дистрибутив создан");
|
||||||
|
Иначе
|
||||||
|
Сообщить("Не удалось создать дистрибутив:");
|
||||||
|
ВывестиФайлИнформации();
|
||||||
|
ЗавершитьРаботу(1);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Функция ОпределитьПараметрыВходаВХранилище(Знач СтрокаПараметров)
|
||||||
|
|
||||||
|
ПараметрыВхода = Новый Структура;
|
||||||
|
|
||||||
|
ПозицияРазделителя = Найти(СтрокаПараметров,":");
|
||||||
|
|
||||||
|
Если ПозицияРазделителя > 0 Тогда
|
||||||
|
ПараметрыВхода.Вставить("Пользователь", Лев(СтрокаПараметров, ПозицияРазделителя-1));
|
||||||
|
ПараметрыВхода.Вставить("Пароль", Сред(СтрокаПараметров, ПозицияРазделителя+1));
|
||||||
|
Иначе
|
||||||
|
ПараметрыВхода.Вставить("Пользователь", СтрокаПараметров);
|
||||||
|
ПараметрыВхода.Вставить("Пароль", "");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат ПараметрыВхода;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура ЗадатьНачальныеНастройки()
|
||||||
|
|
||||||
|
Если АргументыКоманднойСтроки.Количество() <> 3 Тогда
|
||||||
|
Сообщить("Не заданы аргументы командной строки");
|
||||||
|
Сообщить("Требуется задать:");
|
||||||
|
Сообщить("<КаталогХранилища> <ПользовательХранилища[:ПарольХранилища]> <ПараметрыДистрибутива>");
|
||||||
|
ЗавершитьРаботу(1);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
мПутьКПлатформе = """C:\Program Files (x86)\1cv82\8.2.19.102\bin\1cv8.exe""";
|
||||||
|
мКаталогСборки = "c:\Users\Андрей\Documents\1C\BuildArea";
|
||||||
|
|
||||||
|
КаталогИБ = ПутьКВременнойБазе();
|
||||||
|
Хранилище = АргументыКоманднойСтроки[0];
|
||||||
|
ВходВХранилище = ОпределитьПараметрыВходаВХранилище(АргументыКоманднойСтроки[1]);
|
||||||
|
|
||||||
|
мПараметрыДоступаКБазе = Новый Массив;
|
||||||
|
мПараметрыДоступаКБазе.Добавить("DESIGNER");
|
||||||
|
мПараметрыДоступаКБазе.Добавить("/F""" + КаталогИБ + """");
|
||||||
|
мПараметрыДоступаКБазе.Добавить("/Out""" + ФайлИнформации() + """");
|
||||||
|
|
||||||
|
мПараметрыДоступаКХранилищу = СкопироватьМассив(мПараметрыДоступаКБазе);
|
||||||
|
мПараметрыДоступаКХранилищу.Добавить("/ConfigurationRepositoryF """+Хранилище+"""");
|
||||||
|
мПараметрыДоступаКХранилищу.Добавить("/ConfigurationRepositoryN """ + ВходВХранилище.Пользователь + """");
|
||||||
|
Если Не ПустаяСтрока(ВходВХранилище.Пароль) Тогда
|
||||||
|
мПараметрыДоступаКХранилищу.Добавить("/ConfigurationRepositoryP """ + ВходВХранилище.Пароль + """");
|
||||||
|
КонецЕсли;
|
||||||
|
мПараметрыДоступаКХранилищу.Добавить("/DisableStartupDialogs /DisableStartupMessages");
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
ЗадатьНачальныеНастройки();
|
||||||
|
СоздатьВременнуюБазу();
|
||||||
|
ПолучитьВерсиюИзХранилища();
|
||||||
|
СоздатьФайлПоставки();
|
||||||
|
СоздатьДистрибутив();
|
||||||
|
Сообщить("Работа завершена");
|
||||||
|
|
1
src/scripts/nqepbsnk.si1.txt
Normal file
1
src/scripts/nqepbsnk.si1.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Создание файлов поставки успешно завершено
|
Loading…
x
Reference in New Issue
Block a user