Skip to content

ci: ускорить линтер кешированием и меньшим числом запросов - #34

Merged
vladcheck merged 4 commits into
mainfrom
ci/31-optimize-lint
Oct 13, 2026
Merged

vladcheck merged 4 commits into
mainfrom
ci/31-optimize-lint

Conversation

@vladcheck

Copy link
Copy Markdown
Owner

Что сделано

  • pom.xml: задан явный инкрементальный кеш maven-checkstyle-plugin (target/checkstyle-cachefile, уже в .gitignore через target/).
  • .mvn/maven.config: общий флаг --no-transfer-progress для всех запусков (локально, lefthook, CI).
  • workflow.yml, job lint: кеширование target/checkstyle-cachefile через actions/cache (ключ по хешам checkstyle.xml и pom.xml, fallback по префиксу); запуск с флагом -nsu.
  • workflow.yml, job format: запуск spotless:check с флагом -nsu.
  • Проверено: кеш Maven (cache: maven) в setup-java уже покрывает все jobs (build/format/lint/junit) — без изменений.

Почему это ускоряет

Основная задержка из issue — сетевые обращения на холодном кеше: опрос snapshot-репозитория apache.snapshots (тянется из родительского apache-pom цепочки плагина) по каждому артефакту и прогресс скачивания. Флаг -nsu убирает опрос снапшотов (в проекте нет SNAPSHOT-зависимостей, все версии зафиксированы), а кеш checkstyle-cachefile делает повторные прогоны инкрементальными.

Замеры

  • До (из issue, холодный кеш CI): 15.787 c.
  • После, локально тёплый кеш: checkstyle:check ~2.0–2.3 c, повторный прогон ~2.1 c (0 нарушений), spotless:check ~0.5–1.2 c.
  • Локальный холодный старт CI проверить нельзя (общий ~/.m2), выигрыш в CI — за счёт -nsu и кеша cachefile.

Как проверено

  • mvn -B -nsu checkstyle:check — BUILD SUCCESS, 0 нарушений.
  • mvn -B -nsu spotless:check — BUILD SUCCESS.
  • mvn -B test — 70 тестов, 0 ошибок (интеграционные исключены через excludedGroups).
  • lefthook pre-commit (lint/format/test) — всё зелёное.
  • YAML workflow проверен парсером.

Closes #31

@vladcheck vladcheck self-assigned this Oct 13, 2026
@vladcheck
vladcheck requested review from Deatheh and miyagi18 October 13, 2026 15:29
@vladcheck vladcheck added the CI Job or pipeline related label Oct 13, 2026
@vladcheck
vladcheck enabled auto-merge (squash) October 13, 2026 15:48
@vladcheck
vladcheck merged commit 5e5e608 into main Oct 13, 2026
8 checks passed
@vladcheck
vladcheck deleted the ci/31-optimize-lint branch October 13, 2026 15:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI Job or pipeline related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Оптимизировать lint

1 participant