Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v15+ seems to break eas build #2882

Open
superdopey opened this issue Feb 5, 2025 · 5 comments
Open

v15+ seems to break eas build #2882

superdopey opened this issue Feb 5, 2025 · 5 comments
Labels
bug Something isn't working

Comments

@superdopey
Copy link

Build/Submit details page URL

https://expo.dev/accounts/superdopey/projects/topr-pay/builds/2090b375-36de-435d-91c8-983bae11681c

Summary

I upgraded eas-cli from v14.7.1 to v15.0.4

Afterwards my EAS builds fail, whereas before they would build fine. I reverted back to v14.7.1 again, EAS builds work again.

Managed or bare?

Managed

Environment

expo-env-info 1.2.2 environment info:
System:
OS: Windows 11 10.0.22635
Binaries:
Node: 20.18.0 - C:\Program Files\nodejs\node.EXE
Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
npm: 10.8.2 - C:\Program Files\nodejs\npm.CMD
IDEs:
Android Studio: Version 2020.3.0.0 AI-203.7717.56.2031.7678000
npmPackages:
expo: ~52.0.30 => 52.0.30
expo-router: ~4.0.17 => 4.0.17
react: 18.3.1 => 18.3.1
react-dom: 18.3.1 => 18.3.1
react-native: 0.76.6 => 0.76.6
react-native-web: ~0.19.13 => 0.19.13
Expo Workflow: managed

Enabled experimental React Native Directory checks. Unset the EXPO_DOCTOR_ENABLE_DIRECTORY_CHECK environment variable to disable this check.
✔ Check package.json for common issues
✔ Check Expo config for common issues
✔ Check native tooling versions
✔ Check if the project meets version requirements for submission to app stores
✔ Check for common project setup issues
✔ Check dependencies for packages that should not be installed directly
✔ Check for app config fields that may not be synced in a non-CNG project
✔ Check for issues with Metro config
✔ Check npm/ yarn versions
✖ Validate packages against React Native Directory package metadata
✔ Check for legacy global CLI installed locally
✔ Check that native modules do not use incompatible support packages
✔ Check Expo config (app.json/ app.config.js) schema
✔ Check that packages match versions required by installed Expo SDK
✔ Check that native modules use compatible support package versions for installed Expo SDK

Detailed check results:

The following issues were found when validating your dependencies against React Native Directory:
Untested on New Architecture: lucide-react-native, react-native-nfc-manager
Unmaintained: react-native-event-listeners, redux-persist
No metadata available: @expo/html-elements, @gluestack-ui/accordion, @gluestack-ui/actionsheet, @gluestack-ui/alert, @gluestack-ui/alert-dialog, @gluestack-ui/avatar, @gluestack-ui/button, @gluestack-ui/checkbox, @gluestack-ui/divider, @gluestack-ui/fab, @gluestack-ui/form-control, @gluestack-ui/icon, @gluestack-ui/image, @gluestack-ui/input, @gluestack-ui/link, @gluestack-ui/menu, @gluestack-ui/modal, @gluestack-ui/nativewind-utils, @gluestack-ui/overlay, @gluestack-ui/popover, @gluestack-ui/pressable, @gluestack-ui/progress, @gluestack-ui/radio, @gluestack-ui/select, @gluestack-ui/slider, @gluestack-ui/spinner, @gluestack-ui/switch, @gluestack-ui/textarea, @gluestack-ui/toast, @gluestack-ui/tooltip, @hookform/resolvers, @legendapp/motion, async-mutex, eventemitter3, tailwindcss
Advice:

  • Use libraries that are actively maintained and support the New Architecture. Find alternative libraries with https://reactnative.directory.
  • Add packages to expo.doctor.reactNativeDirectoryCheck.exclude in package.json to selectively skip validations, if the warning is not relevant.
  • Update React Native Directory to include metadata for unknown packages. Alternatively, set expo.doctor.reactNativeDirectoryCheck.listUnknownPackages in package.json to false to skip warnings about packages with no metadata, if the warning is not relevant.

Error output

No response

Reproducible demo or steps to reproduce from a blank project

  • create expo project
  • install eas-cli v15.0.4
  • eas init
  • eas build --profile preview --platform android
@superdopey superdopey added the needs review Issue is ready to be reviewed by a maintainer label Feb 5, 2025
@sjchmiela
Copy link
Contributor

Hey, thanks for the report. Looks like since v15 on Windows we don't ignore the .gitignored files properly which causes whole node_modules to get packaged into the tarball. Then node_modules/expo/bin/expo is missing right permissions because permissioning system on Windows and on Linux is different.

Looking into it. Sorry for the trouble of having to figure out v15 broke your setup.

@sjchmiela sjchmiela added bug Something isn't working and removed needs review Issue is ready to be reviewed by a maintainer labels Feb 5, 2025
@sjchmiela
Copy link
Contributor

Hi @superdopey. I think I have a fix for eas-cli v15 on Windows.

Can you please:

  • add "requireCommit": true to eas.json
  • ensure you don't have .easignore (use .gitignore instead)
  • commit changes
  • try again with latest eas-cli (15.0.5)?

According to my testing node_modules should no longer be included in the project tarball which should fix the problem of non-executable expo. It wasn't executable, because it wasn't being installed on Linux / macOS as part of the build process — instead, it was a copy of node_modules installed on your Windows machine which wasn't executable by Unix standards.

@matejkriz
Copy link

Hi @sjchmiela, we are probably facing the same issue (but it might be a different issue related to the same change). Since eas-cli@15 our builds on GitHub CI started failing with this error:

Compressing project files
  Failed to upload the project tarball to EAS Build
  Reason: git clone --no-hardlinks --depth 1 file:///home/runner/work/trezor-suite/trezor-suite /tmp/runner/eas-cli-nodejs/99239adc-aafd-423b-a1d7-a7481fa45c7e-shallow-clone exited with non-zero code: 128

I guess it's because node_module files.

I also tried it now with [email protected], requireCommit: true and .easignore deleted with the same result:
https://github.com/trezor/trezor-suite/actions/runs/13202413750/job/36857408021?pr=16892#step:7:3074

@georgehap2
Copy link

@sjchmiela Thank you so much, i started going crazy.
And just to mention that this started couple of days ago.

Anyhow, great fix!

@LeonardoNoroWidelab
Copy link

Hi, I had to install the [email protected] to fix it
Seens every version of eas-cli@15 is with this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants