Skip to content

Дополнение к PR #87 #89

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions .github/workflows/qa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ name: Контроль качества
on: [push, pull_request]
jobs:
build:
if: github.repository == 'khorevaa/gitsync-plugins'
if: github.repository == 'oscript-library/gitsync-plugins'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
oscript_version: ['1.8.3']
oscript_version: ['1.9.2']

steps:
# Загрузка проекта
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
oscript_version: ['1.8.3']
oscript_version: ['1.9.2']
package_mask: ["gitsync-plugins-*.ospx"]

steps:
Expand Down
137 changes: 114 additions & 23 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,31 @@ name: Тестирование
on: [push, pull_request]

jobs:
build:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
oscript_version: ['1.8.3']

oscript_version: ['1.9.2']
v8_version: ['8.3.21.1624', '8.3.24.1691']
edt_version: ['2023.3.6', '2024.2.5']
os: [windows-latest, ubuntu-22.04]
locale: ['ru_RU']
fail-fast: false
steps:
# Загрузка проекта
- name: Установка локали
if: matrix.os == startsWith(matrix.os, 'windows')
run: |
powershell -Command "Set-WinUILanguageOverride -Language ru-RU"
powershell -Command "Set-WinUserLanguageList ru-RU -Force"
powershell -Command "Set-Culture ru-RU"
powershell -Command "Set-WinSystemLocale ru-RU"

- name: Актуализация
uses: actions/checkout@v2
uses: actions/checkout@v4.2.2

# Установка OneScript конкретной версии
- name: Установка OneScript
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
uses: otymko/[email protected]
uses: otymko/[email protected]
with:
version: ${{ matrix.oscript_version }}

Expand All @@ -33,16 +40,100 @@ jobs:
run: |
opm install opm
opm install --dev
opm install 1testrunner
opm install 1bdd
opm install notify
opm install coverage

# Задача тестирования, в результате ожидается успешное выполнение
- name: Тестирование Unit
run: oscript ./tasks/test.os true

# - name: Тестирование Integrated
# run: |
# docker run -e OSCRIPT_VERSION=${{ matrix.oscript_version }} -v $(pwd):/work_dir harmit/ci-image sh -c 'cd /work_dir; sh /work_dir/travis-ci.sh; exit'
# grep 'Результат прогона тестов <Да>' /tmp/test.log
opm install gitsync # TODO: должно быть необязательно

- name: Подготовка окружения (Linux)
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y locales libwebkit2gtk-4.0-37
sudo localedef -i ${{ matrix.locale }} -c -f UTF-8 -A /usr/share/locale/locale.alias ${{ matrix.locale }}.UTF-8

- name: Установка libenchant1c2a (Linux)
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.v8_version, '8.3.21')
run: |
sudo echo "deb http://cz.archive.ubuntu.com/ubuntu focal main universe" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libenchant1c2a

- name: Установка wine (требуется для Tool1CD)
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install wine -y

- name: Установка платформы 1С
uses: ovcharenko-di/onec-setup-action@fix/cache-ring-commands-cfg
with:
type: onec # Тип устанавливаемого приложения
onec_version: ${{ matrix.v8_version }}
cache: true
cache_distr: true
env:
ONEC_USERNAME: ${{ secrets.ONEC_USERNAME }}
ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }}

- name: Установка Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'

- name: Установка EDT
uses: ovcharenko-di/onec-setup-action@fix/cache-ring-commands-cfg
with:
type: edt # Тип устанавливаемого приложения
edt_version: ${{ matrix.edt_version }}
cache: true
cache_distr: true
env:
ONEC_USERNAME: ${{ secrets.ONEC_USERNAME }}
ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }}

- name: Установка лицензии (Linux)
if: startsWith(matrix.os, 'ubuntu')
run: |
# Создание каталога
sudo mkdir -p /var/1C/licenses

# Запись лицензии в файл
echo "${{ secrets.ONEC_LICENCE }}" | sudo tee /var/1C/licenses/licence.lic > /dev/null

# Назначение прав
sudo chmod 777 -R /var/1C/licenses
shell: bash
env:
ONEC_LICENCE: ${{ secrets.ONEC_LICENCE }}

- name: Установка лицензии (Windows)
if: startsWith(matrix.os, 'windows')
run: |
mkdir "C:\ProgramData\1C\licenses" -Force
echo $Env:ONEC_LICENCE | Out-File -FilePath "C:\ProgramData\1C\licenses\licence.lic" -Encoding ascii
shell: pwsh
env:
ONEC_LICENCE: ${{ secrets.ONEC_LICENCE }}

- name: Сборка пакета
run: opm build

