Problem with quoted CI_PROJECT_DIR value

In one of my test jobs I have this code snippet:

echo "**** DEBUG: CI_BUILDS_DIR=${CI_BUILDS_DIR}"
echo "**** DEBUG: CI_PROJECTS_DIR=${CI_PROJECT_DIR}"
cp /etc/yum.repos.d/*.repo ${CI_PROJECT_DIR}

Which results in:

**** DEBUG: CI_BUILDS_DIR=~/builds
**** DEBUG: CI_PROJECTS_DIR=~/builds/osbuild/ci/osbuild-composer
cp /etc/yum.repos.d/fedora-cisco-openh264.repo /etc/yum.repos.d/fedora-modular.repo /etc/yum.repos.d/fedora.repo /etc/yum.repos.d/fedora-updates-modular.repo /etc/yum.repos.d/fedora-updates.repo /etc/yum.repos.d/fedora-updates-testing-modular.repo /etc/yum.repos.d/fedora-updates-testing.repo /etc/yum.repos.d/osbuild-composer.repo /etc/yum.repos.d/osbuild.repo '~/builds/osbuild/ci/osbuild-composer'
cp: target '~/builds/osbuild/ci/osbuild-composer' is not a directory

Why does GitLab insist on quoting the value with single quotes?

This is preventing the ~ expansion and leads to my script failing.

1 Like