|
3 | 3 | # All rights reserved. |
4 | 4 |
|
5 | 5 | name: Тестирование |
6 | | -# Любой пуш и pr в проекте |
7 | | -on: [push, pull_request] |
| 6 | + |
| 7 | +on: |
| 8 | + push: |
| 9 | + pull_request_target: |
| 10 | + workflow_dispatch: |
| 11 | + |
| 12 | +permissions: |
| 13 | + checks: write |
| 14 | + pull-requests: write |
8 | 15 |
|
9 | 16 | jobs: |
10 | | - build: |
| 17 | + test: |
11 | 18 | runs-on: ${{ matrix.os }} |
12 | 19 | strategy: |
13 | | - fail-fast: false |
14 | 20 | matrix: |
15 | | - os: [ubuntu-latest] |
16 | | - oscript_version: ['1.9.0'] |
17 | | - |
| 21 | + oscript_version: ['1.9.2'] |
| 22 | + v8_version: ['8.3.21.1624', '8.3.24.1691'] |
| 23 | + os: [windows-latest, ubuntu-22.04] |
| 24 | + locale: ['ru_RU'] |
| 25 | + fail-fast: false |
18 | 26 | steps: |
19 | | - # Загрузка проекта |
| 27 | + - name: Установка локали |
| 28 | + if: matrix.os == startsWith(matrix.os, 'windows') |
| 29 | + run: | |
| 30 | + powershell -Command "Set-WinUILanguageOverride -Language ru-RU" |
| 31 | + powershell -Command "Set-WinUserLanguageList ru-RU -Force" |
| 32 | + powershell -Command "Set-Culture ru-RU" |
| 33 | + powershell -Command "Set-WinSystemLocale ru-RU" |
| 34 | +
|
20 | 35 | - name: Актуализация |
21 | | - uses: actions/checkout@v2 |
| 36 | + uses: actions/checkout@v4.2.2 |
| 37 | + with: |
| 38 | + repository: ${{ github.event.pull_request.head.repo.full_name || github.repository }} |
| 39 | + ref: ${{ github.event.pull_request.head.ref || github.ref_name }} |
22 | 40 |
|
23 | | - # Установка OneScript конкретной версии |
24 | 41 | - name: Установка OneScript |
25 | | - uses: otymko/setup-onescript@v1.0 |
26 | | - env: |
27 | | - ACTIONS_ALLOW_UNSECURE_COMMANDS: true |
| 42 | + uses: otymko/setup-onescript@v1.5 |
28 | 43 | with: |
29 | 44 | version: ${{ matrix.oscript_version }} |
30 | 45 |
|
31 | | - # Установка зависимостей пакета |
32 | 46 | - name: Установка зависимостей |
33 | 47 | run: | |
34 | 48 | opm install opm |
35 | 49 | opm install -l --dev |
36 | | - |
37 | | - # Задача тестирования, в результате ожидается успешное выполнение |
| 50 | +
|
| 51 | + - name: Подготовка окружения (Linux) |
| 52 | + if: startsWith(matrix.os, 'ubuntu') |
| 53 | + run: | |
| 54 | + sudo apt-get update |
| 55 | + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y locales libwebkit2gtk-4.0-37 libgl1-mesa-dri libgl1-mesa-glx mesa-utils |
| 56 | + sudo localedef -i ${{ matrix.locale }} -c -f UTF-8 -A /usr/share/locale/locale.alias ${{ matrix.locale }}.UTF-8 |
| 57 | +
|
| 58 | + - name: Установка libenchant1c2a для 8.3.21 (Linux) |
| 59 | + if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.v8_version, '8.3.21') |
| 60 | + run: | |
| 61 | + sudo echo "deb http://cz.archive.ubuntu.com/ubuntu focal main universe" | sudo tee -a /etc/apt/sources.list |
| 62 | + sudo apt-get update |
| 63 | + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libenchant1c2a |
| 64 | +
|
| 65 | + - name: Установка платформы 1С |
| 66 | + uses: 1CDevFlow/onec-setup-action@main |
| 67 | + with: |
| 68 | + type: onec # Тип устанавливаемого приложения |
| 69 | + onec_version: ${{ matrix.v8_version }} |
| 70 | + cache: true |
| 71 | + cache_distr: true |
| 72 | + env: |
| 73 | + ONEC_USERNAME: ${{ secrets.ONEC_USERNAME }} |
| 74 | + ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }} |
| 75 | + |
| 76 | + - name: Установка лицензии (Linux) |
| 77 | + if: startsWith(matrix.os, 'ubuntu') |
| 78 | + run: | |
| 79 | + # Создание каталога |
| 80 | + sudo mkdir -p /var/1C/licenses |
| 81 | + |
| 82 | + # Запись лицензии в файл |
| 83 | + echo "${{ secrets.ONEC_LICENSE }}" | sudo tee /var/1C/licenses/licence.lic > /dev/null |
| 84 | + |
| 85 | + # Назначение прав |
| 86 | + sudo chmod 777 -R /var/1C/licenses |
| 87 | + shell: bash |
| 88 | + env: |
| 89 | + ONEC_LICENSE: ${{ secrets.ONEC_LICENSE }} |
| 90 | + |
| 91 | + - name: Установка лицензии (Windows) |
| 92 | + if: startsWith(matrix.os, 'windows') |
| 93 | + run: | |
| 94 | + mkdir "C:\ProgramData\1C\licenses" -Force |
| 95 | + echo $Env:ONEC_LICENSE | Out-File -FilePath "C:\ProgramData\1C\licenses\licence.lic" -Encoding ascii |
| 96 | + shell: pwsh |
| 97 | + env: |
| 98 | + ONEC_LICENSE: ${{ secrets.ONEC_LICENSE }} |
| 99 | + |
38 | 100 | - name: Тестирование |
39 | | - run: oscript ./tasks/test.os true |
| 101 | + uses: coactions/setup-xvfb@v1 |
| 102 | + env: |
| 103 | + GITSYNC_V8VERSION: ${{ matrix.v8_version }} |
| 104 | + with: |
| 105 | + run: oscript ./tasks/test.os |
| 106 | + |
| 107 | + - name: Публикация отчета |
| 108 | + if: success() || failure() |
| 109 | + uses: mikepenz/action-junit-report@v6.0.1 |
| 110 | + with: |
| 111 | + report_paths: '**/build/reports/*.xml' |
| 112 | + fail_on_failure: true |
| 113 | + require_passed_tests: true |
| 114 | + comment: true |
| 115 | + check_name: 'Результаты тестов. ОС: ${{ matrix.os }}. Версия 1С: ${{ matrix.v8_version }}. Версия OneScript: ${{ matrix.oscript_version }}' |
0 commit comments