Skip to content

CI/CD: фиксы латентных багов, харденинг supply chain, ускорение матрицы#3313

Closed
DuLL-FoX wants to merge 3 commits into
BlueMoon-Labs:masterfrom
DuLL-FoX:ci/cicd-hardening
Closed

CI/CD: фиксы латентных багов, харденинг supply chain, ускорение матрицы#3313
DuLL-FoX wants to merge 3 commits into
BlueMoon-Labs:masterfrom
DuLL-FoX:ci/cicd-hardening

Conversation

@DuLL-FoX

@DuLL-FoX DuLL-FoX commented Jun 5, 2026

Copy link
Copy Markdown

Описание

Правки CI/CD по трём приоритетам из аудита:

  • P0 - чиню латентные баги, которые рано или поздно уронили бы CI: устаревший ::set-output в генераторе матрицы карт (гитхаб его отключит -> матрица тестов обнулится), битое st = 1 в check_grep.sh, древние actions в make_changelogs.
  • P1 - supply chain: rust-g/auxmos/dreamchecker качаются с проверкой SHA256 и ретраями; сторонние actions запинены на commit SHA; least-privilege permissions.
  • P2 - скорость: тестовый сервер собирается один раз и едет артефактом в плечи матрицы вместо 19 одинаковых компиляций DM+TGUI; плюс concurrency, таймауты, кэш нативных либ.

Причина изменений

Матрица интеграционных тестов гоняла полную компиляцию DM и TGUI заново на каждой из 19 карт - build-once это убирает. Заодно закрыты latent-баги и дыры supply chain (нативные .so грузились в DreamDaemon без проверки целостности).

Changelog

🆑
code: ускорил и починил CI (build-once сборка тестового сервера, фиксы устаревших GitHub Actions)
server: сборка нативных CI-зависимостей теперь проверяется по SHA256
/:cl:

P0 - латентные баги:
- find_all_maps: ::set-output -> $GITHUB_OUTPUT, checkout@v2 -> v4
- check_grep.sh: чиним битое присваивание st=1 и мёртвый CRLF-паттерн (\r\n -> \r$)
- make_changelogs: checkout@v3 -> v4, setup-python@v1 -> v5

P1 - безопасность и supply chain:
- install_rust_g/auxmos/spaceman_dmm: проверка SHA256 + ретраи (хэши в dependencies.sh)
- сторонние actions запинены на commit SHA (github-push-action, round_linker,
  repo-sync/pull-request, tgs-dmapi-updater, DreamAnnotate)
- least-privilege permissions в ci_suite.yml, предупреждение про pull_request_target в labeler

P2 - стоимость и скорость:
- build-once: тестовый .dmb собирается один раз и едет артефактом в плечи матрицы
  (убрано 19x компиляций DM и TGUI)
- workflow concurrency + cancel-in-progress, timeout-minutes на job'ах, paths-ignore
- кэш ~/.byond/bin, версионные ключи кэша, pip-кэш, dmdoc-крон 6ч -> сутки
@coderabbitai

coderabbitai Bot commented Jun 5, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: a370b9e4-4577-4bf9-baea-da405db2390a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

DuLL-FoX added 2 commits June 5, 2026 20:29
- check_grep.sh: add -I to the CRLF grep so binary assets (.dmi/.ogg/.wav
  with stray 0x0d bytes) are not flagged as CRLF; only text files are checked
- ci_suite.yml: run_all_tests timeout-minutes 30 -> 45; valid slow maps reach
  ~30 min (icemoon passed at 29m39s), 30 was too tight and false-killed runs
GitHub forces Node 20 actions to Node 24 on 2026-06-16. Bump every
first-party action to its first Node 24 major:
- checkout v4 -> v5, cache v4 -> v5
- upload-artifact v4 -> v6, download-artifact v4 -> v7
- setup-python v5 -> v6, github-script v6 -> v8, labeler v5 -> v6

DreamAnnotate v2 (Node 16) -> v3, which is a composite action using
problem matchers (no Node runtime, immune to the deprecation). It now
registers the matcher before the lint step and dreamchecker prints to
the console instead of a file; drops the separate annotate step and the
no-longer-needed checks:write permission.
@DuLL-FoX DuLL-FoX closed this Jun 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant