hermes-agent/scripts/ci
ethernet 641d254db4 ci: add macos and windows test lanes for the os-marked tests
the markers from the previous commit skip off-host. without a host to
run them on, every marked test is a silent skip. this commit adds the
hosts.

- tests-os.yml runs -m macos_only on macos-latest and -m windows_only
  on windows-latest. ci.yml requires both lanes in all-checks-pass.
- a lane fails on pytest exit code 5 (zero tests selected). a renamed
  marker cannot produce a green job that ran nothing.
- each lane repeats 'not integration' because a command-line -m
  replaces the addopts filter.
- scripts/ci/list_os_marked_tests.py selects which files each lane
  imports. -m filters after collection, and collection imports every
  module. without this helper, one unrelated ImportError on the
  foreign host fails a job whose own tests passed. the helper exits
  non-zero when a marker matches no file, and writes bytes with
  explicit lf so windows crlf translation cannot corrupt the bash
  file list. it has its own tests in tests/ci/.
- the local runner now reports the skipped count and prints a note:
  macos_only/windows_only tests were skipped on this host, and this
  ci lane runs them. a green local run on linux no longer reads as
  coverage of the other hosts.
- the runner default job count is now #cpu, not #cpu*2.
2026-08-09 22:09:49 -04:00
..
assemble_review_comment.py fix(windows): sweep remaining bare read_text/write_text sites + linter rule 2026-07-24 17:10:39 -07:00
classify_changes.py ci(install): actually run the PowerShell installer tests 2026-08-04 15:34:32 -06:00
e2e_screenshot_status.py ci: surface E2E screenshots in review comment (#69631) 2026-07-22 23:19:53 +00:00
emit_review_status.py ci: surface E2E screenshots in review comment (#69631) 2026-07-22 23:19:53 +00:00
list_os_marked_tests.py ci: add macos and windows test lanes for the os-marked tests 2026-08-09 22:09:49 -04:00
live_comment.py ci: move the review comment and the image build out of the CI run 2026-08-09 15:40:04 -04:00
lockfile_diff.py fix(windows): sweep remaining unguarded text-mode subprocess sites codebase-wide 2026-07-24 11:45:57 -07:00
publish_e2e_evidence.py fix(windows): sweep remaining unguarded text-mode subprocess sites codebase-wide 2026-07-24 11:45:57 -07:00
test_install_ps1_path_migration.ps1 fix(runtime): resolve Hermes-managed Node and uv before bare PATH 2026-08-01 21:17:51 -04:00
timings_report.py fix(ci): retain delayed and composite-action jobs in review (#69768) 2026-07-22 22:43:21 -04:00