diff --git a/.changeset/gitignore-dot-dirs.md b/.changeset/gitignore-dot-dirs.md new file mode 100644 index 0000000000..ad9839a8f6 --- /dev/null +++ b/.changeset/gitignore-dot-dirs.md @@ -0,0 +1,5 @@ +--- +'eas-cli': patch +--- + +Read `.gitignore` files inside dot-directories when archiving the project. diff --git a/packages/eas-cli/src/vcs/__tests__/local-test.ts b/packages/eas-cli/src/vcs/__tests__/local-test.ts index abb9796e8b..c5f67ccaa7 100644 --- a/packages/eas-cli/src/vcs/__tests__/local-test.ts +++ b/packages/eas-cli/src/vcs/__tests__/local-test.ts @@ -60,6 +60,20 @@ describe(Ignore, () => { expect((ignore as any).ignoreMapping.map((i: any) => i[0])).toEqual(['', '', 'dir/']); }); + it('reads .gitignore from a dot-directory', async () => { + vol.fromJSON( + { + '.gitignore': 'aaa', + '.cache/.gitignore': 'bbb', + }, + '/root' + ); + + const ignore = await Ignore.createForCopyingAsync('/root'); + expect(ignore.ignores('bbb')).toBe(false); + expect(ignore.ignores('.cache/bbb')).toBe(true); + }); + it('applies all gitignore files in parent directories', async () => { vol.fromJSON( { diff --git a/packages/eas-cli/src/vcs/local.ts b/packages/eas-cli/src/vcs/local.ts index 2e8abf47c2..81ae86a33a 100644 --- a/packages/eas-cli/src/vcs/local.ts +++ b/packages/eas-cli/src/vcs/local.ts @@ -60,8 +60,9 @@ node_modules const ignoreFilePaths = ( await fg(`**/${GITIGNORE_FILENAME}`, { cwd: this.rootDir, - ignore: ['node_modules'], + ignore: ['node_modules', '.git'], followSymbolicLinks: false, + dot: true, }) ) // ensure that parent dir is before child directories