Hexlet / Hexlet/project-action
The run annotation says "The tests have failed" on every failure, including setup
- Dominant language
- JavaScript
- Stars
- 1
- Forks
- 8
- Avg merge
- 3m
- Merged PRs (30d)
- 3
Description
## Что происходит
`bin/run-tests.js` ловит любую ошибку из `runTests` и вешает одну и ту же аннотацию:
```js
core.error('The tests have failed. Examine what they have to say. Inhale deeply. Exhale. Fix the code.');
```
Аннотация — единственное, что студент видит на странице прогона, не открывая лог. Она говорит «тесты упали» и тогда, когда тесты не запускались вовсе: провалился `docker pull`, не собрался образ, упал `make setup` на установке зависимостей.
## Как воспроизводится
Любой отказ до сервиса `test`. Пример с переименованным пакетом в php-проекте (`composer install` не находит `hexlet/code` в path-репозитории):
```
Problem 1
- Root composer.json requires hexlet/code, it could not be found in any version, there may be a typo in the package name.
::error::The tests have failed. Examine what they have to say. Inhale deeply. Exhale. Fix the code.
Error: The process '/usr/bin/docker' failed with exit code 2
```
Причина в логе есть, но между ней и хвостом лежит вывод сборки, а наверху страницы висит утверждение, которое уводит студента искать ошибку в своих тестах.
## Что стоит сделать
Аннотация должна называть фазу, на которой всё встало: подготовка образа, установка зависимостей, прогон тестов. Фазы уже разделены в `check()` и `prepareProject()`, не хватает только того, чтобы отказ доносил, откуда он.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in bin/run-tests.js and trace how check(), prepareProject(), and runTests() handle failures. Reproduce a failure before the test service, such as a dependency installation or image setup error, then compare it with a test-run failure. Done means the run annotation identifies the phase that failed instead of always saying that tests failed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- ci-cd
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100