Skip to content

CI: "rules: changes" ignores files moved outside of scope

Summary

When I use the rules:changes CI/CD configuration parameter and move or rename a matching file to a non-matching path or filename, the corresponding job is not run.

Steps to reproduce

# .gitlab-ci.yml

pwd:
  image: busybox
  script: pwd
  rules:
    - changes:
      example/**/*
      when: always
    - when: never
mkdir example
touch example/test
git add .
git commit -m "Create test file"
git push
# Job runs.
mv ./example/test ./test
git add .
git commit -m "Move test file"
git push
# Job does not run.

Example Project

(If possible, please create an example project here on GitLab.com that exhibits the problematic behavior, and link to it here in the bug report)

(If you are using an older version of GitLab, this will also determine whether the bug is fixed in a more recent version)

What is the current bug behavior?

The job does not run despite a change in the targeted path.

What is the expected correct behavior?

The job should run as if the file was deleted from the targeted path.

Relevant logs and/or screenshots

(None.)

Output of checks

(None.)

Results of GitLab environment info

GitLab 12.9.2

Results of GitLab application Check

(n/a)

Possible fixes

(Not sure.)