Hexlet / Hexlet/project-action

The run annotation says "The tests have failed" on every failure, including setup

Open
#44 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.