@@ -7,24 +7,31 @@ name: Тестирование
77on : [push, pull_request]
88
99jobs :
10- build :
10+ test :
1111 runs-on : ${{ matrix.os }}
1212 strategy :
13- fail-fast : false
1413 matrix :
15- os : [ubuntu-latest]
16- oscript_version : ['1.8.3']
17-
14+ oscript_version : ['1.9.2']
15+ v8_version : ['8.3.21.1624', '8.3.24.1691']
16+ edt_version : ['2023.3.6', '2024.2.5']
17+ os : [windows-latest, ubuntu-22.04]
18+ locale : ['ru_RU']
19+ fail-fast : false
1820 steps :
19- # Загрузка проекта
21+ - name : Установка локали
22+ if : matrix.os == startsWith(matrix.os, 'windows')
23+ run : |
24+ powershell -Command "Set-WinUILanguageOverride -Language ru-RU"
25+ powershell -Command "Set-WinUserLanguageList ru-RU -Force"
26+ powershell -Command "Set-Culture ru-RU"
27+ powershell -Command "Set-WinSystemLocale ru-RU"
28+
2029 - name : Актуализация
21- uses : actions/checkout@v2
30+ uses : actions/checkout@v4.2.2
2231
2332 # Установка OneScript конкретной версии
2433 - name : Установка OneScript
25- env :
26- ACTIONS_ALLOW_UNSECURE_COMMANDS : true
27- 34+ 2835 with :
2936 version : ${{ matrix.oscript_version }}
3037
@@ -33,16 +40,100 @@ jobs:
3340 run : |
3441 opm install opm
3542 opm install --dev
36- opm install 1testrunner
37- opm install 1bdd
38- opm install notify
39- opm install coverage
40-
41- # Задача тестирования, в результате ожидается успешное выполнение
42- - name : Тестирование Unit
43- run : oscript ./tasks/test.os true
44-
45- # - name: Тестирование Integrated
46- # run: |
47- # 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'
48- # grep 'Результат прогона тестов <Да>' /tmp/test.log
43+ opm install gitsync # TODO: должно быть необязательно
44+
45+ - name : Подготовка окружения (Linux)
46+ if : startsWith(matrix.os, 'ubuntu')
47+ run : |
48+ sudo apt-get update
49+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y locales libwebkit2gtk-4.0-37
50+ sudo localedef -i ${{ matrix.locale }} -c -f UTF-8 -A /usr/share/locale/locale.alias ${{ matrix.locale }}.UTF-8
51+
52+ - name : Установка libenchant1c2a (Linux)
53+ if : startsWith(matrix.os, 'ubuntu') && startsWith(matrix.v8_version, '8.3.21')
54+ run : |
55+ sudo echo "deb http://cz.archive.ubuntu.com/ubuntu focal main universe" | sudo tee -a /etc/apt/sources.list
56+ sudo apt-get update
57+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libenchant1c2a
58+
59+ - name : Установка wine (требуется для Tool1CD)
60+ if : startsWith(matrix.os, 'ubuntu')
61+ run : |
62+ sudo dpkg --add-architecture i386
63+ sudo apt update
64+ sudo apt install wine -y
65+
66+ - name : Установка платформы 1С
67+ uses : ovcharenko-di/onec-setup-action@fix/cache-ring-commands-cfg
68+ with :
69+ type : onec # Тип устанавливаемого приложения
70+ onec_version : ${{ matrix.v8_version }}
71+ cache : true
72+ cache_distr : true
73+ env :
74+ ONEC_USERNAME : ${{ secrets.ONEC_USERNAME }}
75+ ONEC_PASSWORD : ${{ secrets.ONEC_PASSWORD }}
76+
77+ - name : Установка Java
78+ uses : actions/setup-java@v4
79+ with :
80+ distribution : ' temurin'
81+ java-version : ' 11'
82+
83+ - name : Установка EDT
84+ uses : ovcharenko-di/onec-setup-action@fix/cache-ring-commands-cfg
85+ with :
86+ type : edt # Тип устанавливаемого приложения
87+ edt_version : ${{ matrix.edt_version }}
88+ cache : true
89+ cache_distr : true
90+ env :
91+ ONEC_USERNAME : ${{ secrets.ONEC_USERNAME }}
92+ ONEC_PASSWORD : ${{ secrets.ONEC_PASSWORD }}
93+
94+ - name : Установка лицензии (Linux)
95+ if : startsWith(matrix.os, 'ubuntu')
96+ run : |
97+ # Создание каталога
98+ sudo mkdir -p /var/1C/licenses
99+
100+ # Запись лицензии в файл
101+ echo "${{ secrets.ONEC_LICENCE }}" | sudo tee /var/1C/licenses/licence.lic > /dev/null
102+
103+ # Назначение прав
104+ sudo chmod 777 -R /var/1C/licenses
105+ shell : bash
106+ env :
107+ ONEC_LICENCE : ${{ secrets.ONEC_LICENCE }}
108+
109+ - name : Установка лицензии (Windows)
110+ if : startsWith(matrix.os, 'windows')
111+ run : |
112+ mkdir "C:\ProgramData\1C\licenses" -Force
113+ echo $Env:ONEC_LICENCE | Out-File -FilePath "C:\ProgramData\1C\licenses\licence.lic" -Encoding ascii
114+ shell : pwsh
115+ env :
116+ ONEC_LICENCE : ${{ secrets.ONEC_LICENCE }}
117+
118+ - name : Сборка пакета
119+ run : opm build
120+
121+ - name : Установка gitsync (локально)
122+ run : opm run install-gitsync
123+
124+ - name : Тестирование
125+ uses : coactions/setup-xvfb@v1
126+ env :
127+ EDT_VERSION : ${{ matrix.edt_version }}
128+ GITSYNC_V8VERSION : ${{ matrix.v8_version }}
129+ with :
130+ run : oscript ./tasks/test.os
131+
132+ - name : Публикация отчета
133+ if : always()
134+ uses : mikepenz/action-junit-report@v5
135+ with :
136+ report_paths : ' **/build/reports/*.xml'
137+ fail_on_failure : true
138+ comment : true
139+ check_name : ' Результаты тестов. ОС: ${{ matrix.os }}. Версия 1С: ${{ matrix.v8_version }}. Версия OneScript: ${{ matrix.oscript_version }}'
0 commit comments