mobile-dev-inc / maestro

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

Maestro bitbucket pipeline fails with Android #1612

Open AlexGuiraoLopez opened 7 months ago

AlexGuiraoLopez commented 7 months ago

Describe the bug I'm using Maestro with Bitbucket pipeline for the first time with an Android project. I set all the steps from documentation but when pipeline executes it seems to fail for some reason. Installation was successful! message appear and some instructions of how to use maestro but it doesn't execute the tests.

To Reproduce Steps to reproduce:

  1. Prepare the YAML file for bitbucket as in Maestro documentation: pipelines: default:
    • step: name: Android Debug Application caches: # caching speed up subsequent execution
      • gradle script:
      • ./gradlew assembleStgDebug artifacts:
      • app/build/outputs/** # artifacts are files that are produced by a step
    • step: name: Maestro UI test script:
      • pipe: mobiledevinc/maestro-cloud-upload:1.2.0 # maestro UI testing. variables: MDEV_API_KEY: $MAESTRO_TOKEN MDEV_APP_FILE: app/build/outputs/apk/stg/debug/app-stg-debug.apk
  2. Push to Bitbucket
  3. The Flow fails at pipeline execution

Expected behavior Run Maestro test and receive its response.

Screenshots yaml bitbucket pipelinebitbucket response

Environment information (please complete the following information):

**Bugreport output: pipelineLog-{60b3e6c3-879c-4550-b829-57b8b758f199}.txt

axelniklasson commented 7 months ago

@AlexGuiraoLopez could you post the full output of the log from BitBucket please?

AlexGuiraoLopez commented 7 months ago

@AlexGuiraoLopez could you post the full output of the log from BitBucket please?

pipelineLog-{60b3e6c3-879c-4550-b829-57b8b758f199}.txt

axelniklasson commented 7 months ago

Thanks. Looks like the upload pipe can't find your Flows. Is your workspace present in the root directory of your repo and called .maestro? Otherwise you need to set MDEV_WORKSPACE with the path to your workspace as outlined in the docs.

AlexGuiraoLopez commented 7 months ago

Yes, my .maestro folder is located in android project root directory and tests inside:

Captura de pantalla 2023-12-11 a las 9 32 18
axelniklasson commented 7 months ago

android project root directory

Is this the same as the root directory of your repository or do you have a monorepo with multiple projects in the same repository? If so you need to set MDEV_WORKSPACE to <ANDROID_PROJECT_folder>/.maestro

AlexGuiraoLopez commented 7 months ago

Is the root of the bitbucket repository too.

axelniklasson commented 7 months ago

Got it, thanks. Passing this to @ArthurSav who has more context on our Bitbucket pipelines -- Arthur, can you please help out here?

SimenRom commented 7 months ago

Got the same issue now when im executing with maestro cloud-command from the CI. Worked perfectly fine for 1 or 2 weeks ago.

AlexGuiraoLopez commented 6 months ago

Any news about this issue? @axelniklasson @ArthurSav

ArthurSav commented 6 months ago

@AlexGuiraoLopez Can you set the workspace path explicitly? You can do this like so:

script:
  - pipe: mobiledevinc/maestro-cloud-upload:1.2.0
    variables:
      MDEV_API_KEY: "<string>"
      MDEV_APP_FILE: "<string>"
      MDEV_WORKSPACE: .maestro (or path to wherever the workspace folder is located)

If that doesn't work, please post the full pipe output again.

Also, I think you're using an older version of the pipe

AlexGuiraoLopez commented 1 month ago

I've tried to specify workspace and now I get different error:

Welcome to Maestro!
+ export PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/.maestro/bin
+ [ ! -z  ]
+ maestro cloud --apiKey $MAESTRO_TOKEN --branch composing/ui_migration_to_compose --repoName iatiapp_android --name 279 app/build/outputs/apk/stg/debug/app-stg-debug.apk .maestro
Evaluating workspace...
Uploading Flow(s)...
....................
Upload request failed (400): Workspace doesn't have any flow