Backend: Using variables in rules:exists does not work if the variable contains a `/`
### Summary When using variables in the `rules:exists` keyword, the pipeline does not start if the variable contains `/` Furthermore, if there is a `.` in the `rules:exists` configuration at all, it will never start. The same issue occurs when replacing `.` with `$CI_PROJECT_DIR`, and the output of `pwd` and `echo $CI_PROJECT_DIR` are an exact match, while an `ls` shows the folders are indeed present ### Steps to reproduce Create a repository containing a folder named `folder` and a file named `flag` inside it. Add a `.gitlab-ci.yml` with the following configuration ```yml variables: dir: "folder" file: "flag" full_path: "folder/flag" a: rules: - exists: - $dir/$file image: alpine:latest script: - echo hi b: rules: - exists: - $full_path image: alpine:latest script: - echo hi c: rules: - exists: - ./folder/flag image: alpine:latest script: - echo hi ``` ### What is the current *bug* behavior? Only job `a` starts ### What is the expected *correct* behavior? All the jobs should start ### Relevant links https://gitlab.com/gitlab-org/gitlab/-/issues/283881+ and https://gitlab.com/gitlab-org/gitlab/-/merge_requests/101639+ Relevant code likely [here](https://gitlab.com/gitlab-org/gitlab/-/blob/v17.2.0-ee/lib/gitlab/ci/build/rules/rule/clause/exists.rb?ref_type=tags#L29-34).
issue