Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Замер покрытия #98

Merged
merged 111 commits into from
Dec 19, 2024
Merged
Changes from 1 commit
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
3d63e57
add coverage
ovcharenko-di Jun 3, 2023
2658544
upd README
ovcharenko-di Jun 3, 2023
ca8c100
Update src/ru/pulsar/jenkins/library/configuration/SmokeTestOptions.g…
ovcharenko-di Jun 3, 2023
1f6c27f
fix paths
ovcharenko-di Jun 3, 2023
4930715
fix bdd
ovcharenko-di Jun 3, 2023
87cbb2c
fix paths
ovcharenko-di Jun 3, 2023
ab10d28
another fix
ovcharenko-di Jun 3, 2023
694b0d0
pick unused port for dbgs
ovcharenko-di Jun 12, 2023
3c0bb34
fix?
ovcharenko-di Jun 12, 2023
271dbf7
fix
ovcharenko-di Jun 12, 2023
5e2aedb
fix class
ovcharenko-di Jun 12, 2023
1b724e0
fix
ovcharenko-di Jun 12, 2023
85bd8e9
add class
ovcharenko-di Jun 12, 2023
48f9d26
fix returns
ovcharenko-di Jun 12, 2023
5d808f4
fix ports
ovcharenko-di Jun 12, 2023
9af1df9
make dbgs port const
ovcharenko-di Jun 12, 2023
1185844
add Coverage41C check
ovcharenko-di Jul 6, 2023
d6edb83
add lockable resources in bdd
ovcharenko-di Jul 17, 2023
ffe504b
fix
ovcharenko-di Jul 17, 2023
b5586b6
fix params
ovcharenko-di Jul 17, 2023
c956cb0
fix params
ovcharenko-di Jul 17, 2023
a527a24
finalize
ovcharenko-di Jul 17, 2023
98386df
fix type
ovcharenko-di Jul 17, 2023
41ff0eb
rm unused class
ovcharenko-di Jul 17, 2023
611dbc8
rm start return status
ovcharenko-di Aug 24, 2024
4f40096
add coverage for yaxunit, fix smoke dbgs port
ovcharenko-di Aug 25, 2024
47049ad
fix yaxunit coverage
ovcharenko-di Aug 25, 2024
d89a615
upd schema.json
ovcharenko-di Nov 17, 2024
dad3bad
upd global conf
ovcharenko-di Nov 19, 2024
d653ea0
fix
ovcharenko-di Nov 19, 2024
cc0c3fb
add coverage
ovcharenko-di Jun 3, 2023
79572e7
fix
ovcharenko-di Jun 12, 2023
8a892bc
fix class
ovcharenko-di Jun 12, 2023
29520e7
add class
ovcharenko-di Jun 12, 2023
a830c68
add lockable resources in bdd
ovcharenko-di Jul 17, 2023
f893c11
finalize
ovcharenko-di Jul 17, 2023
92f1dce
rm unused class
ovcharenko-di Jul 17, 2023
aa4aaa2
add coverage for yaxunit, fix smoke dbgs port
ovcharenko-di Aug 25, 2024
e6fdfc1
yaxunit coverage cleanup
ovcharenko-di Sep 1, 2024
5c7a6e0
fix
ovcharenko-di Sep 1, 2024
a7e4d3b
add smart cleanup in yaxunit
ovcharenko-di Sep 2, 2024
ea2b403
fix pids
ovcharenko-di Sep 2, 2024
3cbc404
fix pids
ovcharenko-di Sep 2, 2024
8c1a119
diagnostic message and fixes
ovcharenko-di Sep 2, 2024
c147ebb
toList
ovcharenko-di Sep 2, 2024
14268a1
switch pids from env to the file
ovcharenko-di Sep 3, 2024
494a535
refactor
ovcharenko-di Sep 3, 2024
7a5669e
fix merge
ovcharenko-di Nov 27, 2024
4b0bb1f
fixes
ovcharenko-di Nov 27, 2024
ab88f8f
add archive artifacts, logging, fix path to config
ovcharenko-di Nov 27, 2024
d53ae8d
fix path
ovcharenko-di Nov 27, 2024
719dac8
default info logging to console for yaxunit
ovcharenko-di Nov 27, 2024
3b87b09
fix lf
ovcharenko-di Nov 27, 2024
8c6d655
refactoring
ovcharenko-di Nov 27, 2024
a9eee5a
add coverage cleanup in bdd, smoke
ovcharenko-di Nov 27, 2024
fd5fcae
upd rm
ovcharenko-di Nov 28, 2024
d16b6ac
revert
ovcharenko-di Nov 28, 2024
6353e93
bump
ovcharenko-di Nov 28, 2024
bcd8f28
add md eol
ovcharenko-di Nov 29, 2024
0499510
simplify optional unstash
ovcharenko-di Nov 29, 2024
a7b557e
simplify lock step
ovcharenko-di Nov 29, 2024
e8e3db5
refactoring
ovcharenko-di Nov 29, 2024
77130fb
revert catchError
ovcharenko-di Nov 30, 2024
dcf3604
refactoring
ovcharenko-di Nov 30, 2024
a004277
int to Integer
ovcharenko-di Dec 1, 2024
20d0b05
refactoring
ovcharenko-di Dec 1, 2024
f758456
fixes
ovcharenko-di Dec 1, 2024
f17c9ae
Update src/ru/pulsar/jenkins/library/steps/WithCoverage.groovy
nixel2007 Dec 1, 2024
e711f86
refactoring and fixes
ovcharenko-di Dec 2, 2024
24231f9
fix bat
ovcharenko-di Dec 11, 2024
49c1f78
fix bat
ovcharenko-di Dec 11, 2024
5d8f710
fix crlf
ovcharenko-di Dec 11, 2024
91b6620
Fix returned value
nixel2007 Dec 11, 2024
6780bc6
escape caret
ovcharenko-di Dec 11, 2024
ce26f41
escape expr
ovcharenko-di Dec 11, 2024
7f4b7fa
revert ^^
ovcharenko-di Dec 11, 2024
bbd5238
fix start step
ovcharenko-di Dec 12, 2024
408bc1e
add logging in findDbgs
ovcharenko-di Dec 12, 2024
b44f4c6
find dbgs through file
ovcharenko-di Dec 12, 2024
e00e057
pass start params as is
ovcharenko-di Dec 12, 2024
89422b0
fix getPIDs commands
ovcharenko-di Dec 13, 2024
d8cd62f
revert quotes
ovcharenko-di Dec 13, 2024
0a78703
add logging to start step
ovcharenko-di Dec 13, 2024
8e4e76a
fix getPIDs again
ovcharenko-di Dec 13, 2024
1653b12
add /C
ovcharenko-di Dec 13, 2024
2126542
always exit 0
ovcharenko-di Dec 13, 2024
5327243
modify pid command
ovcharenko-di Dec 13, 2024
1376330
fix lambda
ovcharenko-di Dec 13, 2024
ad3b37e
upd README.md
ovcharenko-di Dec 15, 2024
db2f143
Apply suggestions from code review
ovcharenko-di Dec 15, 2024
326abf1
always return 0
ovcharenko-di Dec 15, 2024
9f816d6
revert deletion of tmp files, translate log messages
ovcharenko-di Dec 15, 2024
4d82101
Update src/ru/pulsar/jenkins/library/steps/CoverageContext.groovy
nixel2007 Dec 15, 2024
c7cb979
Apply suggestions from code review
nixel2007 Dec 15, 2024
c01f42d
rm exception
ovcharenko-di Dec 15, 2024
25dc5e4
fix quotes
ovcharenko-di Dec 15, 2024
ba1dd46
refactor coverage cleanup
ovcharenko-di Dec 16, 2024
28e38ba
fix stop
ovcharenko-di Dec 16, 2024
f670490
fix slug
ovcharenko-di Dec 16, 2024
ed94c84
rm archiveArtifacts
ovcharenko-di Dec 16, 2024
102ad0a
upd README.md
ovcharenko-di Dec 16, 2024
bcc368c
merge classes
ovcharenko-di Dec 16, 2024
92bff7a
Update src/ru/pulsar/jenkins/library/steps/WithCoverage.groovy
ovcharenko-di Dec 16, 2024
1650db1
Update README.md
ovcharenko-di Dec 16, 2024
8d98e1d
Update README.md
ovcharenko-di Dec 16, 2024
fd34d56
Update README.md
ovcharenko-di Dec 16, 2024
0740987
Update gdsl
nixel2007 Dec 19, 2024
917b5d7
JSON lf
nixel2007 Dec 19, 2024
62d6b3b
@Override
nixel2007 Dec 19, 2024
4d1ce54
Cleanup
nixel2007 Dec 19, 2024
42bbfc7
More tests
nixel2007 Dec 19, 2024
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
59 changes: 58 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
1. При использовании EDT версии 2024.1.0 и выше вместо ring используется 1cedtcli, который должен быть прописан в PATH на агенте.
1. Для запуска шагов, работающих с 1С (подготовка, синтаксический контроль и т.д.) требуется агент с меткой, совпадающей со значением в поле `v8version` файла конфигурации.
1. В качестве ИБ используется файловая база, создаваемая в каталоге `./build/ib`. При необходимости вы можете создать пользователей на фазе инициализации ИБ.
1. Для замеров покрытия на агентах должны быть установлены [Coverage41C](https://github.com/1c-syntax/Coverage41C), EDT и сервер отладки dbgs. Вместо установки EDT целиком можно использовать только отдельные ее компоненты, см. [Coverage41C/README.md](https://github.com/1c-syntax/Coverage41C).
1. На данный момент ошибка в [vanessa-add](https://github.com/vanessa-opensource/add/issues/1152) не позволяет собирать замеры производительности в дымовых тестах по открытию всех форм на клиенте тестирования.
1. Для параллельного выполнения шагов `bdd` и `smoke` с включенными замерами покрытия на одной ноде необходимо, чтобы в `jobConfiguration.json` были указаны **разные** порты сервера отладки для каждого шага. Параллельные билды с замерами покрытия на одной ноде не поддерживаются.

Expand Down Expand Up @@ -248,3 +247,61 @@ pipeline1C()

* При использовании SonarQube версии <10.3 и `stebi` формат отчета должен быть `Generic_Issue` (параметр `resultsTransform` -> `genericIssueFormat`)
* Трансформацию результатов может выполнять `edt-ripper` (параметр `resultsTransform` -> `transformer`). В этом случае замечания будут загружены в SonarQube в формате BSL LS, что позволяет полноценно управлять ими в SonarQube.

## Сбор замеров покрытия

* Для сбора замеров покрытия на агентах требуется:
* oscript с библиотекой v8find, которая по умолчанию есть в составе дистрибутива oscript
* сервер отладки dbgs, который есть в составе дистрибутива платформы 1С:Предприятие
* [Coverage41C](https://github.com/1c-syntax/Coverage41C), его необходимо установить на агент отдельно
* EDT нужной версии или отдельные jar-файлы из его каталога установки, подробнее см. в [Coverage41C/README.md](https://github.com/1c-syntax/Coverage41C)
* Если на агенте Coverage41C не включен в PATH, необходимо указать полный путь к нему в параметре `coverage41CPath`
ovcharenko-di marked this conversation as resolved.
Show resolved Hide resolved
* Сбор замеров покрытия активируется для каждого стейджа отдельно с помощью установки параметра `"coverage": true`
* поддерживаются `bdd` и `yaxunit`, для использования замеров на стейже `smoke` ожидается исправление vanessa-add в этом [PR](https://github.com/vanessa-opensource/add/pull/1153)
* Чтобы замеры в `bdd`, `yaxunit`, `smoke` могли выполняться параллельно **на одном агенте**, необходимо указывать для них разные порты отладки в параметре `dbgsPort`.
* Не забудьте настроить подключение клиентов тестирования к серверу отладки.

Пример настройки подключения для `bdd`:

jobConfiguration.json
```json
"bdd": {
"vrunnerSteps": [
"vanessa --settings ./tools/vrunner.json"
],
"coverage": true,
"dbgsPort": 1550
},
```

./tools/vrunner.json
```json
"vanessa": {
"--vanessasettings": "tools/VAParams.json",
}
```

./tools/VAParams.json
```json
"КлиентТестирования": {
"ЗапускатьТестКлиентВРежимеОтладки": true,
"КлючиОтладки": "-http",
"АдресОтладчика": "http://127.0.0.1:1550",
```

Для `yaxunit`:
```
ovcharenko-di marked this conversation as resolved.
Show resolved Hide resolved
"default": {
"--additional": "/debug -http -attach /debuggerURL http://localhost:1550"
}
```

Для `smoke` (после исправления ошибки в vanessa-add):
```
"xunit": {
"--testclient-additional": "/debug -http -attach /debuggerURL http://localhost:1550"
}
```

* При изменении портов отладки в jobConfiguration.json не забывайте менять порты в настройках соответствующих шагов (и наоборот)
* Настоятельно рекомендуется использовать не "постоянные" агенты Jenkins, а контейнеры docker. При выполнении билдов в контейнерах можно использовать исключительно стандартный порт 1550.
Loading