Skip to content

Commit 09a8f89

Browse files
Merge pull request #95 from ovcharenko-di/fix/qa-workflow
Доработки для QA
2 parents ab4d412 + d4cf47d commit 09a8f89

15 files changed

+116
-32
lines changed

.github/workflows/qa.yml

Lines changed: 75 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,23 @@
44

55
name: Контроль качества
66

7-
on: [push, pull_request]
7+
on:
8+
push:
9+
pull_request_target:
10+
workflow_dispatch:
11+
812
jobs:
9-
build:
13+
sonar:
1014
if: github.repository == 'oscript-library/gitsync-plugins'
1115
runs-on: ${{ matrix.os }}
1216
strategy:
1317
fail-fast: false
1418
matrix:
15-
os: [ubuntu-latest]
19+
os: [ubuntu-22.04]
1620
oscript_version: ['1.9.2']
21+
v8_version: ['8.3.24.1691']
22+
edt_version: ['2024.2.5']
23+
locale: ['ru_RU']
1724

1825
steps:
1926
- name: Актуализация
@@ -36,22 +43,84 @@ jobs:
3643
opm install --dev
3744
opm install gitsync # TODO: должно быть необязательно
3845
46+
- name: Подготовка окружения (Linux)
47+
if: startsWith(matrix.os, 'ubuntu')
48+
run: |
49+
sudo apt-get update
50+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y locales libwebkit2gtk-4.0-37
51+
sudo localedef -i ${{ matrix.locale }} -c -f UTF-8 -A /usr/share/locale/locale.alias ${{ matrix.locale }}.UTF-8
52+
53+
- name: Установка wine для Tool1CD (Linux)
54+
if: startsWith(matrix.os, 'ubuntu')
55+
run: |
56+
sudo dpkg --add-architecture i386
57+
sudo apt update
58+
sudo apt install wine -y
59+
60+
- name: Установка платформы 1С
61+
uses: ovcharenko-di/onec-setup-action@fix/cache-ring-commands-cfg
62+
with:
63+
type: onec # Тип устанавливаемого приложения
64+
onec_version: ${{ matrix.v8_version }}
65+
cache: true
66+
cache_distr: true
67+
env:
68+
ONEC_USERNAME: ${{ secrets.ONEC_USERNAME }}
69+
ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }}
70+
71+
- name: Установка Java 17
72+
uses: actions/setup-java@v4
73+
with:
74+
distribution: 'temurin'
75+
java-version: '17'
76+
77+
- name: Установка EDT
78+
uses: ovcharenko-di/onec-setup-action@fix/cache-ring-commands-cfg
79+
with:
80+
type: edt
81+
edt_version: ${{ matrix.edt_version }}
82+
cache: true
83+
cache_distr: true
84+
env:
85+
ONEC_USERNAME: ${{ secrets.ONEC_USERNAME }}
86+
ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }}
87+
88+
- name: Установка лицензии (Linux)
89+
if: startsWith(matrix.os, 'ubuntu')
90+
run: |
91+
# Создание каталога
92+
sudo mkdir -p /var/1C/licenses
93+
94+
# Запись лицензии в файл
95+
echo "${{ secrets.ONEC_LICENSE }}" | sudo tee /var/1C/licenses/licence.lic > /dev/null
96+
97+
# Назначение прав
98+
sudo chmod 777 -R /var/1C/licenses
99+
shell: bash
100+
env:
101+
ONEC_LICENSE: ${{ secrets.ONEC_LICENSE }}
102+
39103
- name: Установка gitsync локально
40104
run: opm run install-gitsync
41105

42106
- name: Покрытие кода
43-
run: oscript ./tasks/coverage.os true
107+
uses: coactions/setup-xvfb@v1
108+
env:
109+
EDT_VERSION: ${{ matrix.edt_version }}
110+
GITSYNC_V8VERSION: ${{ matrix.v8_version }}
111+
with:
112+
run: opm run coverage
44113

45114
- name: Извлечение версии пакета
46115
shell: bash
47116
run: echo "##[set-output name=version;]`cat packagedef | grep ".Версия(" | sed 's|[^"]*"||' | sed -r 's/".+//'`"
48117
id: extract_version
49118

