Hi, this small patch series includes a couple of more-or-less random improvements to GitLab CI. Changes in v2: - Use "%s" to inject variable data into section headers instead of converting to echo. - Link to v1: https://lore.kernel.org/r/20241206-pks-ci-section-fixes-v1-0-7ab1b69e3648@xxxxxx Changes in v3: - Wrap overly long lines. - Fix a word swap in a commit message. - Link to v2: https://lore.kernel.org/r/20241210-pks-ci-section-fixes-v2-0-e087cfd174f4@xxxxxx Thanks! Patrick --- Patrick Steinhardt (4): gitlab-ci: update macOS images to Sonoma ci/lib: remove duplicate trap to end "CI setup" group ci/lib: do not interpret escape sequences in `group ()` arguments ci/lib: fix "CI setup" sections with GitLab CI .gitlab-ci.yml | 4 ++-- ci/lib.sh | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) Range-diff versus v2: 1: e504aa4a1f = 1: 633af36640 gitlab-ci: update macOS images to Sonoma 2: 021ac694ef = 2: 6b6c6b2937 ci/lib: remove duplicate trap to end "CI setup" group 3: 6e355e22d7 ! 3: bd54f8e1b6 ci/lib: do not interpret escape sequences in `group ()` arguments @@ Commit message We use printf to set up sections with GitLab CI, which requires us to print a bunch of escape sequences via printf. The group name is controlled by the user and is expanded directly into the formatting - string, which may cause problems in case the argument controls escape + string, which may cause problems in case the argument contains escape sequences or formatting directives. Fix this potential issue by using formatting directives to pass variable @@ ci/lib.sh: elif test true = "$GITLAB_CI" begin_group () { need_to_end_group=t - printf "\e[0Ksection_start:$(date +%s):$(echo "$1" | tr ' ' _)[collapsed=true]\r\e[0K$1\n" -+ printf '\e[0Ksection_start:%s:%s[collapsed=true]\r\e[0K%s\n' "$(date +%s)" "$(echo "$1" | tr ' ' _)" "$1" ++ printf '\e[0Ksection_start:%s:%s[collapsed=true]\r\e[0K%s\n' \ ++ "$(date +%s)" "$(echo "$1" | tr ' ' _)" "$1" trap "end_group '$1'" EXIT set -x } @@ ci/lib.sh: then set +x need_to_end_group= - printf "\e[0Ksection_end:$(date +%s):$(echo "$1" | tr ' ' _)\r\e[0K\n" -+ printf '\e[0Ksection_end:%s:%s\r\e[0K\n' "$(date +%s)" "$(echo "$1" | tr ' ' _)" ++ printf '\e[0Ksection_end:%s:%s\r\e[0K\n' \ ++ "$(date +%s)" "$(echo "$1" | tr ' ' _)" trap - EXIT } else 4: bae2071e47 = 4: 41ad98d633 ci/lib: fix "CI setup" sections with GitLab CI --- base-commit: e66fd72e972df760a53c3d6da023c17adfc426d6 change-id: 20241206-pks-ci-section-fixes-1bb91ceb50b8