Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
b148139
Исправление доки
tetsuser Jan 1, 2025
475974f
Merge branch 'firstBitMarksistskaya:develop' into develop
Kyrales Jan 24, 2025
dad2b4a
Merge branch 'firstBitMarksistskaya:develop' into develop
Kyrales Mar 31, 2025
346cd93
Merge branch 'firstBitMarksistskaya:develop' into develop
Kyrales Aug 30, 2025
33e7fee
Добавлена очистка каталога Allure при инициализации базы, чтобы не вы…
Kyrales Sep 8, 2025
fd627a9
Очистка каталога результатов allure для Yaxunit перед формированием р…
Kyrales Sep 8, 2025
da97ded
Merge branch 'firstBitMarksistskaya:develop' into develop
Kyrales Sep 19, 2025
043e6e7
fix: Очистка каталогов результатов перед выполнением syntax-check
Kyrales Sep 26, 2025
b953fa6
fix: Очистка каталогов результатов перед выполнением smoke
Kyrales Oct 3, 2025
92ea3cd
Merge branch 'firstBitMarksistskaya:develop' into develop
Kyrales Oct 19, 2025
596c392
fix: Добавлены vrunnerSettings для возможности работы с базой при под…
Kyrales Oct 19, 2025
8e9b77f
Merge branch 'firstBitMarksistskaya:develop' into develop
Kyrales Oct 25, 2025
8d7157f
Bump actions/checkout from 5 to 6
dependabot[bot] Nov 24, 2025
be5e8ae
Merge pull request #188 from firstBitMarksistskaya/dependabot/github_…
nixel2007 Nov 24, 2025
f1d236f
fix: улучшение обработки шагов vrunner в BDD, добавление эффективных …
nixel2007 Jan 18, 2026
0244b15
Merge branch 'develop' into fix/fix_bdd_extensions
nixel2007 Jan 18, 2026
789c8bc
fix: добавление аннотации @NonCPS для метода getEffectiveVrunnerSteps
nixel2007 Jan 18, 2026
03ac370
Merge pull request #184 from Kyrales/fix/fix_bdd_extensions
nixel2007 Jan 18, 2026
d8ae155
init step status and related workflow changes
ovcharenko-di Apr 13, 2025
483920e
fix formatting, add doc comment
ovcharenko-di Apr 14, 2025
b222619
refactor: replace readExitStatusFromFile method with VRunner utility …
nixel2007 Jan 18, 2026
f4d8eba
Merge branch 'fork/ovcharenko-di/feature/init-status' into develop
nixel2007 Jan 18, 2026
a534ce2
Merge branch 'develop' of https://github.com/Kyrales/jenkins-lib into…
Kyrales Jan 18, 2026
8847634
Merge branch 'develop' into fix/clear_allure_before
Kyrales Jan 18, 2026
902f43d
fix: В createDir() Добавлен необязательный параметр deleteDir (по умо…
Kyrales Jan 18, 2026
a6cbbf8
Bump gradle/actions from 5 to 6
dependabot[bot] Mar 23, 2026
822877d
disable logging
ovcharenko-di Mar 26, 2026
66125bc
Merge pull request #190 from firstBitMarksistskaya/dependabot/github_…
nixel2007 Mar 28, 2026
653f032
add withEnv
ovcharenko-di Mar 29, 2026
53009e6
fix linting problems
ovcharenko-di Mar 29, 2026
9108e95
Merge branch 'firstBitMarksistskaya:develop' into develop
Kyrales Apr 3, 2026
9474294
Merge branch 'develop' into fix/find-dbgs
nixel2007 Apr 3, 2026
d796b46
Merge pull request #191 from ovcharenko-di/fix/find-dbgs
nixel2007 Apr 3, 2026
af88d04
фикс: Установка LOGOS_LEVEL вместо LOGOS_CONFIG
Apr 4, 2026
bdd49eb
фикс: Скрипт по поиску DBGS теперь сам пишет в файл
Apr 5, 2026
07acc9f
фикс: Логирование
Apr 5, 2026
e2de4c3
фикс: Кодировка файла для записи пути к DBGS
Apr 6, 2026
27b824b
фикс: Удаление отладочного логирования
Apr 6, 2026
ea96549
Merge pull request #194 from Stepa86/bugfix/logosConfig
nixel2007 Apr 6, 2026
0d0646d
upd
ovcharenko-di Apr 6, 2026
9111430
upd
ovcharenko-di Apr 6, 2026
7317437
upd
ovcharenko-di Apr 6, 2026
d841212
fix
ovcharenko-di Apr 6, 2026
c5b891c
Merge pull request #195 from ovcharenko-di/patch-2
nixel2007 Apr 6, 2026
b2fcd65
fix: Исправление создания каталога
Kyrales Apr 7, 2026
7c2304d
add plugins deploy script, upd README
ovcharenko-di Apr 7, 2026
038f2f9
add plugins
ovcharenko-di Apr 7, 2026
f7e0ee6
add plugins from build.gradle.kts, rm deprecated pipeline-model-decla…
ovcharenko-di Apr 7, 2026
fa9fb84
feat: Замена файлов репозитария через Config File Provider
Kyrales Apr 9, 2026
11d801b
fix: remove hard dependency on Allure ResultsConfig in shared library
johnnyshut Apr 16, 2026
961cf01
fix: remove allure-jenkins-plugin dependency from shared library
johnnyshut Apr 16, 2026
6528bda
Merge pull request #201 from johnnyshut/develop
nixel2007 Apr 16, 2026
25637f2
fix: Исправлено значение по умолчанию для поля yaxunit.publishToJUnit…
nixel2007 Apr 19, 2026
15392da
Обновление docs
Kyrales Apr 20, 2026
a91f210
Refine debug overrides flow and harden validation
Kyrales Apr 20, 2026
2320cc2
Harden debug overrides validation and encoding
Kyrales Apr 20, 2026
82cbf6e
refactor: в VRunner обновлено выполнение команд миграции с использова…
johnnyshut Apr 28, 2026
0a0a491
feat: Принудительно передавать --v8version в шаги vrunner из jobConfi…
johnnyshut Apr 28, 2026
e323d21
Merge pull request #203 from johnnyshut/bugfix-189
nixel2007 May 1, 2026
25ad526
Merge pull request #196 from ovcharenko-di/feature/batch-deploy-plugins
nixel2007 May 1, 2026
34c1902
Merge pull request #197 from Kyrales/features/dev_manage_file
nixel2007 May 1, 2026
584d604
Merge pull request #176 from Kyrales/fix/clear_allure_before
nixel2007 May 1, 2026
4a42d59
Fix/Архивируем результаты EDT-валидации в отдельный архив (#185)
Kyrales May 1, 2026
6fb9dd8
Revert "feat: Принудительно передавать --v8version в шаги vrunner из …
johnnyshut May 1, 2026
a79a8e7
feat: Add job configuration handling and v8version parameterization
johnnyshut May 1, 2026
91bb4c2
Merge branch 'develop' into feature/140
johnnyshut May 1, 2026
c280f2b
test: Add unit test for reading exit status from a non-existent file …
johnnyshut May 1, 2026
d0be70b
refactor: Enhance job configuration management in ContextRegistry and…
johnnyshut May 1, 2026
e6aaaf0
Merge pull request #204 from johnnyshut/feature/140
nixel2007 May 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
uses: gradle/actions/setup-gradle@v6
- name: Execute Gradle build
run: ./gradlew check
2 changes: 1 addition & 1 deletion .github/workflows/rebase.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the latest code
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
Expand Down
83 changes: 60 additions & 23 deletions README.md

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ plugins {

repositories {
mavenCentral()
maven {
url = uri("https://repo.jenkins-ci.org/public/")
}
}

tasks {
Expand Down Expand Up @@ -120,7 +123,6 @@ sharedLibrary {
dependency("org.jenkins-ci.modules", "sshd", "3.374.v19b_d59ce6610")

dependency("org.6wind.jenkins", "lockable-resources", "1412.v3f305a_fb_a_117")
dependency("ru.yandex.qatools.allure", "allure-jenkins-plugin", "2.32.0")
dependency("io.jenkins.blueocean", "blueocean-pipeline-api-impl", "1.27.21")
dependency("sp.sd", "file-operations", "353.vf3b_9b_a_f1f7f7")

Expand All @@ -129,6 +131,5 @@ sharedLibrary {
dependency("org.jenkinsci.plugins", "pipeline-model-api", declarativePluginsVersion)
dependency("org.jenkinsci.plugins", "pipeline-model-definition", declarativePluginsVersion)
dependency("org.jenkinsci.plugins", "pipeline-model-extensions", declarativePluginsVersion)
dependency("org.jenkinsci.plugins", "pipeline-model-declarative-agent", "1.1.1")
}
}
259 changes: 259 additions & 0 deletions docs/feat_debug_replace/how_to_add_debug_settings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,259 @@
# How To Add Debug Settings

## Что это дает
Этот механизм позволяет подложить свои файлы настроек в Jenkins workspace для MR-пайплайна, не меняя прикладной репозиторий.

Поддерживаемые файлы:
- `jobConfiguration.json`
- `sonar-project.properties`
- `tools/vrunner.json`
- `tools/VAParams.json`

## Что нужно подготовить в Jenkins

### 1. Проверить plugin
Убедиться, что в Jenkins установлен plugin `Config File Provider`.

Если plugin не установлен:
- механизм подмен не сработает;
- пайплайн продолжит работу по старому сценарию.

### 2. Создать control JSON
В Jenkins нужно создать managed file с `fileId`:

```text
jenkins-debug-overrides-control
```

Рекомендуемый тип файла при создании:

```text
Json file
```

В этом файле хранится карта профилей и список подмен.

Допустимо также использовать `Custom file`, но для JSON удобнее `Json file`, потому что в Jenkins он лучше читается визуально.

Пример содержимого:

```json
{
"profiles": {
"ci_uh_MR": {
"enabled": true,
"description": "Отладочные подмены для MR пайплайнов УХ",
"replacements": [
{
"fileId": "debug-ci-uh-mr-jobConfiguration",
"target": "jobConfiguration.json"
},
{
"fileId": "debug-ci-uh-mr-sonar-properties",
"target": "sonar-project.properties"
},
{
"fileId": "debug-ci-uh-mr-vrunner",
"target": "tools/vrunner.json"
},
{
"fileId": "debug-ci-uh-mr-vaparams",
"target": "tools/VAParams.json"
}
]
}
}
}
```

## Как добавить свою настройку

### Вариант 1. Изменить существующий профиль
Если вы работаете в уже существующем Jenkins folder, например `ci_uh_MR`, то:

1. Откройте managed file `jenkins-debug-overrides-control`.
2. Найдите профиль:

```json
"ci_uh_MR": {
...
}
```

3. Убедитесь, что:

```json
"enabled": true
```

4. Обновите список `replacements`, если нужно добавить или убрать файлы.

### Вариант 2. Создать новый профиль под другой folder
Если у вас другой Jenkins folder, добавьте новый ключ в `profiles`.

Пример:

```json
{
"profiles": {
"ci_uh_MR": {
"enabled": true,
"replacements": [
{
"fileId": "debug-ci-uh-mr-jobConfiguration",
"target": "jobConfiguration.json"
}
]
},
"ci_erp_MR": {
"enabled": true,
"replacements": [
{
"fileId": "debug-ci-erp-mr-jobConfiguration",
"target": "jobConfiguration.json"
}
]
}
}
}
```

Ключ профиля должен совпадать с предпоследним сегментом `JOB_NAME`.

Пример:
- `CPC/ci_uh_MR/MR-1101` -> профиль `ci_uh_MR`
- `CPC/ci_erp_MR/MR-42` -> профиль `ci_erp_MR`

## Как создать свои файлы подмены
Для каждого файла из `replacements` нужно создать отдельный managed file в Jenkins.

Пример набора для `ci_uh_MR`:
- `debug-ci-uh-mr-jobConfiguration`
- `debug-ci-uh-mr-sonar-properties`
- `debug-ci-uh-mr-vrunner`
- `debug-ci-uh-mr-vaparams`

Содержимое:
- `debug-ci-uh-mr-jobConfiguration` -> ваш `jobConfiguration.json`
- `debug-ci-uh-mr-sonar-properties` -> ваш `sonar-project.properties`
- `debug-ci-uh-mr-vrunner` -> ваш `tools/vrunner.json`
- `debug-ci-uh-mr-vaparams` -> ваш `tools/VAParams.json`

При создании каждого managed file:
- `ID` должен точно совпадать со значением `fileId` из control JSON;
- `Name` можно оставить таким же, как `ID`;
- `Content` должно содержать полный текст соответствующего файла;
- тип файла лучше выбирать по содержимому:
- для `debug-ci-uh-mr-jobConfiguration` -> `Json file`
- для `debug-ci-uh-mr-sonar-properties` -> `Properties file`
- для `debug-ci-uh-mr-vrunner` -> `Json file`
- для `debug-ci-uh-mr-vaparams` -> `Json file`
- при желании все эти файлы можно хранить и как `Custom file`, механизм библиотеки от этого не меняется.

## Как временно отключить свою настройку
Самый простой способ:

```json
"enabled": false
```

Тогда профиль останется в control JSON, но подмены применяться не будут.

## Что происходит во время сборки
1. В `pre-stage` библиотека определяет профиль по `JOB_NAME`.
2. Загружает `jenkins-debug-overrides-control`.
3. Если профиль найден и включен, раскладывает файлы в workspace.
4. `jobConfiguration.json` используется сразу.
5. Остальные файлы сохраняются в `stash`.
6. На нужных downstream agents файлы восстанавливаются через `unstash`.

## Как проверить, что подмена сработала
В логах сборки должны появиться сообщения вида:

```text
Debug overrides: resolved profile key = ci_uh_MR
Debug overrides: applying 4 replacement(s)
Debug overrides: wrote jobConfiguration.json from managed file debug-ci-uh-mr-jobConfiguration
Debug overrides: stashed files for downstream agents
Debug overrides: restored files from stash
```

Если профиль не применился, в логах будет одно из сообщений:

```text
Debug overrides: profile <name> not found, skip
Debug overrides: profile <name> is disabled, skip
Debug overrides: control file is unavailable, skip
Debug overrides: Config File Provider plugin is unavailable, skip
```

### Что искать в логах Jenkins
Если профиль найден и подмена реально произошла, ищите такие строки:

```text
Debug overrides: resolved profile key = ci_uh_MR
Debug overrides: applying 4 replacement(s)
Debug overrides: wrote jobConfiguration.json from managed file debug-ci-uh-mr-jobConfiguration
Debug overrides: wrote sonar-project.properties from managed file debug-ci-uh-mr-sonar-properties
Debug overrides: wrote tools/vrunner.json from managed file debug-ci-uh-mr-vrunner
Debug overrides: wrote tools/VAParams.json from managed file debug-ci-uh-mr-vaparams
Debug overrides: stashed files for downstream agents
```

Если потом на другом Jenkins agent файлы были успешно восстановлены, будет строка:

```text
Debug overrides: restored files from stash
```

Если подмена не была применена, в логах будет один из вариантов:

```text
Debug overrides: profile ci_uh_MR not found, skip
Debug overrides: profile ci_uh_MR is disabled, skip
Debug overrides: control file is unavailable, skip
Debug overrides: Config File Provider plugin is unavailable, skip
Debug overrides: downstream stash is absent, skip restore
```

Содержимое самих файлов в лог не выводится. В логе виден только:
- найденный профиль;
- факт подмены;
- `fileId`, из которого был взят файл;
- факт восстановления файлов на downstream stages.

## На что обратить внимание
- `fileId` в control JSON должен точно совпадать с `fileId` managed file в Jenkins.
- `target` должен быть относительным путем внутри workspace.
- Абсолютные пути и `..` в `target` не поддерживаются.
- Если в профиле нет downstream-файлов, stash не создается.
- Повторный запуск build просто перезапишет подложенные файлы, это штатно.

## Минимальный пример для быстрого старта
Если хотите проверить только подмену `jobConfiguration.json`, достаточно:

1. Создать managed file:

```text
debug-ci-uh-mr-jobConfiguration
```

2. Указать его в control JSON:

```json
{
"profiles": {
"ci_uh_MR": {
"enabled": true,
"replacements": [
{
"fileId": "debug-ci-uh-mr-jobConfiguration",
"target": "jobConfiguration.json"
}
]
}
}
}
```

После этого пайплайн начнет читать ваш `jobConfiguration.json` из Jenkins, а не из репозитория.
72 changes: 72 additions & 0 deletions plugins.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
import jenkins.model.*

def plugins = [
"allure-jenkins-plugin",
"blueocean",
"blueocean-pipeline-api-impl",
"bouncycastle-api",
"cloudbees-folder",
"command-launcher",
"copyartifact",
"credentials",
"docker-commons",
"docker-java-api",
"docker-workflow",
"durable-task",
"email-ext",
"file-operations",
"git",
"git-client",
"http_request",
"jackson2-api",
"jdk-tool",
"junit",
"kubernetes",
"lockable-resources",
"matrix-project",
"nodelabelparameter",
"pipeline-build-step",
"pipeline-model-api",
"pipeline-model-definition",
"pipeline-model-extensions",
"pipeline-stage-view",
"pipeline-utility-steps",
"scm-api",
"script-security",
"sonar",
"structs",
"swarm-agents-cloud",
"timestamper",
"token-macro",
"workflow-aggregator",
"workflow-api",
"workflow-durable-task-step",
"workflow-cps",
"workflow-job",
"workflow-multibranch",
"workflow-step-api",
"workflow-support"
]

def instance = Jenkins.getInstance()
def pm = instance.getPluginManager()
def uc = instance.getUpdateCenter()

uc.updateAllSites() // Обновить список плагинов

plugins.each { pluginName ->
if (!pm.getPlugin(pluginName)) {
def plugin = uc.getPlugin(pluginName)
if (plugin) {
def installFuture = plugin.deploy()
while(!installFuture.isDone()) {
sleep(3000)
}
println "Установлен: ${pluginName}"
} else {
println "Плагин не найден: ${pluginName}"
}
} else {
println "Уже установлен: ${pluginName}"
}
}
6 changes: 5 additions & 1 deletion resources/dbgs.os
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
#Использовать v8find

Сообщить(Платформа1С.ПутьКDBGS(АргументыКоманднойСтроки[0]));
ПутьКDBGS = Платформа1С.ПутьКDBGS(АргументыКоманднойСтроки[0]);

ТекстовыйДокумент = Новый ТекстовыйДокумент();
ТекстовыйДокумент.УстановитьТекст(ПутьКDBGS);
ТекстовыйДокумент.Записать(АргументыКоманднойСтроки[1], КодировкаТекста.UTF8NoBom);
Loading
Loading