From 3e6a61e499ac60d5cb2a633388a66bf9883c0cd2 Mon Sep 17 00:00:00 2001 From: Andrew Smith Date: Sun, 4 Oct 2026 08:26:14 -0400 Subject: [PATCH 1/4] [eas-cli] Read .gitignore files inside dot-directories --- packages/eas-cli/src/vcs/__tests__/local-test.ts | 14 ++++++++++++++ packages/eas-cli/src/vcs/local.ts | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) 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 From 284915f888d22c7bf0547eef7bb1367e93a43e1f Mon Sep 17 00:00:00 2001 From: Andrew Smith Date: Sun, 4 Oct 2026 08:26:43 -0400 Subject: [PATCH 2/4] Add changelog entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 53b0001220..c1a6757f1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ This is the log of notable changes to EAS CLI and related packages. - [build-tools] Allow expo.test subdomains to open local and staging simulator previews. ([#4480](https://github.com/expo/eas-cli/pull/4480) by [@hirbod](https://github.com/hirbod)) - [build-tools] Retry App Store Connect connection failures and safely recover interrupted status reads and upload commits. ([#4520](https://github.com/expo/eas-cli/pull/4520) by [@sjchmiela](https://github.com/sjchmiela)) +- [eas-cli] Read `.gitignore` files inside dot-directories when archiving the project. ([#4537](https://github.com/expo/eas-cli/pull/4537) by [@AndrewSouthpaw](https://github.com/AndrewSouthpaw)) ### 🧹 Chores From 61317d2ea974c063b7ee6312f2147619068887f0 Mon Sep 17 00:00:00 2001 From: Andrew Smith Date: Thu, 22 Oct 2026 09:05:44 -0700 Subject: [PATCH 3/4] Revert "Add changelog entry" This reverts commit 284915f888d22c7bf0547eef7bb1367e93a43e1f. --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c1a6757f1c..53b0001220 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,6 @@ This is the log of notable changes to EAS CLI and related packages. - [build-tools] Allow expo.test subdomains to open local and staging simulator previews. ([#4480](https://github.com/expo/eas-cli/pull/4480) by [@hirbod](https://github.com/hirbod)) - [build-tools] Retry App Store Connect connection failures and safely recover interrupted status reads and upload commits. ([#4520](https://github.com/expo/eas-cli/pull/4520) by [@sjchmiela](https://github.com/sjchmiela)) -- [eas-cli] Read `.gitignore` files inside dot-directories when archiving the project. ([#4537](https://github.com/expo/eas-cli/pull/4537) by [@AndrewSouthpaw](https://github.com/AndrewSouthpaw)) ### 🧹 Chores From 4e6a22870a854d910a0ece07bc0fade1cee95a53 Mon Sep 17 00:00:00 2001 From: Andrew Smith Date: Thu, 22 Oct 2026 09:05:55 -0700 Subject: [PATCH 4/4] Add changeset --- .changeset/gitignore-dot-dirs.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/gitignore-dot-dirs.md 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.