- name: Установка gitsync (локально)
run: opm run install-gitsync

- name: Тестирование
uses: coactions/setup-xvfb@v1
env:
EDT_VERSION: ${{ matrix.edt_version }}
GITSYNC_V8VERSION: ${{ matrix.v8_version }}
with:
run: oscript ./tasks/test.os

- name: Публикация отчета
if: always()
uses: mikepenz/action-junit-report@v5
with:
report_paths: '**/build/reports/*.xml'
fail_on_failure: true
comment: true
check_name: 'Результаты тестов. ОС: ${{ matrix.os }}. Версия 1С: ${{ matrix.v8_version }}. Версия OneScript: ${{ matrix.oscript_version }}'
8 changes: 4 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

build/*

bin/gitsync/*
bin_gitsync/*
bin/gitsync.exe
bin/gitsync.bat
bin/gitsync
bin/build_gitsync.bat
tests/*.xml

exec/*.log

exec.log
bdd-log*.xml

.enabled-plugins
Expand Down
30 changes: 22 additions & 8 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,28 @@

Доработка проводится по git-flow. Жду ваших PR.

## Первоначальная настройка
## Требования к окружению

- Необходимо предварительно выполнить команду
- `opm run install-gitsync`
- он устанавливает версию gitsync в каталог bin
- После необходимо собрать и установить плагины из исходников
- `opm run testing-build`
- Установленная Платформа 1С
- Установленная EDT

## Запуск тестов

- Установить значение переменной GITSYNC_V8VERSION, например:
- `set GITSYNC_V8VERSION=8.3.21` # Windows
- `export GITSYNC_V8VERSION=8.3.21` # Linux

А вот потом можно запускать тесты )
По умолчанию версию платформы выберет библиотека v8find

- через команду `opm test`
- Установить значение переменной EDT_VERSION, например:
- `set EDT_VERSION=2023.3.6` # Windows
- `export EDT_VERSION=2023.3.6` # Linux

По умолчанию используется версия 2022.2.5

- Cобрать пакет
- `opm build`
- Выполнить команду, которая устанавливает gitsync в каталог bin_gitsync
- `opm run install-gitsync`
- Запустить тесты
- `opm test`
Binary file removed bin/v8unpack/v8unpack.exe
Binary file not shown.
Binary file removed bin/v8unpack/zlib1.dll
Binary file not shown.
10 changes: 5 additions & 5 deletions features/check-authors.feature
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,26 @@

Контекст: Тестовый контекст check-authors
Когда Я очищаю параметры команды "gitsync" в контексте
И Я устанавливаю рабочей каталог во временный каталог
И Я устанавливаю рабочий каталог во временный каталог
И Я создаю новый объект ГитРепозиторий
И Я устанавливаю путь выполнения команды "gitsync" к текущей библиотеке
И Я устанавливаю текущие плагины
И Я создаю временный каталог и сохраняю его в переменной "КаталогХранилища1С"
И я скопировал каталог тестового хранилища конфигурации в каталог из переменной "КаталогХранилища1С"
И Я создаю временный каталог и сохраняю его в переменной "ПутьКаталогаИсходников"
И Я инициализирую репозиторий в каталоге из переменной "ПутьКаталогаИсходников"
И Я создаю тестовой файл AUTHORS
И Я создаю тестовый файл AUTHORS
И Я записываю "0" в файл VERSION
И я включаю отладку лога с именем "oscript.app.gitsync"
И Я создаю временный каталог и сохраняю его в переменной "ВременнаяДиректория"
И Я добавляю параметр "--tempdir" для команды "gitsync" из переменной "ВременнаяДиректория"
И Я добавляю параметр "-v" для команды "gitsync"
# И Я добавляю параметр "-v" для команды "gitsync"
И Я добавляю параметр "sync" для команды "gitsync"
И Я выключаю все плагины
И Я включаю плагин "check-authors"

Сценарий: Cинхронизация c простым использованием
Допустим Я создаю неполный тестовой файл AUTHORS
Сценарий: Cинхронизация с простым использованием
Допустим Я создаю неполный тестовый файл AUTHORS
И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
Когда Я выполняю команду "gitsync"
Expand Down
6 changes: 3 additions & 3 deletions features/check-comments.feature
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,20 @@

Контекст: Тестовый контекст check-comments
Когда Я очищаю параметры команды "gitsync" в контексте
И Я устанавливаю рабочей каталог во временный каталог
И Я устанавливаю рабочий каталог во временный каталог
И Я создаю новый объект ГитРепозиторий
И Я устанавливаю путь выполнения команды "gitsync" к текущей библиотеке
И Я устанавливаю текущие плагины
И Я создаю временный каталог и сохраняю его в переменной "КаталогХранилища1С"
И я скопировал каталог тестового хранилища конфигурации в каталог из переменной "КаталогХранилища1С"
И Я создаю временный каталог и сохраняю его в переменной "ПутьКаталогаИсходников"
И Я инициализирую репозиторий в каталоге из переменной "ПутьКаталогаИсходников"
И Я создаю тестовой файл AUTHORS
И Я создаю тестовый файл AUTHORS
И Я записываю "0" в файл VERSION
И я включаю отладку лога с именем "oscript.app.gitsync"
И Я создаю временный каталог и сохраняю его в переменной "ВременнаяДиректория"
И Я добавляю параметр "--tempdir" для команды "gitsync" из переменной "ВременнаяДиректория"
И Я добавляю параметр "-v" для команды "gitsync"
# И Я добавляю параметр "-v" для команды "gitsync"
И Я добавляю параметр "sync" для команды "gitsync"
И Я выключаю все плагины
И Я включаю плагин "check-comments"
Expand Down
21 changes: 11 additions & 10 deletions features/edtExport.feature
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

Контекст: Тестовый контекст edtExport
Когда Я очищаю параметры команды "gitsync" в контексте
И Я устанавливаю рабочей каталог во временный каталог
И Я устанавливаю рабочий каталог во временный каталог
И Я создаю новый объект ГитРепозиторий
И Я устанавливаю путь выполнения команды "gitsync" к текущей библиотеке
И Я устанавливаю текущие плагины
Expand All @@ -16,22 +16,23 @@
И я скопировал каталог тестового хранилища конфигурации в каталог из переменной "КаталогХранилища1С"
И Я создаю временный каталог и сохраняю его в переменной "ПутьКаталогаИсходников"
И Я инициализирую репозиторий в каталоге из переменной "ПутьКаталогаИсходников"
И Я создаю тестовой файл AUTHORS
И Я создаю тестовый файл AUTHORS
И Я записываю "0" в файл VERSION
И Я создаю временный каталог и сохраняю его в переменной "ВременнаяДиректория"
И Я добавляю параметр "--tempdir" для команды "gitsync" из переменной "ВременнаяДиректория"
И Я добавляю параметр "-v" для команды "gitsync"
# И Я добавляю параметр "-v" для команды "gitsync"
И Я добавляю параметр "sync" для команды "gitsync"
И Я добавляю параметр "-P test" для команды "gitsync"
И Я добавляю параметр "--PN test" для команды "gitsync"
И Я вычисляю имя модуля edt по версии из переменной окружения "EDT_VERSION" в переменную "ИмяМодуляEDT"
И Я добавляю параметр "--module" для команды "gitsync" из переменной "ИмяМодуляEDT"
И Я выключаю все плагины
И Я включаю плагин "edtExport"
И Я включаю плагин "edtExport"

Сценарий: Cинхронизация с использованием edtExport
Допустим Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
Когда Я выполняю команду "gitsync"
Тогда Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Завершена синхронизации с git"
Тогда Вывод команды "gitsync" содержит "Завершена синхронизации с git"
И Вывод команды "gitsync" не содержит "Внешнее исключение"
И Код возврата команды "gitsync" равен 0

Expand All @@ -42,19 +43,19 @@
И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
Когда Я выполняю команду "gitsync"
Тогда Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Завершена синхронизации с git"
Тогда Вывод команды "gitsync" содержит "Завершена синхронизации с git"
И Вывод команды "gitsync" не содержит "Внешнее исключение"
И Код возврата команды "gitsync" равен 0

Сценарий: Cинхронизация хранилища расширения с использованием edtExport c указанием базового проекта
Сценарий: Cинхронизация хранилища расширения с использованием edtExport с указанием базового проекта
Допустим Я скопировал каталог тестового хранилища конфигурации расширения в каталог из переменной "КаталогХранилища1С"
И я скопировал каталог рабочего окружения EDT в каталог из переменной "РабочееОкружениеEDT"
И Я добавляю параметр "-e test" для команды "gitsync"
И Я добавляю параметр "-W" для команды "gitsync" из переменной "РабочееОкружениеEDT"
И Я добавляю параметр "-B edtExport" для команды "gitsync"
И Я добавляю параметр "--BP edtExport" для команды "gitsync"
И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
Когда Я выполняю команду "gitsync"
Тогда Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Завершена синхронизации с git"
Тогда Вывод команды "gitsync" содержит "Завершена синхронизации с git"
И Вывод команды "gitsync" не содержит "Внешнее исключение"
И Код возврата команды "gitsync" равен 0
Loading