UI for inspecting build logs and failed builds from the artifact cache

Background

Now that we have landed Caching Failed Builds !475 (merged) we need to add UI for users to interact with the failed build logs.

An assumption:

  • We only ever store one build (failed or successful) per artifact cache key.

Potential future optimisation:

  • We can introduce a way of marking the artifacts as "failed" in the remote cache, in such a way that we don't need to download the whole artifact before knowing if it's failed.

Task description

  • bst checkout {--hardlinks} for failed build, which checks out failed build tree and stages dependencies
  • bst shell for failed build, which sets up shell environment with SafeHardlinks wrapper around the failed build checkout
  • bst show able to indicate 'failed' vs. 'successful' status, in addition to existing 'cached' vs. 'downloadable' states
  • bst show --logs to view build logs embedded in an artifact
  • Integration tests
  • Documentation

Acceptance Criteria

  • Have a user manually test that the above commands work as expected when inspecting the failed build logs.