This removes the git ls-files -z dependancy in file listing for inclusion in the gem. This should remove the issues in the deployment action
fatal: detected dubious ownership in repository at '/github/workspace'
To add an exception for this directory, call:
git config --global --add safe.directory /github/workspace
I chose to go with an explicit manifest set of patterns as it seemed the easiest to control. I tired reading the .gitignore file with something like:
(Dir['**/**/*'] - Dir.glob(File.read('.gitignore').split("\n"))).reject do |f|
f.match(%r{^(test|spec|features|coverage|docker|bin|.github)/})
end
But Dir.glob doesn't process the same patterns as .gitignore so it included a bunch of extra files. (There were also a bunch of extra files with git ls-files -z like the docker files and bin files that were are including unnecessarily)
The best library to match the git results seemed to be https://github.com/robotdana/fast_ignore but getting it to install in bundler ahead of the other gems seemed more complicates.
-This also splits the bundle caches (doesn't resolve local issues but just in case the two versions are interfering with each other)
This removes the
git ls-files -z
dependancy in file listing for inclusion in the gem. This should remove the issues in the deployment actionI chose to go with an explicit manifest set of patterns as it seemed the easiest to control. I tired reading the
.gitignore
file with something like:But
Dir.glob
doesn't process the same patterns as.gitignore
so it included a bunch of extra files. (There were also a bunch of extra files withgit ls-files -z
like the docker files and bin files that were are including unnecessarily)The best library to match the git results seemed to be https://github.com/robotdana/fast_ignore but getting it to install in bundler ahead of the other gems seemed more complicates.
-This also splits the bundle caches (doesn't resolve local issues but just in case the two versions are interfering with each other)