You've already forked jenkins-lib
mirror of
https://github.com/firstBitMarksistskaya/jenkins-lib.git
synced 2025-08-25 20:09:25 +02:00
Merge pull request #147 from ovcharenko-di/fix/loadextensions
This commit is contained in:
@@ -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`.
|
||||
* Не забудьте настроить подключение клиентов тестирования к серверу отладки.
|
||||
|
||||
|
@@ -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()
|
||||
|
@@ -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");
|
||||
|
Reference in New Issue
Block a user