bombshell-dev / clack

Effortlessly build beautiful command-line apps
https://clack.cc
5.53k stars 90 forks source link

[Request] Disable continuous terminal rewriting in CI #168

Open JoshuaKGoldberg opened 1 year ago

JoshuaKGoldberg commented 1 year ago

Is your feature request related to a problem? Please describe.

Spinning out from https://github.com/JoshuaKGoldberg/create-typescript-app/issues/859: when running Clack's spinners in a project in CI (e.g. GitHub Actions), you get a ton of CI logs:

│
◇  ✅ Passed migrating repository structure.
[25](https://github.com/JoshuaKGoldberg/create-typescript-app/actions/runs/6264408991/job/17011040698?pr=858#step:5:26)l│
◒  Cleaning up files◐  Cleaning up files◓  Cleaning up files◑  Cleaning up files◒  Cleaning up files◐  Cleaning up files◓  Cleaning up files◑  Cleaning up files◒  Cleaning up files.◐  Cleaning up files.◓  Cleaning up files.◑  Cleaning up files.◒  Cleaning up files.◐  Cleaning up files.◓  Cleaning up files.◑  Cleaning up files.◒  Cleaning up files..◐  Cleaning up files..◓  Cleaning up files..◑  Cleaning up files..◒  Cleaning up files..◐  Cleaning up files..◓  Cleaning up files..◑  Cleaning up files..◒  Cleaning up files...◐  Cleaning up files...◓  Cleaning up files...◑  Cleaning up files...◒  Cleaning up files...◐  Cleaning up files...◓  Cleaning up files...◑  Cleaning up files...◒  Cleaning up files...◐  Cleaning up files◓  Cleaning up files◑  Cleaning up files◒  Cleaning up files◐  Cleaning up files◓  Cleaning up files◑  Cleaning up files◒  Cleaning up files◐  Cleaning up files.◓  Cleaning up files.◑  Cleaning up files.◒  Cleaning up files.◐  Cleaning up files.◓  Cleaning up files.◑  Cleaning up files.◒  Cleaning up files.◐  Cleaning up files..◓  Cleaning up files..◑  Cleaning up files..◒  Cleaning up files..◐  Cleaning up files..◓  Cleaning up files..◑  Cleaning up files..◒  Cleaning up files..◐  Cleaning up files...◓  Cleaning up files...◑  Cleaning up files...◒  Cleaning up files...◐  Cleaning up files...◓  Cleaning up files...◑  Cleaning up files...◒  Cleaning up files...◐  Cleaning up files...◓  Cleaning up files◑  Cleaning up files◒  Cleaning up files◐  Cleaning up files◓  Cleaning up files◑  Cleaning up files◒  Cleaning up files◐  Cleaning up files◓  Cleaning up files.◑  Cleaning up files.◒  Cleaning up files.◐  Cleaning up files.◓  Cleaning up files.◑  Cleaning up files.◒  Cleaning up files.◐  Cleaning up files.◓  Cleaning up files..◑  Cleaning up files..◒  Cleaning up files..◐  Cleaning up files..◓  Cleaning up files..◑  Cleaning up files..◒  Cleaning up files..◐  Cleaning up files..◓  Cleaning up files...◑  Cleaning up files...◒  Cleaning up files...◐  Cleaning up files...◓

Screenshot of the preceding code block in CI, showing many "Cleaning up files.." notices

Describe the solution you'd like

Could we an option to disable terminal animations, so each line is only logged once? Ideally that option would default to auto-detecting whether the environment is a CI one.

Describe alternatives you've considered

User-land code could avoid spinners in CI by doing the detection themselves. That's a lot of work for each consuming project though.

Additional context

I'd be happy to implement this - though might not have time soon.

Mist3rBru commented 1 year ago

GitHub Actions sets common environment variables that we can use to determine if the code is running in their environment. We can do something like process.env.GITHUB_ACTIONS === 'true' to auto detect it.