1
0
mirror of https://github.com/firstBitMarksistskaya/jenkins-lib.git synced 2025-08-25 20:09:25 +02:00

fix load extensions, fix README

This commit is contained in:
Dima
2025-01-17 10:56:37 +03:00
parent 89e104feec
commit 152c12d9f3
3 changed files with 20 additions and 14 deletions

View File

@@ -259,8 +259,8 @@ pipeline1C()
* [Coverage41C](https://github.com/1c-syntax/Coverage41C), его необходимо установить на агент отдельно
* EDT нужной версии или отдельные jar-файлы из его каталога установки, подробнее см. в [Coverage41C/README.md](https://github.com/1c-syntax/Coverage41C)
* Если на агенте Coverage41C не включен в PATH, необходимо указать полный путь к нему в параметре `coverage41CPath`
* Сбор замеров покрытия активируется для каждого стейджа отдельно с помощью установки параметра `"coverage": true`
* поддерживаются `bdd` и `yaxunit`, для использования замеров на стейже `smoke` ожидается исправление vanessa-add в этом [PR](https://github.com/vanessa-opensource/add/pull/1153)
* Сбор замеров покрытия активируется для каждого этапа отдельно с помощью установки параметра `"coverage": true`
* поддерживаются `bdd` и `yaxunit`, для использования замеров на этапе `smoke` ожидается исправление vanessa-add в этом [PR](https://github.com/vanessa-opensource/add/pull/1153)
* Чтобы замеры в `bdd`, `yaxunit`, `smoke` могли выполняться параллельно **на одном агенте**, необходимо указывать для них разные порты отладки в параметре `dbgsPort`.
* Не забудьте настроить подключение клиентов тестирования к серверу отладки.

View File

@@ -17,7 +17,7 @@ class LoadExtensions implements Serializable {
private Extension[] extensionsFiltered
LoadExtensions(JobConfiguration config, String stageName = "") {
LoadExtensions(JobConfiguration config, String stageName) {
this.config = config
this.stageName = stageName
}
@@ -33,13 +33,19 @@ class LoadExtensions implements Serializable {
def extensions = this.config.initInfoBaseOptions.extensions
if (this.stageName) {
this.extensionsFiltered = extensions.findAll { extension ->
extension.stages.contains(this.stageName)
}
}
else {
this.extensionsFiltered = extensions.findAll { extension -> extension.stages.length == 0 || extension.stages.contains("initInfoBase") }
// NB: расширения, подключаемые на этапе initInfoBase, остаются подключенными на всех остальных этапах
if (this.stageName == "initInfoBase") {
// подключаются все расширения, у которых явно указано подключение на текущем этапе
// и те расширения, в которых этапы подключения не указаны вообще
this.extensionsFiltered = extensions.findAll({ extension ->
extension.stages.contains(this.stageName) || extension.stages.length == 0
})
} else {
// на остальных этапах подключаются расширения, которые не были подключены на этапе initInfoBase
// и у которых явно указано подключение на текущем этапе
this.extensionsFiltered = extensions.findAll({ extension ->
!extension.stages.contains("initInfoBase") && extension.stages.contains(this.stageName)
})
}
def env = steps.env()

View File

@@ -35,7 +35,7 @@ class LoadExtensionsTest {
.thenReturn(new FilePath(new File("/")));
// given
// файл содержит 4 расширения для разных стейджей
// файл содержит 4 расширения для разных этапов
String config = IOUtils.resourceToString(
"jobConfiguration.json",
StandardCharsets.UTF_8,
@@ -44,11 +44,11 @@ class LoadExtensionsTest {
JobConfiguration jobConfiguration = ConfigurationReader.create(config);
// when
LoadExtensions loadExtensions = new LoadExtensions(jobConfiguration);
loadExtensions.run();
LoadExtensions loadExtensionsInit = new LoadExtensions(jobConfiguration, "initInfoBase");
loadExtensionsInit.run();
// then
InitInfoBaseOptions.Extension[] extensions = loadExtensions.getExtensionsFiltered();
InitInfoBaseOptions.Extension[] extensions = loadExtensionsInit.getExtensionsFiltered();
assertThat(extensions.length).isEqualTo(2);
assertThat(extensions[0].getName()).isEqualTo("mods");
assertThat(extensions[1].getName()).isEqualTo("mods2");