mobile-dev-inc / maestro

Painless Mobile UI Automation
https://maestro.mobile.dev/
Apache License 2.0
5.84k stars 276 forks source link

Expo + Github actions gets me: Executable not found in app bundle #2084

Open Themrpie opened 1 month ago

Themrpie commented 1 month ago

Hello. I woud like to set up maestro with github actions instead of eas, I know that using eas is much easier when using expo.

My problem is that I keep getting:

Error: Error running Maestro Cloud Upload Action: Request to https://api.mobile.dev/v2/upload failed (400): Executable 'eastestsexample' not found in app bundle

So far my workflow is like this:

name: Build and upload to Maestro Cloud (Native iOS)

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: macOS-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '18'
      - name: Clean CocoaPods Cache
        run: pod cache clean --all
        working-directory: ios
      - name: Install Node.js dependencies
        run: npm install
        working-directory: ios
      - name: Install CocoaPods
        run: pod install --repo-update
        working-directory: ios
      - name: Clean Build Directory
        run: xcodebuild clean -project 'eastestsexample.xcodeproj' -scheme 'eastestsexample' -configuration Debug
        working-directory: ios
      - name: Show Build Settings
        run: xcodebuild -showBuildSettings -scheme 'eastestsexample' -project 'eastestsexample.xcodeproj'
        working-directory: ios
      - name: Build with xcodebuild
        run: xcodebuild -verbose build -scheme 'eastestsexample' -configuration Debug -project 'eastestsexample.xcodeproj' -destination 'generic/platform=iOS Simulator' CONFIGURATION_BUILD_DIR=$PWD/build | tee build.log
        working-directory: ios
      - name: List build directory contents
        run: ls -R build
        working-directory: ios
      - name: List .app bundle contents
        run: ls -R build/eastestsexample.app
        working-directory: ios
      - name: Upload build log
        uses: actions/upload-artifact@v4
        with:
          name: build-log
          path: ios/build.log
      - name: Upload to Maestro Cloud
        uses: mobile-dev-inc/action-maestro-cloud@v1
        with:
          api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
          app-file: ios/build/eastestsexample.app

As you can see I'm logging the contents of the app bundle and this is the output: List .app bundle content:

0s Run ls -R build/eastestsexample.app AppIcon60x60@2x.png AppIcon76x76@2x~ipad.png Assets.car Expo.plist Frameworks Info.plist PkgInfo PrivacyInfo.xcprivacy SplashScreen.storyboardc

build/eastestsexample.app/Frameworks:

build/eastestsexample.app/SplashScreen.storyboardc: EXPO-VIEWCONTROLLER-1-view-EXPO-ContainerView.nib Info.plist SplashScreenViewController.nib

So indeed, I don't see any eastestsexample executable, as the error says. But I don't know why. In case listing the build directory contents helps, here it is:

Run ls -R build eastestsexample.app generated

build/eastestsexample.app: AppIcon60x60@2x.png AppIcon76x76@2x~ipad.png Assets.car Expo.plist Frameworks Info.plist PkgInfo PrivacyInfo.xcprivacy SplashScreen.storyboardc

build/eastestsexample.app/Frameworks:

build/eastestsexample.app/SplashScreen.storyboardc: EXPO-VIEWCONTROLLER-1-view-EXPO-ContainerView.nib Info.plist SplashScreenViewController.nib

build/generated: ios

build/generated/ios: FBReactNativeSpec FBReactNativeSpecJSI-generated.cpp FBReactNativeSpecJSI.h RCTModulesConformingToProtocolsProvider.h RCTModulesConformingToProtocolsProvider.mm React-Codegen.podspec.json react rngesturehandler_codegen rngesturehandler_codegenJSI-generated.cpp rngesturehandler_codegenJSI.h rnreanimated rnreanimatedJSI-generated.cpp rnreanimatedJSI.h rnscreens rnscreensJSI-generated.cpp rnscreensJSI.h safeareacontext safeareacontextJSI-generated.cpp safeareacontextJSI.h

build/generated/ios/FBReactNativeSpec: FBReactNativeSpec-generated.mm FBReactNativeSpec.h

build/generated/ios/react: renderer

build/generated/ios/react/renderer: components

build/generated/ios/react/renderer/components: rngesturehandler_codegen rnscreens safeareacontext

build/generated/ios/react/renderer/components/rngesturehandler_codegen: ComponentDescriptors.cpp ComponentDescriptors.h EventEmitters.cpp EventEmitters.h Props.cpp Props.h RCTComponentViewHelpers.h ShadowNodes.cpp ShadowNodes.h States.cpp States.h

build/generated/ios/react/renderer/components/rnscreens: ComponentDescriptors.cpp ComponentDescriptors.h EventEmitters.cpp EventEmitters.h Props.cpp Props.h RCTComponentViewHelpers.h ShadowNodes.cpp ShadowNodes.h States.cpp States.h

build/generated/ios/react/renderer/components/safeareacontext: ComponentDescriptors.cpp ComponentDescriptors.h EventEmitters.cpp EventEmitters.h Props.cpp Props.h RCTComponentViewHelpers.h ShadowNodes.cpp ShadowNodes.h States.cpp States.h

build/generated/ios/rngesturehandler_codegen: rngesturehandler_codegen-generated.mm rngesturehandler_codegen.h

build/generated/ios/rnreanimated: rnreanimated-generated.mm rnreanimated.h

build/generated/ios/rnscreens: rnscreens-generated.mm rnscreens.h

build/generated/ios/safeareacontext: safeareacontext-generated.mm safeareacontext.h

Hopefully somebody will know what I'm doing wrong.

Thanks in advance

linear[bot] commented 1 month ago

MA-2304 Expo + Github actions gets me: Executable not found in app bundle