Skip to content

Run expo doctor for PRs in GitHub Actions #67

@hsjoberg

Description

@hsjoberg

As we go heavy nazi-style with lint check etc, perhaps we should also make sure that bunx expo-doctor returns success to be able to merge a PR. This would give us better guarantee that libs etc works well with the current Expo SDK version that we use.

Example output (n.b: these will need to be addressed before we add support in CI):

12/17 checks passed. 5 checks failed. Possible issues detected:
Use the --verbose flag to see more details about passed checks.

✖ Check for issues with Metro config
- "watchFolders" does not contain all entries from Expo's defaults
Advice:
Modifying the "metro.config.js" is dangerous and may lead to unintended consequences.
Unless you know what these overrides do, remove them and adopt the recommended values from "expo/metro-config".

✖ Check that no duplicate dependencies are installed
Your project contains duplicate native module dependencies, which should be de-duplicated.
Native builds may only contain one version of any given native module, and having multiple versions of a single Native module installed may lead to unexpected build errors.
Found duplicates for expo-constants:
  ├─ [email protected] (at: ..\node_modules\expo-constants)
  ├─ [email protected] (at: ..\node_modules\expo-asset\node_modules\expo-constants)
  └─ [email protected] (at: ..\node_modules\expo-notifications\node_modules\expo-constants)
Advice:
Resolve your dependency issues and deduplicate your dependencies. Learn more: https://expo.fyi/resolving-dependency-issues

✖ Check for app config fields that may not be synced in a non-CNG project
This project contains native project folders but also has native configuration properties in app.config.ts, indicating it is configured to use Prebuild. When the android/ios folders are present, EAS Build will not sync the following properties: orientation, userInterfaceStyle, plugins, ios, android, androidStatusBar. 


✖ Validate packages against React Native Directory package metadata
The following issues were found when validating your dependencies against React Native Directory:
  Untested on New Architecture: react-native-nitro-ark
  No metadata available: @react-native-vector-icons/get-image, @react-native-vector-icons/ionicons, noah-tools
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.

✖ Check that packages match versions required by installed Expo SDK

⚠️ Minor version mismatches
package                         expected  found  
@react-native-community/slider  5.0.1     5.1.1  

🔧 Patch version mismatches
package                         expected  found  
react-native-worklets           0.5.1     0.5.2  



2 packages out of date.
Advice:
Use 'npx expo install --check' to review and upgrade your dependencies.
To ignore specific packages, add them to "expo.install.exclude" in package.json. Learn more: https://expo.fyi/dependency-validation

5 checks failed, indicating possible issues with the project.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions