You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Request] Plain line output for spinner and progress in CI #629
Is your feature request related to a problem? Please describe.
When CI is "true", spinner() and progress() stop the animation. But the CI log still gets
terminal output that only makes sense on a TTY. This is the output of changeset publish
(changesets uses progress()) on GitHub Actions, with CI=true:
Progress updates also print lines like this one, with a new frame each time and no message:
◐ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The problems:
Cursor codes: ESC[?25l and ESC[?25h from block(), and ESC[1G with ESC[J from the
clear step. A CI log viewer shows them as noise.
The spinner frame (◒, ◐) on each line. A frame of an animation means nothing in a log.
The progress bar. Each update prints one more bar line, often with no message.
Each change of the spinner message prints a new line. That is fine for real steps, but a
message that only updates a counter or a string fills the log.
Describe the solution you'd like
In CI mode (or when the output is not a TTY), spinner(), progress() and the other live
components write plain lines only:
No cursor or erase codes, and no call to block() that hides the cursor.
No spinner frame and no progress bar. Print the message, then the final status line
(◇ Done, ■ Cancelled, ▲ Failed).
Optional: an option to skip message updates in CI, so only the start and the end lines print.
Describe alternatives you've considered
Strip ANSI codes in each consumer, for example with a pipe through sed. Every CLI that uses
clack must then do it, and a pipe can hide the exit code.
Consider using isTTY for isCI #286 (use isTTY for isCI). That changes when CI mode turns on. This request is about what
CI mode prints. Both changes work well together.
Additional context
@clack/prompts 1.8.1, @clack/core 1.5.1, through @changesets/cli 3.0.3.
Activity