Skip to content

Commit 802613b

Browse files
committed
Merge branch 'develop' into release/preview
# Conflicts: # Jenkinsfile
2 parents 7949fcb + e9fbcf1 commit 802613b

File tree

133 files changed

+3719
-1383
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

133 files changed

+3719
-1383
lines changed

.github/workflows/sonar.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,22 @@ jobs:
1111
if: (github.repository == 'EvilBeaver/OneScript' ) && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.event.repository.full_name)
1212
steps:
1313
- name: Set up JDK 17
14-
uses: actions/setup-java@v3
14+
uses: actions/setup-java@v4
1515
with:
1616
java-version: 17
1717
distribution: temurin
1818
- uses: actions/checkout@v4
1919
with:
2020
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
2121
- name: Cache SonarQube packages
22-
uses: actions/cache@v3
22+
uses: actions/cache@v4
2323
with:
2424
path: ~\sonar\cache
2525
key: ${{ runner.os }}-sonar
2626
restore-keys: ${{ runner.os }}-sonar
2727
- name: Cache SonarQube scanner
2828
id: cache-sonar-scanner
29-
uses: actions/cache@v3
29+
uses: actions/cache@v4
3030
with:
3131
path: .\.sonar\scanner
3232
key: ${{ runner.os }}-sonar-scanner

Build.csproj

Lines changed: 268 additions & 158 deletions
Large diffs are not rendered by default.

Build_Core.csproj

Lines changed: 0 additions & 356 deletions
This file was deleted.

