Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
7ae9dd2
Точка выхода в приложение
khorevaa Jul 18, 2018
86ce326
Удален не нужный файл
khorevaa Jul 18, 2018
47d50c5
Удалены не нужные файлы
khorevaa Jul 18, 2018
8de1e45
Зависимость от cli
khorevaa Jul 18, 2018
4754320
Скорректирована команда app
khorevaa Jul 18, 2018
6ddd05d
Переведена команда build
khorevaa Jul 18, 2018
0be7b75
Корректное наименование команды app
khorevaa Jul 18, 2018
ee7f9bd
Переведена команда config
khorevaa Jul 18, 2018
e2513be
Переведена команда install
khorevaa Jul 18, 2018
5d6a3dd
Переведена команда list
khorevaa Jul 18, 2018
ab68b3d
Переведена команда prepare
khorevaa Jul 18, 2018
d47ca38
Переведена команда run
khorevaa Jul 18, 2018
ea0e9aa
Переведена команда test
khorevaa Jul 18, 2018
ca2bb88
Переведена команда update
khorevaa Jul 18, 2018
b6be33e
Переведена команда version
khorevaa Jul 18, 2018
54400c4
Переведена команда push
khorevaa Jul 18, 2018
7912e47
Исправления ошибок перевода на cli
khorevaa Jul 18, 2018
9c8711f
Корректировка тестирования на travis-ci
khorevaa Jul 18, 2018
95e382b
Дополнение gitignore
khorevaa Jul 18, 2018
61f0820
Корректное подключение либы opm
khorevaa Jul 18, 2018
5927247
Уменьшина версия cli
khorevaa Jul 18, 2018
732e594
Merge branch 'develop' into feature/cli-lib
khorevaa Jul 18, 2018
2a300fa
Улучшения справки
khorevaa Jul 19, 2018
4bf4b32
Повышена зависимость от cli@0.9.10
khorevaa Jul 19, 2018
6b22d3b
Корректный импорт библотеки opm
khorevaa Jul 19, 2018
724b88a
Импорт только core - cmd -нельзя циклическая зависимость
khorevaa Jul 19, 2018
8891003
Проброс GITHUB_OAUTH_TOKEN в докер контейнер
khorevaa Jul 19, 2018
9b74c28
Исправлены тесты на настройки
khorevaa Jul 31, 2018
5082812
Установка питона в докер при тестировании
khorevaa Jul 31, 2018
8dc5b92
Обновление пакетов в докере
khorevaa Jul 31, 2018
7ac79a4
Установка флага согласия на установку пакета
khorevaa Jul 31, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
oscript_modules/
test-reports/
coverage/
oscript_modules/*
tests-reports/*
coverage/*
bdd-*.xml
*.ospx
src/oscript.cfg

Expand Down
80 changes: 63 additions & 17 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,31 +1,77 @@
sudo: required
language: generic

dist: trusty
notifications:
email: false
env:
global:
- CHANNEL=dev
- PACKAGE_NAME=opm
matrix:
- OSCRIPT_VERSION=1_0_20
- OSCRIPT_VERSION=night-build
matrix:
allow_failures:
- env: OSCRIPT_VERSION=night-build

addons:
sonarqube: true
services:
- docker

addons:
sonarqube: true

jdk:
- oraclejdk8

before_install:
- sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
- echo "deb http://download.mono-project.com/repo/ubuntu trusty main" | sudo tee /etc/apt/sources.list.d/mono-official.list
- sudo apt-get update
- sudo apt-get install mono-complete mono-devel
- wget -O os.deb http://oscript.io/downloads/night-build/deb
- sudo dpkg -i os.deb; sudo apt install -f
- oscript
- sudo opm install 1testrunner
- sudo opm install 1bdd
before_install:
# Load cached docker images
- if [[ -d $HOME/docker ]]; then ls $HOME/docker/*.tar.gz | xargs -I {file} sh -c "zcat {file} | docker load"; fi

before_cache:
# Save tagged docker images
- >
mkdir -p $HOME/docker && docker images -a --filter='dangling=false' --format '{{.Repository}}:{{.Tag}} {{.ID}}'
| xargs -n 2 -t sh -c 'test -e $HOME/docker/$1.tar.gz || docker save $0 | gzip -2 > $HOME/docker/$1.tar.gz'

install:
- sudo oscript /usr/share/oscript/lib/opm/src/opm.os install -l
- docker pull evilbeaver/onescript:1.0.19

script:
- docker version
- docker run -it -e OSCRIPT_VERSION=$OSCRIPT_VERSION -v $(pwd):/work_dir evilbeaver/onescript:1.0.19 sh -c 'cd /work_dir; sh /work_dir/travis-ci.sh; exit' | tee /tmp/test.log
- grep 'Результат прогона тестов <Да>' /tmp/test.log
after_success:
# - bash <(curl -s https://codecov.io/bash)
- ./sonar-qube.sh

cache:
directories:
- '$HOME/.m2/repository'
- '$HOME/.sonar/cache'

script:
- ./travis.sh
- '$HOME/docker'
jobs:
include:
- stage: Сборка и публикация github & hub.oscript.io
script: skip
before_deploy:
- docker run -it -v $(pwd):/work_dir evilbeaver/onescript:1.0.19 sh -c 'cd /work_dir; opm build ./ ; exit'
deploy:
- provider: releases
api_key: "$GITHUB_OAUTH_TOKEN"
file_glob: true
file: $PACKAGE_NAME*.ospx
skip_cleanup: true
on:
branch: master
tags: true
- provider: script
skip_cleanup: true
script: docker run -it -e GITHUB_OAUTH_TOKEN=$GITHUB_OAUTH_TOKEN -v $(pwd):/work_dir evilbeaver/onescript:1.0.19 sh -c 'cd /work_dir; opm push --token $GITHUB_OAUTH_TOKEN --channel dev --file ./$PACKAGE_NAME-*.ospx; exit'
on:
branch: develop
- provider: script
skip_cleanup: true
script: docker run -it -e GITHUB_OAUTH_TOKEN=$GITHUB_OAUTH_TOKEN -v $(pwd):/work_dir evilbeaver/onescript:1.0.19 sh -c 'cd /work_dir; opm push --token $GITHUB_OAUTH_TOKEN --channel stable --file ./$PACKAGE_NAME-*.ospx; exit'
on:
branch: master
tags: true
126 changes: 122 additions & 4 deletions features/step_definitions/Настройки.os
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd
#Использовать asserts

#Использовать "../../src"
#Использовать "../../src/core"

Перем БДД; //контекст фреймворка 1bdd

Expand Down Expand Up @@ -33,10 +33,11 @@
Процедура ЯЧитаюНастройкиИзФайла(Знач ПутьФайла) Экспорт
Файл = Новый Файл(ОбъединитьПути(ТекущийКаталог(), ПутьФайла));
// Ожидаем.Что(Файл.Существует(), СтрШаблон("Ожидали, что файл <%1> существует, а это не так!", Файл.ПолноеИмя)).ЭтоИстина();
НастройкиOpm.СброситьНастройки();
НастроитьOpmИзФайла(Файл.ПолноеИмя);
// НастройкиOpm.УстановитьФайлНастроек(Файл.ПолноеИмя);

НастройкиПриложенияOpm.УстановитьФайлНастроек(Файл.ПолноеИмя);

Настройки = НастройкиПриложенияOpm.Получить();
Настройки = НастройкиOpm.ПолучитьНастройки();
БДД.СохранитьВКонтекст(КлючКонтекста(), Настройки);
КонецПроцедуры

Expand Down Expand Up @@ -75,6 +76,123 @@
Возврат Значение;
КонецФункции

Процедура НастроитьOpmИзФайла(ПутьКФайлуНастроек)

НастройкиOpmИзФайлов = ПрочитатьФайлНастроек(ПутьКФайлуНастроек);

Если НастройкиOpmИзФайлов.Количество() = 0 Тогда
Возврат;
КонецЕсли;

НастройкиПроксиЕсть = ПолучитьЗначение(НастройкиOpmИзФайлов,"Прокси", Неопределено);

Если Не НастройкиПроксиЕсть = Неопределено Тогда

НастройкиПрокси = НастройкиOpmИзФайлов.Прокси;

Сервер = ПолучитьЗначение(НастройкиПрокси, "Сервер", "");
Порт = Число(ПолучитьЗначение(НастройкиПрокси, "Порт", 0));
Пользователь = ПолучитьЗначение(НастройкиПрокси, "Пользователь", "");
Пароль = ПолучитьЗначение(НастройкиПрокси, "Пароль", "");

НастройкиOpm.УстановитьНастройкиПроксиСервера(Сервер, Порт, Пользователь, Пароль);

ПроксиПоУмолчанию = ПолучитьЗначение(НастройкиПрокси,"ПроксиПоУмолчанию", Неопределено);

Если Не ПроксиПоУмолчанию = Неопределено Тогда

НастройкиOpm.УстановитьСистемныеНастройкиПроксиСервера(ПроксиПоУмолчанию);

КонецЕсли;

ИспользованиеПрокси = ПолучитьЗначение(НастройкиПрокси,"ИспользованиеПрокси", Неопределено);

Если Не ИспользованиеПрокси = Неопределено Тогда

НастройкиOpm.УстановитьИспользованиеПрокси(ИспользованиеПрокси);

КонецЕсли;

КонецЕсли;

СоздаватьShСкриптЗапуска = ПолучитьЗначение(НастройкиOpmИзФайлов,"СоздаватьShСкриптЗапуска", Неопределено);

Если Не СоздаватьShСкриптЗапуска = Неопределено Тогда

НастройкиOpm.УстановитьСозданиеShСкриптЗапуска(СоздаватьShСкриптЗапуска);

КонецЕсли;

СервераПакетов = ПолучитьЗначение(НастройкиOpmИзФайлов,"СервераПакетов", Неопределено);

Если Не СервераПакетов = Неопределено Тогда
Индекс = 1;

Для каждого ДополнительныйСервер Из СервераПакетов Цикл

Сервер = ПолучитьЗначение(ДополнительныйСервер, "Сервер", "");
Порт = Число(ПолучитьЗначение(ДополнительныйСервер, "Порт", 80));
ПутьНаСервере = ПолучитьЗначение(ДополнительныйСервер, "ПутьНаСервере", "/");
Имя = ПолучитьЗначение(ДополнительныйСервер, "Имя", СтрШаблон("ДопСервер_%1",Индекс));
Приоритет = Число(ПолучитьЗначение(ДополнительныйСервер, "Приоритет", 0));

Если ПустаяСтрока(Сервер) Тогда
// Лог.Отладка("Для дополнительного сервера <%1> не задан адрес", Индекс);
Продолжить;
КонецЕсли;

НастройкиOpm.ДобавитьСерверПакетов(Имя, Сервер, ПутьНаСервере, Порт, Приоритет);
Индекс = Индекс +1;

КонецЦикла;

КонецЕсли;

КонецПроцедуры

Функция ПрочитатьФайлНастроек(Знач ПутьФайлаНастроек)

Если НЕ Новый Файл(ПутьФайлаНастроек).Существует() Тогда
Возврат НОвый Соответствие;
КонецЕсли;

Текст = ПрочитатьФайл(ПутьФайлаНастроек);

Чтение = Новый ПарсерJSON;
Настройки = Чтение.ПрочитатьJSON(Текст,,,Истина);

Возврат Настройки;

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

Функция ПрочитатьФайл(Знач Путь)

Чтение = Новый ЧтениеТекста(Путь);
Текст = Чтение.Прочитать();
Чтение.Закрыть();

Возврат Текст;

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

Функция ПолучитьЗначение(ВходящаяСтруктура, Ключ, ЗначениеПоУмолчанию)

Перем ЗначениеКлюча;

Если Не ВходящаяСтруктура.Свойство(Ключ, ЗначениеКлюча) Тогда

Возврат ЗначениеПоУмолчанию;

КонецЕсли;

Если НЕ ЗначениеЗаполнено(ЗначениеКлюча) Тогда
Возврат ЗначениеПоУмолчанию;
КонецЕсли;

Возврат ЗначениеКлюча;

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

Функция КонвертироватьЗначениеПриНеобходимости(Знач ЗначениеНастройки)
Если ТипЗнч(ЗначениеНастройки) = Тип("Строка") Тогда
ЗначениеНастройки = НРег(ЗначениеНастройки);
Expand Down
42 changes: 21 additions & 21 deletions features/Настройки.feature
Original file line number Diff line number Diff line change
Expand Up @@ -18,34 +18,34 @@
Допустим Я копирую файл "opm.cfg" из каталога "tests/fixtures" проекта в рабочий каталог
Когда я читаю настройки из файла "opm.cfg"
Тогда значение настройки "СоздаватьShСкриптЗапуска" равно "false"
И значение настройки "Прокси.ИспользоватьПрокси" равно "false"
И значение настройки "Прокси.ПроксиПоУмолчанию" равно "false"
И значение настройки "Прокси.Сервер" равно ""
И значение настройки "Прокси.Порт" равно 0
И значение настройки "Прокси.Пользователь" равно ""
И значение настройки "Прокси.Пароль" равно ""
И значение настройки "Прокси.ИспользоватьАутентификациюОС" равно "false"
И значение настройки "ИспользоватьПрокси" равно "false"
И значение настройки "ИспользоватьСистемныйПрокси" равно "false"
И значение настройки "НастройкиПрокси.Сервер" равно ""
И значение настройки "НастройкиПрокси.Порт" равно 0
И значение настройки "НастройкиПрокси.Пользователь" равно ""
И значение настройки "НастройкиПрокси.Пароль" равно ""
И значение настройки "НастройкиПрокси.ИспользоватьАутентификациюОС" равно "false"

Сценарий: Получение значения по умолчанию, если настройка не задана в файле настроек
Допустим Я копирую файл "opm-incomplete.cfg" из каталога "tests/fixtures" проекта в рабочий каталог
Когда я читаю настройки из файла "opm-incomplete.cfg"
Тогда значение настройки "СоздаватьShСкриптЗапуска" равно "false"
И значение настройки "Прокси.ИспользоватьПрокси" равно "false"
И значение настройки "Прокси.ПроксиПоУмолчанию" равно "Истина"
И значение настройки "Прокси.Сервер" равно "Неопределено"
И значение настройки "Прокси.Порт" равно 0
И значение настройки "Прокси.Пользователь" равно "Неопределено"
И значение настройки "Прокси.Пароль" равно "Неопределено"
И значение настройки "Прокси.ИспользоватьАутентификациюОС" равно "false"
И значение настройки "ИспользоватьПрокси" равно "Истина"
И значение настройки "ИспользоватьСистемныйПрокси" равно "Истина"
И значение настройки "НастройкиПрокси.Сервер" равно ""
И значение настройки "НастройкиПрокси.Порт" равно 0
И значение настройки "НастройкиПрокси.Пользователь" равно ""
И значение настройки "НастройкиПрокси.Пароль" равно ""
И значение настройки "НастройкиПрокси.ИспользоватьАутентификациюОС" равно "false"

Сценарий: Получение значений по умолчанию, если файл настроек отсутствует
Дано Файл "opm.cfg" не существует
Когда я читаю настройки из файла "opm.cfg"
Тогда значение настройки "СоздаватьShСкриптЗапуска" равно "false"
И значение настройки "Прокси.ИспользоватьПрокси" равно "false"
И значение настройки "Прокси.ПроксиПоУмолчанию" равно "Истина"
И значение настройки "Прокси.Сервер" равно "Неопределено"
И значение настройки "Прокси.Порт" равно 0
И значение настройки "Прокси.Пользователь" равно "Неопределено"
И значение настройки "Прокси.Пароль" равно "Неопределено"
И значение настройки "Прокси.ИспользоватьАутентификациюОС" равно "false"
И значение настройки "ИспользоватьПрокси" равно "false"
И значение настройки "ИспользоватьСистемныйПрокси" равно "false"
И значение настройки "НастройкиПрокси.Сервер" равно ""
И значение настройки "НастройкиПрокси.Порт" равно ""
И значение настройки "НастройкиПрокси.Пользователь" равно ""
И значение настройки "НастройкиПрокси.Пароль" равно ""
И значение настройки "НастройкиПрокси.ИспользоватьАутентификациюОС" равно "false"
2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
.ЗависитОт("json", "1.0.1")
.ЗависитОт("fluent", "0.3.1")
.ЗависитОт("logos", "1.0.2")
.ЗависитОт("cmdline", "0.6.2")
.ЗависитОт("cli", "0.9.10")
.ЗависитОт("tempfiles", "0.2.2")
.ЗависитОт("gitrunner", "1.5.1")
.ВключитьФайл("src")
Expand Down
13 changes: 4 additions & 9 deletions travis.sh → sonar-qube.sh
Original file line number Diff line number Diff line change
@@ -1,27 +1,22 @@
#!/bin/bash
set -e

opm run coverage

temp=`cat src/core/Модули/КонстантыOpm.os | grep "ВерсияПродукта = " | sed 's|[^"]*"||' | sed -r 's/".+//'`
version=${temp##*|}

if [ "$TRAVIS_SECURE_ENV_VARS" == "true" ]; then
if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
sonar-scanner \
-Dsonar.host.url=http://sonar.silverbulleters.org \
-Dsonar.host.url=https://sonar.silverbulleters.org \
-Dsonar.analysis.mode=issues \
-Dsonar.github.pullRequest=$TRAVIS_PULL_REQUEST \
-Dsonar.github.repository=$TRAVIS_REPO_SLUG \
-Dsonar.github.oauth=$SONAR_GITHUB_TOKEN \
-Dsonar.github.oauth=$GITHUB_OAUTH_TOKEN \
-Dsonar.login=$SONAR_TOKEN \
-Dsonar.scanner.skip=false

elif [ "$TRAVIS_BRANCH" == "develop" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
sonar-scanner \
-Dsonar.host.url=http://sonar.silverbulleters.org \
-Dsonar.host.url=https://sonar.silverbulleters.org \
-Dsonar.login=$SONAR_TOKEN \
-Dsonar.projectVersion=$version\
-Dsonar.scanner.skip=false
fi
fi
fi
Loading