awslabs / aws-device-farm-gradle-plugin

Gradle plugin for AWS Device Farm.
Apache License 2.0
61 stars 32 forks source link

Adding support for Polling on runs blocking Gradle build process #25

Open andreas-marschke opened 6 years ago

andreas-marschke commented 6 years ago

Hi!

This is a follow up on #22 splitting out only the blocking portion of the gradle plugins build process.

Please review.

Thanks in advance!

cc @bradley-curran @ahawker

keiththompson commented 6 years ago

👋 Is there anything blocking this PR? I'd love to use this plugin but without blocking it's not really useable on CI.

nicknovitski commented 5 years ago

I'm glad to see this is at least on the roadmap.

In the meantime it's very possible to script around the gradle task to get this functionality. I've been able to do it using fastlane.

Something like this:

lane :devicefarm do
  upload_result = gradle(
      task: "devicefarmUpload",
      # ...
    )
    result_info = upload_result.match(/View the INSTRUMENTATION run.*\/projects\/(?<project_id>.*)\/runs\/(?<run_id>.*)$/)
    run_arn = "arn:aws:devicefarm:us-west-2:#{your_aws_account_id}:run:#{result_info[:project_id]}/#{result_info[:run_id]}"
    until (result = JSON.load(sh("aws devicefarm --region us-west-2 get-run --arn #{run_arn}"))["run"]["result"]) != "PENDING"
      UI.message("Run pending...")
      sleep 30
    end
    result == "PASSED"
end

It might be a little easier if the "View the INSTRUMENTATION..." line was printed to stderr and the run's arn was on stdout, but it's not a big deal.

zdglagola commented 5 years ago

Bump on this. Fantastic feature, and we are maintaining an internal fork similar to this PR to accomplish our CI needs.

JigneshArtoo commented 5 years ago

@nicknovitski Thank you for your answer. I am trying to use your solution but its not working. When trying to print to console using UI.message(result_info), it's not printing anything. Any idea how can I make it working. Again thank you.

oleksandr-yefremov commented 4 years ago

1,5 years later - is the plugin maintained at all? Are there any plans to merge this PR which adds support for integrating into CI?

nicknovitski commented 4 years ago

@JigneshArtoo Try printing the whole return value of the gradle method call. It might be failing to upload in the first place.

a-melnyk commented 3 years ago

I need this functionality (and XML reports from #22) for my current project and would like to avoid creation/usage and maintenance of my own fork. Is there any chance to revive the plugin and finalise those PRs? It seems that @andreas-marschke has done almost all work, I'd be happy to contribute if anything left.

@nikhil-dabhade, could you please help to finalise this PR or point to colleagues who are maintaining this plugin?

igor-brishkoski commented 1 year ago

Bumping this, pretty basic feature imo.