Jenkinsfile

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ pipeline {
55

66
environment {
77
VersionPrefix = '2.0.0'
8-
VersionSuffix = 'rc3'
8+
VersionSuffix = 'rc4'
99
outputEnc = '65001'
1010
}
1111

@@ -58,7 +58,7 @@ pipeline {
5858

5959
bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" src/1Script.sln /t:restore && mkdir doctool"
6060
bat "chcp $outputEnc > nul\r\n dotnet publish src/OneScriptDocumenter/OneScriptDocumenter.csproj -c Release -o doctool"
61-
bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build_Core.csproj /t:CleanAll;PrepareDistributionFiles;CreateNuget"
61+
bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build.csproj /t:CleanAll;PrepareDistributionFiles;CreateNuget"
6262

6363
stash includes: 'tests, built/**', name: 'buildResults'
6464
}
@@ -126,7 +126,7 @@ pipeline {
126126
deleteDir()
127127
}
128128
unstash 'buildResults'
129-
bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build_Core.csproj /t:Test"
129+
bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build.csproj /t:Test"
130130

131131
junit 'tests/*.xml'
132132
}
@@ -136,7 +136,7 @@ pipeline {
136136
stage('Linux testing') {
137137
agent{
138138
docker {
139-
image 'mcr.microsoft.com/dotnet/sdk:5.0'
139+
image 'mcr.microsoft.com/dotnet/sdk:6.0'
140140
label 'linux'
141141
}
142142
}
@@ -187,16 +187,20 @@ pipeline {
187187
unstash 'buildResults'
188188
unstash 'nativeApiSo'
189189

190-
bat 'xcopy output\\na-proxy\\*64.so built\\linux-64\\bin\\'
190+
bat '''
191+
chcp 65001 > nul
192+
dir output\\na-proxy
193+
xcopy output\\na-proxy\\*64.so built\\linux-x64\\bin\\ /F
194+
'''.stripIndent()
191195

192196
script
193197
{
194198
if (env.BRANCH_NAME == "preview") {
195199
echo 'Building preview'
196-
bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build_Core.csproj /t:PackDistributions /p:Suffix=-pre%BUILD_NUMBER%"
200+
bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build.csproj /t:PackDistributions /p:Suffix=-pre%BUILD_NUMBER%"
197201
}
198202
else{
199-
bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build_Core.csproj /t:PackDistributions"
203+
bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build.csproj /t:PackDistributions"
200204
}
201205
}
202206
archiveArtifacts artifacts: 'built/**', fingerprint: true
@@ -213,7 +217,7 @@ pipeline {
213217
agent { label 'master' }
214218

215219
steps {
216-
220+
cleanWs()
217221
unstash 'dist'
218222
unstash 'vsix'
219223

README.md

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,57 @@ OneScript позволяет создавать и выполнять текст
4747
- выполнить команду `mono ovm.exe use stable`
4848
- перезапустить терминал
4949

50-
Донастройка Self-Contained варианта поставки (не требующего инсталляции dotnet)
50+
#### Донастройка Self-Contained варианта поставки (не требующего инсталляции dotnet)
5151

5252
```
5353
chmod +x ./oscript
5454
xattr -d com.apple.quarantine *.dylib oscript
5555
codesign -s - ./oscript
5656
```
57+
58+
59+
# Ручная локальная сборка
60+
61+
## Подготовка
62+
63+
Ниже приведены ссылки на дистрибутивы, однако, учтите, что ссылки могут меняться со временем и их актуальность не гарантируется. Нужен dotnet SDK и компилятор C++, скачать можно из любого места, которое нагуглится.
64+
65+
* Установить [MS BuildTools](https://visualstudio.microsoft.com/ru/thank-you-downloading-visual-studio/?sku=buildtools&rel=16), при установке включить таргетинг на .net6, .net4.8, установить компилятор C++.
66+
67+
## Сборка
68+
69+
Запустить Developer Command Prompt (появится в меню Пуск после установки MSBuildTools или Visual Studio). Перейти в каталог репозитория OneScript. Далее приведены команды в консоли Developer Command Prompt
70+
Сборка выполняется с помощью msbuild. Таргеты:
71+
72+
* CleanAll - очистка результатов предыдущих сборок
73+
* BuildAll - подготовить файлы для поставки
74+
* MakeCPP;MakeFDD;MakeSCD;BuildDebugger - отдельные таргеты сборки для подготовки разных типов поставки
75+
* PrepareDistributionFiles - сборка полных пакетов поставки (включая библиотеки)
76+
* PackDistributions - подготовка ZIP архивов поставки
77+
* CreateNuget - создать пакеты для публикации в NuGet
78+
79+
**Параметры сборки**
80+
81+
* VersionPrefix - префикс номера релиза, его основная часть, например, 2.0.0
82+
* VersionSuffix - суффикс номера, который обычно выступает в качестве произвольного суффикса версионирования по semver, например, beta-786 (необязателен)
83+
* NoCppCompiler - если True - не установлен компилятор C++, в сборку не будут добавлены компоненты C++ (поддержка NativeApi)
84+
85+
Все поставляемые файлы будут размещены в каталоге `built` в корне репозитория 1Script
86+
87+
### Сборка содержимого дистрибутивов в отдельном каталоге
88+
89+
```bat
90+
msbuild Build.csproj /t:CleanAll;PrepareDistributionFiles
91+
```
92+
93+
### Сборка с ручным указанием версии
94+
95+
```bat
96+
msbuild Build.csproj /t:CleanAll;PrepareDistributionFiles /p:VersionPrefix=2.0.0
97+
```
98+
99+
### Сборка ZIP-дистрибутивов
100+
101+
```bat
102+
msbuild Build.csproj /t:CleanAll;PrepareDistributionFiles;PackDistributions /p:VersionPrefix=2.0.0 /p:VersionSuffix=preview223
103+
```

install/opm.ospx

40.7 KB
Binary file not shown.

install/package-loader.os

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,9 @@
106106
КаталогиМодулей.Добавить(ОбъединитьПути(Путь, "src", "Модули"));
107107
КаталогиМодулей.Добавить(ОбъединитьПути(Путь, "src", "Modules"));
108108

109+
КаталогиВК = Новый Массив;
110+
КаталогиВК.Добавить(ОбъединитьПути(Путь, "Components"));
111+
КаталогиВК.Добавить(ОбъединитьПути(Путь, "Компоненты"));
109112

110113
Для Каждого мКаталог Из КаталогиКлассов Цикл
111114

@@ -118,6 +121,12 @@
118121
ОбработатьКаталогМодулей(мКаталог, СтандартнаяОбработка, Отказ);
119122

120123
КонецЦикла;
124+
125+
Для Каждого мКаталог Из КаталогиВК Цикл
126+
127+
ОбработатьКаталогВК(мКаталог, СтандартнаяОбработка, Отказ);
128+
129+
КонецЦикла;
121130

122131
КонецПроцедуры
123132

@@ -161,6 +170,75 @@
161170

162171
КонецПроцедуры
163172

173+
// По соглашению ВК должны лежать в подпапках, названных, как значения перечисления ТипПлатформы.
174+
// Имя файла, являющегося внешней компонентой должно иметь префикс 1script_
175+
// Components
176+
// net4 (фреймворк .net48
177+
// 1script_barcode.dll
178+
// dotnet (.net современных версий, он же netcore)
179+
// 1script_barcode.dll
180+
// NativeApi
181+
// Windows_x86
182+
// 1script_barcode.dll
183+
// Windows_x86_64
184+
// 1script_barcode.dll
185+
// Linux_x86_64
186+
// 1script_barcode.so
187+
// остальные не поддерживаются (ЖВПР)
188+
//
189+
Процедура ОбработатьКаталогВК(Знач Путь, СтандартнаяОбработка, Отказ)
190+
191+
СИ = Новый СистемнаяИнформация();
192+
МажорнаяВерсия = Лев(СИ.Версия,1);
193+
194+
Если МажорнаяВерсия = "1" Тогда
195+
ОбработатьБиблиотекиCLR(ОбъединитьПути(Путь, "net4"));
196+
ИначеЕсли МажорнаяВерсия = "2" Тогда
197+
ОбработатьБиблиотекиCLR(ОбъединитьПути(Путь, "dotnet"));
198+
Иначе
199+
Вывести("Неизвестная мажорная версия системы: " + МажорнаяВерсия);
200+
КонецЕсли;
201+
202+
ОбработатьКомпонентыNativeApi(Путь);
203+
204+
КонецПроцедуры
205+
206+
Процедура ОбработатьБиблиотекиCLR(Путь)
207+
КандидатыВКомпоненты = НайтиФайлы(Путь, "1script_*.dll");
208+
Для Каждого Кандидат Из КандидатыВКомпоненты Цикл
209+
Если Не Кандидат.ЭтоФайл() Тогда
210+
Продолжить;
211+
КонецЕсли;
212+
213+
Вывести("Загружаю файл " + Кандидат.Имя);
214+
ЗагрузитьБиблиотеку(Кандидат.ПолноеИмя);
215+
216+
КонецЦикла;
217+
КонецПроцедуры
218+
219+
Процедура ОбработатьКомпонентыNativeApi(Путь)
220+
СИ = Новый СистемнаяИнформация;
221+
ИмяПодкаталога = ОбъединитьПути(Путь, Строка(СИ.ТипПлатформы));
222+
Вывести("Ищу внешние компоненты в каталоге " + Путь);
223+
224+
#Если Windows Тогда
225+
Расширение = ".dll";
226+
#Иначе
227+
Расширение = ".so";
228+
#КонецЕсли
229+
230+
КандидатыВКомпоненты = НайтиФайлы(ИмяПодкаталога, "1script_*"+Расширение);
231+
Для Каждого Кандидат Из КандидатыВКомпоненты Цикл
232+
Если Не Кандидат.ЭтоФайл() Тогда
233+
Продолжить;
234+
КонецЕсли;
235+
236+
Вывести("Загружаю файл " + Кандидат.Имя);
237+
ПодключитьВнешнююКомпоненту(Кандидат.ПолноеИмя, Кандидат.Имя, ТипВнешнейКомпоненты.Native);
238+
239+
КонецЦикла;
240+
КонецПроцедуры
241+
164242
Процедура ДобавитьКлассЕслиРанееНеДобавляли(ПутьФайла, ИмяКласса)
165243
Вывести("Добавляю класс, если ранее не добавляли " + ИмяКласса);
166244
Если ВыдаватьОшибкуПриЗагрузкеУжеСуществующихКлассовМодулей Тогда

src/1Script.sln

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,8 @@ EndProject
1717

1818
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D14BF321-348C-46B8-B96A-43A22BA7AC10}"
1919
ProjectSection(SolutionItems) = preProject
20-
..\Build.csproj = ..\Build.csproj
2120
oscommon.targets = oscommon.targets
22-
..\Build_Core.csproj = ..\Build_Core.csproj
21+
..\Build.csproj = ..\Build.csproj
2322
..\Jenkinsfile = ..\Jenkinsfile
2423
EndProjectSection
2524
EndProject

0 commit comments

Comments
 (0)