Skip to content

Collapsable job log

Description

Job logs can be really long and full of different commands, making it hard to find details you're looking for. We should be able to expand and collapse command output so that it more readable. Currently running commands should be expanded. As each command finishes and succeeds, it should be collapsed. If a command fails, it should stay expanded. Each command should show a duration. Ideally, this would still look very much like a single log, just with collapsable sections. Travis and Codeship are good examples here.

Proposal

  • Show each script command as collapsable section
  • Collapse commands that succeeded by default (if we do this we need one "expand all" button)
  • Expand currently running command, if any
  • Expand failed commands (generally the last one)
  • Show durations of each command

Screenshot of proposal

The solution will be similar to Travis as in expandable arrows within the job log text

Original issue

Expand for original description
CircleCI and Travis CI both collapse their build logs into sections for each command. It makes the build logs a *lot* easier to read through. Right now GitLab CI shows the full build log by default, so for builds like [this](https://gitlab.com/gitlab-org/gitlab-ce/builds/941269) I have to scroll down all the way to the bottom through a bunch of stuff (booting Docker, gem installs, migrations, etc.) to get to the test - which is what I actually want to see.

CircleCI:

Screen_Shot_2016-03-27_at_10.26.29_AM

Travis CI:

Screen_Shot_2016-03-27_at_10.27.59_AM

GitLab CI: Screen_Shot_2016-03-27_at_10.29.19_AM

I assume the other two do this by just looking for the command in the build log and separating the log for every command? Would improve the Build UX by a ton.

Edited by Brendan O'Leary