Skip to content

Commit

Permalink
fix load extensions, fix README
Browse files Browse the repository at this point in the history
  • Loading branch information
ovcharenko-di committed Jan 17, 2025
1 parent 89e104f commit 152c12d
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 14 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`.
* Не забудьте настроить подключение клиентов тестирования к серверу отладки.

Expand Down
22 changes: 14 additions & 8 deletions src/ru/pulsar/jenkins/library/steps/LoadExtensions.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand All @@ -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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ void runYaxunit() throws IOException {
.thenReturn(new FilePath(new File("/")));

// given
// файл содержит 4 расширения для разных стейджей
// файл содержит 4 расширения для разных этапов
String config = IOUtils.resourceToString(
"jobConfiguration.json",
StandardCharsets.UTF_8,
Expand All @@ -44,11 +44,11 @@ void runYaxunit() throws IOException {
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");
Expand Down

0 comments on commit 152c12d

Please sign in to comment.