1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-03-17 20:58:01 +02:00

Скрипт для создания релиза (еще не закончен)

This commit is contained in:
Anton Ivanov 2016-12-22 08:30:06 +03:00
parent db9d669a9f
commit 61d02f75e2
5 changed files with 380 additions and 3 deletions

View File

@ -2982,9 +2982,9 @@
<d3p1:fixedVariantMeasure>Day</d3p1:fixedVariantMeasure>
<d3p1:fixedVariantInterval>1</d3p1:fixedVariantInterval>
<d3p1:autoFullInterval>true</d3p1:autoFullInterval>
<d3p1:fullIntervalBegin>2016-12-13T19:00:00</d3p1:fullIntervalBegin>
<d3p1:fullIntervalEnd>2016-12-22T19:59:59</d3p1:fullIntervalEnd>
<d3p1:visualBegin>2016-12-13T19:00:00</d3p1:visualBegin>
<d3p1:fullIntervalBegin>2016-12-18T09:00:00</d3p1:fullIntervalBegin>
<d3p1:fullIntervalEnd>2016-12-27T09:59:59</d3p1:fullIntervalEnd>
<d3p1:visualBegin>2016-12-18T09:00:00</d3p1:visualBegin>
<d3p1:intervalDrawType>Gradient</d3p1:intervalDrawType>
<d3p1:noneVariantChars>3</d3p1:noneVariantChars>
<d3p1:noneVariantMeasure>Day</d3p1:noneVariantMeasure>

65
src/scripts/.vscode/tasks.json vendored Normal file
View 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
}
}
}
]
}

View 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
View 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");
КонецПроцедуры
ЗадатьНачальныеНастройки();
СоздатьВременнуюБазу();
ПолучитьВерсиюИзХранилища();
СоздатьФайлПоставки();
СоздатьДистрибутив();
Сообщить("Работа завершена");

View File

@ -0,0 +1 @@
Создание файлов поставки успешно завершено