I’ve had to update one of my pipelines due to ‘~’ taking on a special meaning and breaking uploads of artifacts with it in their filename, it would be nice if there was a --no-pattern or --literal option to make filenames be interpreted literally.
Error appearing after update:
buildkite-agent: fatal: failed to upload artifacts: collecting artifacts: invalid glob pattern "./ubuntu/questing/amd64/rehex_0.63.3-0~ubuntu2510_amd64.changes": invalid punctuation �
Original command in pipeline:
(cd debian/build/ && find -type f -exec buildkite-agent artifact upload {} \;)
New command in pipeline:
(cd debian/build/ && find -type f -print0 | sed -Ee 's/([]?*{}~[])/\\\1/g' | xargs -0 -L 1 -- buildkite-agent artifact upload)
Obviously this work-around will need updating in the future if/when the glob syntax changes again.