50119
- name: Установка Sonar-scanner
51-
uses: warchant/setup-sonar-scanner@v7
120+
uses: warchant/setup-sonar-scanner@v8
52121

53122
- name: Анализ в SonarQube (branch)
54-
if: github.event_name == 'push'
123+
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
55124
run: sonar-scanner
56125
-Dsonar.login=${{ secrets.SONARQUBE_TOKEN }}
57126
-Dsonar.host.url=${{ secrets.SONARQUBE_HOST }}

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
build/*
44

5+
coverage/*
6+
57
bin_gitsync/*
68
bin/gitsync.exe
79
bin/gitsync

CONTRIBUTING.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

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

5+
Для удобства доработки в каталог ./tests/fixtures сохранены отчеты по версиям хранилища в формате mxl. Обратите внимание, что комментарий к версии хранилища может неточно описывать изменения в этой версии.
6+
57
## Требования к окружению
68

79
- Установленная Платформа 1С

features/check-authors.feature

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@
1515
И я скопировал каталог тестового хранилища конфигурации в каталог из переменной "КаталогХранилища1С"
1616
И Я создаю временный каталог и сохраняю его в переменной "ПутьКаталогаИсходников"
1717
И Я инициализирую репозиторий в каталоге из переменной "ПутьКаталогаИсходников"
18-
И Я создаю тестовый файл AUTHORS
19-
И Я записываю "0" в файл VERSION
18+
И Я создаю тестовый файл AUTHORS
2019
И я включаю отладку лога с именем "oscript.app.gitsync"
2120
И Я создаю временный каталог и сохраняю его в переменной "ВременнаяДиректория"
2221
И Я добавляю параметр "--tempdir" для команды "gitsync" из переменной "ВременнаяДиректория"
@@ -27,11 +26,10 @@
2726

2827
Сценарий: Cинхронизация с простым использованием
2928
Допустим Я создаю неполный тестовый файл AUTHORS
29+
И Я записываю "8" в файл VERSION
3030
И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
3131
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
3232
Когда Я выполняю команду "gitsync"
33-
Тогда Вывод команды "gitsync" содержит "В таблице истории версий найдены авторы (количество 10), которые не сопоставлены в AUTHORS"
33+
Тогда Вывод команды "gitsync" содержит "В таблице истории версий найдены авторы (количество 3), которые не сопоставлены в AUTHORS"
3434
И Вывод команды "gitsync" не содержит "Внешнее исключение"
3535
И Код возврата команды "gitsync" равен 1
36-
37-

features/check-comments.feature

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
И Я создаю временный каталог и сохраняю его в переменной "ПутьКаталогаИсходников"
1717
И Я инициализирую репозиторий в каталоге из переменной "ПутьКаталогаИсходников"
1818
И Я создаю тестовый файл AUTHORS
19-
И Я записываю "0" в файл VERSION
2019
И я включаю отладку лога с именем "oscript.app.gitsync"
2120
И Я создаю временный каталог и сохраняю его в переменной "ВременнаяДиректория"
2221
И Я добавляю параметр "--tempdir" для команды "gitsync" из переменной "ВременнаяДиректория"
@@ -28,17 +27,19 @@
2827
Сценарий: Cинхронизация с использованием просто check-comments
2928
Допустим Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
3029
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
30+
И Я записываю "7" в файл VERSION
3131
Когда Я выполняю команду "gitsync"
32-
Тогда Вывод команды "gitsync" содержит "КРИТИЧНАЯОШИБКА - Версия <4> от автора <Администратор>: комментарий не задан"
32+
Тогда Вывод команды "gitsync" содержит "КРИТИЧНАЯОШИБКА - Версия <8> от автора <Администратор>: комментарий не задан"
3333
И Вывод команды "gitsync" не содержит "Внешнее исключение"
3434
И Код возврата команды "gitsync" равен 0
3535

3636
Сценарий: Cинхронизация c использованием --error-comment
3737
Допустим Я добавляю параметр "--error-comment" для команды "gitsync"
38+
И Я записываю "2" в файл VERSION
3839
И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
3940
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
4041
Когда Я выполняю команду "gitsync"
4142
Тогда Вывод команды "gitsync" содержит "КРИТИЧНАЯОШИБКА - Версия <4> от автора <Администратор>: комментарий не задан"
4243
И Вывод команды "gitsync" не содержит "Внешнее исключение"
4344
И Код возврата команды "gitsync" равен 1
44-
И Количество коммитов должно быть "3"
45+
И Количество коммитов должно быть "1"

features/edtExport.feature

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
И Я создаю временный каталог и сохраняю его в переменной "ПутьКаталогаИсходников"
1818
И Я инициализирую репозиторий в каталоге из переменной "ПутьКаталогаИсходников"
1919
И Я создаю тестовый файл AUTHORS
20-
И Я записываю "0" в файл VERSION
2120
И Я создаю временный каталог и сохраняю его в переменной "ВременнаяДиректория"
2221
И Я добавляю параметр "--tempdir" для команды "gitsync" из переменной "ВременнаяДиректория"
2322
# И Я добавляю параметр "-v" для команды "gitsync"
@@ -29,6 +28,7 @@
2928
Сценарий: Cинхронизация с использованием edtExport без явного указания версии EDT
3029
Допустим Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
3130
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
31+
И Я записываю "8" в файл VERSION
3232
Когда Я выполняю команду "gitsync"
3333
Тогда Вывод команды "gitsync" содержит "Завершена синхронизации с git"
3434
И Вывод команды "gitsync" не содержит "Внешнее исключение"
@@ -40,6 +40,7 @@
4040
Дано Я добавляю параметр "--edt-version" для команды "gitsync" из переменной "ВерсияEDT"
4141
Допустим Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
4242
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
43+
И Я записываю "8" в файл VERSION
4344
Когда Я выполняю команду "gitsync"
4445
Тогда Вывод команды "gitsync" содержит "Завершена синхронизации с git"
4546
И Вывод команды "gitsync" не содержит "Внешнее исключение"
@@ -52,6 +53,7 @@
5253
И Я добавляю параметр "-e test" для команды "gitsync"
5354
И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
5455
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
56+
И Я записываю "2" в файл VERSION
5557
Когда Я выполняю команду "gitsync"
5658
Тогда Вывод команды "gitsync" содержит "Завершена синхронизации с git"
5759
И Вывод команды "gitsync" не содержит "Внешнее исключение"
@@ -65,6 +67,7 @@
6567
И Я добавляю параметр "--BP edtExport" для команды "gitsync"
6668
И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
6769
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
70+
И Я записываю "2" в файл VERSION
6871
Когда Я выполняю команду "gitsync"
6972
Тогда Вывод команды "gitsync" содержит "Завершена синхронизации с git"
7073
И Вывод команды "gitsync" не содержит "Внешнее исключение"

features/increment.feature

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@
1515
И я скопировал каталог тестового хранилища конфигурации в каталог из переменной "КаталогХранилища1С"
1616
И Я создаю временный каталог и сохраняю его в переменной "ПутьКаталогаИсходников"
1717
И Я инициализирую репозиторий в каталоге из переменной "ПутьКаталогаИсходников"
18-
И Я создаю тестовый файл AUTHORS
19-
И Я записываю "0" в файл VERSION
18+
И Я создаю тестовый файл AUTHORS
2019
И Я создаю временный каталог и сохраняю его в переменной "ВременнаяДиректория"
2120
И Я добавляю параметр "--tempdir" для команды "gitsync" из переменной "ВременнаяДиректория"
2221
# И Я добавляю параметр "-v" для команды "gitsync"
@@ -27,6 +26,7 @@
2726
Сценарий: Cинхронизация с использованием increment
2827
Допустим Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
2928
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
29+
И Я записываю "9" в файл VERSION
3030
Когда Я выполняю команду "gitsync"
3131
Тогда Вывод команды "gitsync" содержит "Завершена синхронизации с git"
3232
И Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Тип выгрузки конфигурации в файлы:"
@@ -38,6 +38,7 @@
3838
И Я добавляю параметр "-e test" для команды "gitsync"
3939
И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
4040
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
41+
И Я записываю "3" в файл VERSION
4142
Когда Я выполняю команду "gitsync"
4243
Тогда Вывод команды "gitsync" содержит "Завершена синхронизации с git"
4344
И Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Тип выгрузки конфигурации в файлы:"

0 commit comments

Comments
 (0)