# Add one pattern per line.
#
# The patterns listed in this file will be compared with the list of files
# changed in a patch series (Pull Request) and if all files in the pull request
# are matched, then twister will not do a full run and optionally will only
# run on changed tests or boards.
#
.buildkite/daily.yml
.gitlint
.checkpatch.conf
.clang-format
.codecov.yml
.editorconfig
.gitattributes
.gitignore
.known-issues
.mailmap
.uncrustify.cfg
CODEOWNERS
MAINTAINERS.yml
LICENSE
Makefile
tests/*
samples/*
boards/*/*/*
doc/*
# GH action have no impact on code
.github/*
*.rst
*.md
# if we change this file or associated script, it should not trigger a full
# twister.
scripts/ci/twister_ignore.txt
scripts/ci/what_changed.py
scripts/ci/version_mgr.py
scripts/requirements*
