{
  "status": "success",
  "building": false,
  "step": null,
  "tests_mode": "both",
  "commit": "39a61bf2164cde8e40653d630489d710be5531ae",
  "commit_short": "39a61bf",
  "commit_message": "П150, 126 шаг 2: экран «Инспекция слоёв» /inspect для компьютера",
  "started_at": "2026-11-04T18:40:06+00:00",
  "finished_at": "2026-11-04T18:43:18+00:00",
  "duration_sec": 191.8,
  "message": "Успешно выкачен коммит 39a61bf: bc2: 157f2719b6a0da8af08c88c2e855866a333b3a1f → 39a61bf2164cde8e40653d630489d710be5531ae, проверка прошла",
  "error": null,
  "projects": [
    {
      "id": "bc2",
      "name": "БЦ-2",
      "status": "действует",
      "image": "39a61bf2164cde8e40653d630489d710be5531ae",
      "image_short": "39a61bf",
      "previous_short": "157f271",
      "updated": "2026-11-04T23:43:16"
    }
  ],
  "log_tail": [
    "[18:40:22]                         ожиданиями",
    "[18:40:22]     prompts             копия стандартных промптов в",
    "[18:40:22]                         data/projects/<проект>/prompts для правки",
    "[18:40:22] ",
    "[18:40:22] options:",
    "[18:40:22]   -h, --help            show this help message and exit",
    "[18:40:22] $ docker run --rm -v /home/foreman/foreman-deployer/repo:/src -w /src -e PIP_ROOT_USER_ACTION=ignore -e PYTHONDONTWRITEBYTECODE=1 foreman-ai:39a61bf2164cde8e40653d630489d710be5531ae sh -c pip install -q \"pytest>=8\" && python -m pytest -q -p no:cacheprovider -rs tests/test_spec.py tests/test_web.py::test_http_login_plans_and_telegram tests/test_model_view.py::test_model_screen_api_glb_and_library_from_own_server tests/test_spec_scenarios.py::test_caps_from_grouping_elements_to_3d_and_check tests/test_spec_scenarios.py::test_walls_from_grouping_elements_keep_marks tests/test_spec_scenarios.py::test_level_grid_is_own_plan_typical_caps_and_gridded_view tests/test_spec_scenarios.py::test_view_fix_rotate_shift_snap_and_undo tests/test_spec_scenarios.py::test_rules_from_primitives_layer_without_dwg tests/test_spec_scenarios.py::test_light_part_reparse_keeps_tables tests/test_spec_scenarios.py::test_geometry_collisions_in_registry_3d_status tests/test_spec_scenarios.py::test_model_views_per_storey_compressed_without_furniture tests/test_spec_scenarios.py::test_sheet_probe_reads_parse_and_reasons tests/test_spec_scenarios.py::test_status_on_vps_machine_reparse_slow tests/test_spec_scenarios.py::test_upload_progress_per_file tests/test_spec_scenarios.py::test_taskbook_login_roles_and_dash tests/test_spec_scenarios.py::test_taskbook_titles_and_weather tests/test_spec_scenarios.py::test_parsed_note_task_has_title tests/test_spec_scenarios.py::test_ci_checks_every_push_and_publishes_only_green_main tests/test_spec_scenarios.py::test_fast_deploy_mode_rules; rc=$?; chown -R 1000:1000 /src; exit $rc",
    "[18:40:43] .......................................                                  [100%]",
    "[18:40:43] 39 passed in 17.79s",
    "[18:40:44] $ docker run --rm -v /home/foreman/foreman-deployer/repo:/src -w /src -e PIP_ROOT_USER_ACTION=ignore -e PYTHONDONTWRITEBYTECODE=1 foreman-ai:39a61bf2164cde8e40653d630489d710be5531ae sh -c pip install -q \"pytest>=8\" pytest-xdist && python -m pytest -q -p no:cacheprovider -rs -n 4 -m \"not slow\"; rc=$?; chown -R 1000:1000 /src; exit $rc",
    "[18:40:52] bringing up nodes...",
    "[18:41:02] bringing up nodes...",
    "[18:41:02] ",
    "[18:41:04] .....................................................................s.. [  8%]",
    "[18:41:06] ........................................................................ [ 17%]",
    "[18:41:07] ........................................................................ [ 26%]",
    "[18:41:11] ........................................................................ [ 35%]",
    "[18:41:20] .....................................................................s.s [ 44%]",
    "[18:41:42] s....................................................................... [ 53%]",
    "[18:42:03] ...s.................................................ss.............ssss [ 62%]",
    "[18:42:15] sssss................................................................... [ 71%]",
    "[18:42:20] ..............s......................................................s.. [ 80%]",
    "[18:42:25] ........................................................................ [ 89%]",
    "[18:42:47] ........................................................................ [ 98%]",
    "[18:42:56] ...........                                                              [100%]",
    "[18:42:56] =========================== short test summary info ============================",
    "[18:42:56] SKIPPED [1] tests/test_excel_formulas.py:34: нет LibreOffice для пересчёта формул",
    "[18:42:56] SKIPPED [1] tests/test_model_view.py:263: нет Node.js с Playwright для проверки экрана в браузере",
    "[18:42:56] SKIPPED [1] tests/test_model_view.py:322: нет Node.js с Playwright для проверки экрана в браузере",
    "[18:42:56] SKIPPED [1] tests/test_model_view.py:370: нет Node.js с Playwright для проверки экрана в браузере",
    "[18:42:56] SKIPPED [1] tests/test_spec_scenarios.py:1443: нет Node.js с Playwright для проверки экрана в браузере",
    "[18:42:56] SKIPPED [1] tests/test_spec_scenarios.py:10957: нет Node.js с Playwright для проверки экрана в браузере",
    "[18:42:56] SKIPPED [1] tests/test_spec_scenarios.py:10997: нет Node.js с Playwright для проверки экрана в браузере",
    "[18:42:56] SKIPPED [1] tests/test_spec_scenarios.py:11625: нет node",
    "[18:42:56] SKIPPED [1] tests/test_spec_scenarios.py:11648: нет node",
    "[18:42:56] SKIPPED [1] tests/test_spec_scenarios.py:11695: нет node",
    "[18:42:56] SKIPPED [1] tests/test_spec_scenarios.py:11721: нет Node.js с Playwright",
    "[18:42:56] SKIPPED [1] tests/test_spec_scenarios.py:11761: нет Node.js с Playwright",
    "[18:42:56] SKIPPED [1] tests/test_spec_scenarios.py:11796: нет Node.js с Playwright",
    "[18:42:56] SKIPPED [1] tests/test_spec_scenarios.py:11830: нет Node.js с Playwright",
    "[18:42:56] SKIPPED [1] tests/test_spec_scenarios.py:11871: нет Node.js с Playwright",
    "[18:42:56] SKIPPED [1] tests/test_spec_scenarios.py:11910: нет Node.js с Playwright",
    "[18:42:56] SKIPPED [1] tests/test_stage_classifier.py:367: Папка '02. После Госэкспертизы' не найдена",
    "[18:42:56] SKIPPED [1] tests/test_uploads.py:206: нет node",
    "[18:42:56] 785 passed, 18 skipped in 123.55s (0:02:03)",
    "[18:42:56] $ /home/foreman/bin/foreman fleet update --tag 39a61bf2164cde8e40653d630489d710be5531ae --domain foreman.arstanbek.com",
    "[18:43:17] bc2: 157f2719b6a0da8af08c88c2e855866a333b3a1f → 39a61bf2164cde8e40653d630489d710be5531ae, проверка прошла",
    "[18:43:17] прокси: https://bc2.foreman.arstanbek.com",
    "[18:43:17] удалены старые образы: foreman-ai:5f6816f5cb3c025516fe517d210df2e002e2c924",
    "[18:43:18] Выкатка успешно завершена!"
  ]
}
