Skip to content

wrap each line in a script block as a section

John Cai requested to merge jc-script-sections into main

What does this MR do?

For scripts that have multiple lines, wraps each line as a collapsible section. Allows timestamp information for each line of the build script. First step is to implement it for the Bash shell.

This is protected behind a feature flag FF_SCRIPT_SECTIONS

This MR only adds support for bash. #28119 will add support for powershell & pwsh

Why was this MR needed?

It's a need for many customers to be able to see how long different steps of their script took.

What's the best way to test this MR?

Add a .gitlab-ci.yml with a script block with multiple lines eg:

job:
  stage: test
  script:
    - sleep 1
    - sleep 2
    - sleep 3
    - sleep 4
    - sleep 5

When a build runs, the output in the job output window should show each line in the script block with a time duration

image

What are the relevant issue numbers?

closes #4835 (closed).

Edited by John Cai

Merge request reports