Mark a step as "setup" or "test"

I am a believer in that any test code that fails should fail and a human should have to check it before it is approved. But 90% of the jobs in our CircleCI are not in fact tests but setup. Typically downloading and installation of dependencies. If these fail, it is not a problem with our deployment.

So I am looking for an option to set on a step as “setup” or similar which means that if it fails then the job is restarted automatically (With appropriate backoff and caps). If it passes in the end, then the job is formally considered a success.

This would save a lot of time as I notice that quite a few dependency installs fail due to outages even in the biggest most stable repositories.