44
55name : Контроль качества
66
7- on : [push, pull_request]
7+ on :
8+ push :
9+ pull_request_target :
10+ workflow_dispatch :
11+
812jobs :
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 }}
0 commit comments