# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
# Project/CI/CD related items
.gitlab
.gitlab-ci.yml
.dockerignore
# Helm build files
.helmignore
.cache/
.config/
.local/
# OOM specific dirs
components/

