Skip to content

Commit

Permalink
Merged release/v0.6.0 into master
Browse files Browse the repository at this point in the history
  • Loading branch information
nixel2007 committed Feb 20, 2017
2 parents 99e4e19 + 5430e32 commit e0b0e5c
Show file tree
Hide file tree
Showing 11 changed files with 2,743 additions and 2,420 deletions.
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
*.bsl eol=crlf
*.os eol=crlf
*.sh eol=lf
*.bat eol=crlf
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
build/
*.log
*.log
*.ospx
75 changes: 75 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
#!groovy
node("qanode") {

stage('Получение исходных кодов') {


//git url: 'https://github.com/silverbulleters/vanessa-agiler.git'

checkout scm
if (env.DISPLAY) {
println env.DISPLAY;
} else {
env.DISPLAY=":1"
}
env.RUNNER_ENV="production";

if (isUnix()) {sh 'git config --system core.longpaths true'} else {bat "git config --system core.longpaths true"}

if (isUnix()) {sh 'git submodule update --init'} else {bat "git submodule update --init"}
}

stage('Контроль технического долга'){

if (env.QASONAR) {

println env.QASONAR;
def sonarcommand = "@\"./../../tools/hudson.plugins.sonar.SonarRunnerInstallation/Main_Classic/bin/sonar-scanner\""
withCredentials([[$class: 'StringBinding', credentialsId: env.SonarOAuthCredentianalID, variable: 'SonarOAuth']]) {
sonarcommand = sonarcommand + " -Dsonar.host.url=http://sonar.silverbulleters.org -Dsonar.login=${env.SonarOAuth}"
}

// Get version
def configurationText = readFile encoding: 'UTF-8', file: 'packagedef'
def configurationVersion = (configurationText =~ /Версия\(\"(.*)\"\)/)[0][1]
sonarcommand = sonarcommand + " -Dsonar.projectVersion=${configurationVersion}"

def makeAnalyzis = true
if (env.BRANCH_NAME == "develop") {
echo 'Analysing develop branch'
} else if (env.BRANCH_NAME.startsWith("release/")) {
sonarcommand = sonarcommand + " -Dsonar.branch=${BRANCH_NAME}"
} else if (env.BRANCH_NAME.startsWith("PR-")) {
// Report PR issues
def PRNumber = env.BRANCH_NAME.tokenize("PR-")[0]
def gitURLcommand = 'git config --local remote.origin.url'
def gitURL = ""

if (isUnix()) {
gitURL = sh(returnStdout: true, script: gitURLcommand).trim()
} else {
gitURL = bat(returnStdout: true, script: gitURLcommand).trim()
}

def repository = gitURL.tokenize("/")[2] + "/" + gitURL.tokenize("/")[3]
repository = repository.tokenize(".")[0]
withCredentials([[$class: 'StringBinding', credentialsId: env.GithubOAuthCredentianalID, variable: 'githubOAuth']]) {
sonarcommand = sonarcommand + " -Dsonar.analysis.mode=issues -Dsonar.github.pullRequest=${PRNumber} -Dsonar.github.repository=${repository} -Dsonar.github.oauth=${env.githubOAuth}"
}
} else {
makeAnalyzis = false
}

if (makeAnalyzis) {
if (isUnix()) {
sh '${sonarcommand}'
} else {
bat "${sonarcommand}"
}
}
} else {
echo "QA runner not installed"
}
}

}
37 changes: 30 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,39 @@
Примеры автоматизации базовых операций
Автомаматизация повседневных операций 1С разработчика
==

[![Gitter](https://badges.gitter.im/silverbulleters/vanessa-runner.svg)](https://gitter.im/silverbulleters/vanessa-runner?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)

[![SonarQube Tech Debt](https://img.shields.io/sonar/https/sonar.silverbulleters.org/vanessa-runner/tech_debt.svg)](https://sonar.silverbulleters.org/dashboard?id=vanessa-runner)

Описание
===

Пример автоматизации различных операции для работы с cf/cfe/epf файлами и простой запуск vanessa-behavior и xunitfor1c тестов.
Основной код сосредоточен в tools/runner.os , ключ --help покажет справку по параметрам.
Библиотека `oscript.io` для автоматизации различных операции для работы с `cf/cfe/epf` файлами и простой запуск `vanessa-behavior` и `xunitfor1c` тестов.

Предназначена для организации разработки 1С в режиме когда работа в git идет напрямую с исходниками.

Позволяет обеспечить единообразный запуск команд "локально" и на серверах сборки `CI-CD`


Установка
===

используйте пакетный менеджер `opm` из стандартной поставки дистрибутива `ocript.io`

```
opm install vanessa-runner
```

при установке будет создан исполняемый файл `runner` в каталоге `bin` интерпретатора `oscript`, после чего доступно выполнение команд через командную строку `runner <имя команды>`


Использование
===

Основной код сосредоточен в `tools/runner.os` , ключ `--help` покажет справку по параметрам.

```
runner --help
```

В папке tools так же расположенны примеры bat файлов для легкого запуска определенных действий.
Основной принцип - запустили bat файл с настроенными командами и получили результат.
Expand All @@ -26,6 +52,3 @@
Вся разработка в конфигураторе делается в каталоге build, по окончанию доработок запускаем ```tools\decompile_epf.bat```

Обязательно наличине установленного v8unpack версии не ниже 3.0.38 в переменной PATH. Установку можно взять https://github.com/dmpas/v8unpack#build



37 changes: 18 additions & 19 deletions examples/.conf.json
Original file line number Diff line number Diff line change
@@ -1,32 +1,31 @@
{
"ИмяСборки":"Сборка 8.3.7 UF",
"ВерсияПлатформы":"8.3.7",
"ВыводитьСообщенияВФайл": ".\vanessalog.txt",
"КаталогПоискаВерсииПлатформы":"C:\Program Files (x86)\1cv8",
"СтрокаПодключенияКБазе":"ENTERPRISE /F.\ServiceBases\v83ServiceBase",
"EpfДляИнициализацияБазы": ".\epf\init.epf",
"ПараметрыДляИнициализацияБазы": ".\epf\init.json",
"ПутьКVanessaBehavior": ".\..\vanessa-behavior.epf",
"КаталогФич": ".\..\features",
"ИмяСборки":"default",
"ВерсияПлатформы":"8.3",
"ВыводитьСообщенияВФайл": "$workspaceRoot/message.txt",
"EpfДляИнициализацияБазы": "./tools/epf/init.epf",
"ПараметрыДляИнициализацияБазы": "./tools/epf/init.json",
"КаталогФич": "$workspaceRoot/features",
"КаталогиБиблиотек":[
".\vanessa-behavior\features\Libraries"
"$workspaceRoot/features/Libraries"
],
"ВыполнитьСценарии": "Истина",
"ЗавершитьРаботуСистемы": "Ложь",
"ЗавершитьРаботуСистемы": "Истина",
"ЗакрытьTestClientПослеЗапускаСценариев": "Истина",
"ДелатьЛогВыполненияСценариевВЖР": "Истина",
"ДелатьОтчетВФорматеАллюр": "Истина",
"КаталогOutputAllureБазовый": ".\ServiceBases\allurereport",
"СоздаватьПодкаталогВКаталогеAllureДляЭтойСборки": "Истина",
"ДелатьСкриншотПриВозникновенииОшибки": "Ложь",
"КаталогOutputСкриншоты": ".\ServiceBases\ScreenShots",
"КомандаСделатьСкриншот": '"C:\Program Files (x86)\IrfanView\i_view32.exe" /capture=2 /convert=',
"КаталогOutputAllureБазовый": "$workspaceRoot/../allurereport",
"СоздаватьПодкаталогВКаталогеAllureДляЭтойСборки": "Ложь",
"ДелатьСкриншотПриВозникновенииОшибки": "Истина",
"КаталогOutputСкриншоты": "$workspaceRoot/../allurereport/screen",
"КомандаСделатьСкриншот":"nircmd.exe savescreenshot ",
"ВыгружатьСтатусВыполненияСценариевВФайл": "Истина",
"ДобавлятьКИмениСценарияУловияВыгрузки": "Истина",
"ПутьКФайлуДляВыгрузкиСтатусаВыполненияСценариев": ".\BuildStatus.log",
"КаталогСкриптовСборкиВидео": ".\..\..\vanessa-ci\MakeVideoInstr",
"ДобавлятьКИмениСценарияУловияВыгрузки": "Ложь",
"ПутьКФайлуДляВыгрузкиСтатусаВыполненияСценариев": "$workspaceRoot/../buildstatus.log",
"КаталогСкриптовСборкиВидео": "$workspaceRoot/",
"СписокТеговИсключение":[
"IgnoreOnCIMainBuild",
"IgnoreOn837"
],
"СписокТеговОтбор":[
]
}
74 changes: 74 additions & 0 deletions examples/example.env.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{
"default": {
"--ibname":"/F./build/ib",
"--db-user":"",
"--db-pwd":"",
"--v8version":"8.3.9.2033"
},
"xunit": {
"inputPath":"./tests/",
"--reportxunit":"./build/xunit.xml"
},
"vanessa":{
"--vanessasettings":"./build/out/tools/.conf.json",
"--workspace":"./build/out/",
"--pathvanessa":"d:/git/vanessa/build/out/epf/vanessa-behavior.epf",
"--additional":"/DisplayAllFunctions /L uk"
},
"compile":{
"inputPath":"./cf",
"outputPath":"./build/1Cv8.cf"
},
"compilecurrent":{
"inputPath":"./cf"
},
"decompile":{
"inputPath":"./build/1Cv8.cf",
"outputPath":"./cf"
},
"decompilecurrent":{
"outputPath":"./build/1Cv8.cf"
},
"compileepf":{
"--ibname":"/F./build/ibservice",
"inputPath":"./epf/",
"outputPath":"./build/out/epf"
},
"decompileepf":{
"--ibname":"/F./build/ibservice",
"inputPath":"./build/out/epf",
"outputPath":"./epf/"
},
"updatedb":{
"--ibname":"/F./build/ib",
"--db-user":"bot",
"--db-pwd":"123",
"--uccode":"godModeOn"
},
"run":{
"--uccode":"godModeOFF",
"--command": "ЗапуститьОбновлениеИБ;РежимОтладки;ОтключитьЛогикуРаботыПрограммы;",
"--execute": "./build/out/epf/admin/ЗавершитьРаботу.epf"
},
"loadrepo":{
"--ibname":"/F./build/ibservice",
"--storage-name":"tcp://serverstorage/erp",
"--storage-user":"bot",
"--storage-pwd":"123"
},
"designer":{
"--ibname":"/Sserveronec/devib",
"--storage-name":"tcp://serverstorage/erp",
"--storage-user":"bot",
"--storage-pwd":"123"
},
"compileext":{
"inputPath":"./cfe/Доработки",
"outputPath":"Доработки"
},
"decompileext": {
"inputPath": "Доработки",
"outputPath": "./cfe/Доработки"
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

Структура сценария: <Имя сценария>
Когда Я выполняю команду "oscript" c параметрами <ПараметрыКомандыПомощь>
Тогда Вывод команды "oscript" содержит "Vanessa-runner v"
Тогда Вывод команды "oscript" содержит "vanessa-runner v"
И Код возврата команды "oscript" равен 0

Примеры:
Expand Down
46 changes: 46 additions & 0 deletions features/ПереопределениеНастроек.docfeature
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# language: ru

Функционал: Переопределение настроек из файла конфигурации
Как разработчик
Я хочу иметь возможность создать файл настроек подключения к базам
Чтобы выполнять простые команды без указания большого количества параметров

Контекст: Подготовка репозитория и рабочего каталога проекта 1С
Допустим Я создаю временный каталог и сохраняю его в контекст
И Я устанавливаю временный каталог как рабочий каталог
И Я инициализирую репозиторий git в рабочем каталоге

Допустим Я копирую файл "env.json" из каталога "tests/fixtures" проекта в подкаталог "./" рабочего каталога
И Я копирую файл "fixture.epf" из каталога "tests/fixtures" проекта в подкаталог "build/out/epf" рабочего каталога
И Я копирую каталог "cf" из каталога "tests/fixtures" проекта в рабочий каталог
И Я установил рабочий каталог как текущий каталог
И Я выполняю первоначальную инициализирую репозитория

Сценарий: Проверка выполнения комманды decompileefp
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/tools/runner.os decompileefp"
И Я сообщаю вывод команды "oscript"
Тогда Вывод команды "oscript" не содержит "Неверное значение аргумента"
И Код возврата команды "oscript" равен 0
И Каталог "epf/fixture" существует

Сценарий: Порядка переопределения параметров в файле env.json
Когда я устанавливаю в файле 'env.json' в настройке 'default' параметр '--ibname' значением 'test'
Тогда по умолчанию во все команды добавляется '--ibname' равный 'test'

Сценарий: Порядка переопределения параметров в файле env.json разделы default и отдельно для команды decompileefp
Когда я устанавливаю в файле 'env.json' в настройке 'default' параметр '--ibname' значением 'test'
И я устанавливаю в файле 'env.json' в настройке 'decompileefp' параметр '--ibname' значением 'test2'
Тогда для команды 'decompileefp' параметр '--ibname' равен 'test2'
И для команды 'decompile' параметр '--ibname' равен 'test'

Сценарий: Порядок переопределения параметров в файле env.json параметром командной строки и переменной окружения
Когда я устанавливаю в файле 'env.json' в настройке 'default' параметр '--ibname' значением 'test'
И я устанавливаю в файле 'env.json' в настройке 'default' параметр '--db-user' значением 'testuser'
И я устанавливаю в файле 'env.json' в настройке 'default' параметр '--db-pwd' значением 'testpwd'
И я устанавливаю переменную окружения 'RUNNER_DBUSER' равной 'envuser'
И я устанавливаю переменную окружения 'RUNNER_DBPWD' равной 'envpwd'
И Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/tools/runner.os decompileefp --db-pwd cmdpwd"
Тогда значения параметра '--ibname' для команды 'decompileefp' равно 'test'
И значения параметра '--db-user' для команды 'decompileefp' равно 'envtest'
И значения параметра '--db-pwd' для команды 'decompileefp' равно 'cmdpwd'

2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

Описание.Имя("vanessa-runner")
.Версия("0.5.1")
.Версия("0.6.0")
.ЗависитОт("logos")
.ЗависитОт("cmdline")
.ЗависитОт("logos")
Expand Down
13 changes: 13 additions & 0 deletions sonar-project.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# must be unique in a given SonarQube instance
sonar.projectKey=vanessa-runner
# this is the name displayed in the SonarQube UI
sonar.projectName=Vanessa Runner

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional if sonar.modules is set.
# If not set, SonarQube starts looking for source code from the directory containing
# the sonar-project.properties file.
sonar.sources=./tools,./epf,./features

# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8
Loading

0 comments on commit e0b0e5c

Please sign in to comment.