awslabs / aws-device-farm-jenkins-plugin Goto Github PK
View Code? Open in Web Editor NEWJenkins plugin for AWS Device Farm.
License: Apache License 2.0
Jenkins plugin for AWS Device Farm.
License: Apache License 2.0
Hi there,
I use this plug in for android instrumentation test. But when I choose Choose your execution environment
and look for my custom test spec in Select Test Specification file
drop down menu, it doesn't show up there. Only Test Specs with category CURATED show up. I guess you only list built in test specs from Amazon?
I tried to upload the .yaml file using console and aws cli (https://docs.aws.amazon.com/devicefarm/latest/developerguide/how-to-create-test-run.html#how-to-create-test-run-cli-step5)
AWS Device Farm Plugin Ver. 1.9
I' facing a issue when I create job to run "APPIUM_JAVA_JUNIT".
When I execute job, I got error below:
[AWSDeviceFarm] Using App 'target/app/build/outputs/apk/app-debug.apk'
[AWSDeviceFarm] Archiving artifact 'app-debug.apk'
[AWSDeviceFarm] Uploading app-debug.apk to S3
[AWSDeviceFarm] Waiting for upload app-debug.apk to be ready (current status: INITIALIZED)
[AWSDeviceFarm] Getting test to schedule.
[AWSDeviceFarm] Archiving artifact 'zip-with-dependencies.zip'
[AWSDeviceFarm] Uploading zip-with-dependencies.zip to S3
[AWSDeviceFarm] Waiting for upload zip-with-dependencies.zip to be ready (current status: PROCESSING)
[AWSDeviceFarm] Scheduling 'APPIUM_JAVA_JUNIT' run 'app-debug.apk (Jenkins)'
ERROR: Build step failed with exception
com.amazonaws.services.devicefarm.model.ArgumentException: Missing or unprocessed resources. (Service: AWSDeviceFarm; Status Code: 400; Error Code: ArgumentException; Request ID: f3f7c36d-5d17-11e5-ab63-e3978af19c81)
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1182)
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:770)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:489)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:310)
at com.amazonaws.services.devicefarm.AWSDeviceFarmClient.invoke(AWSDeviceFarmClient.java:1524)
at com.amazonaws.services.devicefarm.AWSDeviceFarmClient.scheduleRun(AWSDeviceFarmClient.java:1460)
at org.jenkinsci.plugins.awsdevicefarm.AWSDeviceFarm.scheduleRun(AWSDeviceFarm.java:419)
at org.jenkinsci.plugins.awsdevicefarm.AWSDeviceFarmRecorder.perform(AWSDeviceFarmRecorder.java:283)
at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:761)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:721)
at hudson.model.Build$BuildExecution.post2(Build.java:183)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:670)
at hudson.model.Run.execute(Run.java:1766)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:374)
Build step 'Run Tests on AWS Device Farm' marked build as failure
Finished: FAILURE
Can you look at this?
Thanks.
We have an aws device farm account with only one project. Trying to select the Device Pool items in a simple build job is not possible, since when you click in the project list unique item action "org.jenkinsci.plugins.awsdevicefarm.AWSDeviceFarmRecorder/fillProjectNameItems" is not called.
Hi,
I'm using your plugin with Multi-job plugin. I would like to create several different multi-jobs that run tests on different device pools. I wanted to create new environment variable on the start of each multi-job that contains name of the device pool I would like to use, but I can't use this variable because device pool choose field is a combobox. Could you change this field to be able to use variables? I have like 20 jobs for single tests and 3 device pools and I don't want to create another 40 jobs just to change the device pool.
Jenkins and many plug-ins support invoking API via http proxy server. But this plug-in doesn't support it.
We can specify proxy server information by JVM parameter on launching jenkins.
Here are an example script:
/usr/bin/java -Dfile.encoding=UTF-8 -XX:PermSize=256m -XX:MaxPermSize=512m -Xms256m -Xmx512m
-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8888
-Djava.io.tmpdir=/Users/Shared/Jenkins/tmp -jar /Applications/Jenkins/jenkins.war --httpPort=14001
Even though the help command reads "File pattern (local to workspace) where the newly built application (.apk, .ipa) exists.", specifying a path to an IPA-file results in error:
[AWSDeviceFarm] Using App 'build/Release-iphoneos/*.ipa'
[AWSDeviceFarm] Unknown app artifact to upload: build/Release-iphoneos/*.ipa
We use multiple AWS accounts and need to be able to change which AWS account is used per pipeline.
Thanks for releasing a new version of the plugin.
I noticed some issues so far. Idk you guys aware about them, if so just close this ticket.
Unable to increase Execution Timeout more than 60 mins.
We bought a more time for our runs and currently we have 150 mins.
Unable to Disable checkboxes on Execution Configuration.
Every time i disabling them, saved, and re-enter the Job configuration they got enabled back by
themselfs.
Test Filter Field for XCTest UI is not saving a values that was given.
But this problem is mentioned in Issue #53
Let me know if you need some additional info.
Regards,
Alex.
You have it in some of your other plugins, specifically the publish to S3 one, with this commit the specific containing most of the changes from old style, to the new one,
jenkinsci/s3-plugin@0b4db3a
Hi, this great plugin almost works well, but Storing AWS Device Farm result
feature always fails in my environment, as causing Status Code: 500; Error Code: InternalFailure
. Does anyone have same issue ?
device-farm plugin version: 1.9
Jenkins version: 1.580.2
Error messages below;
[AWSDeviceFarm] Test run is complete.
[AWSDeviceFarm] Storing AWS Device Farm results in directory /var/jenkins_home/jobs/***mask***/builds/30/archive/AWS Device Farm Results
ERROR: Build step failed with exception
com.amazonaws.AmazonServiceException: null (Service: AWSDeviceFarm; Status Code: 500; Error Code: InternalFailure; Request ID: f1d5a8bb-5ae5-11e5-bfaf-7549af5d7ebf)
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1182)
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:770)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:489)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:310)
at com.amazonaws.services.devicefarm.AWSDeviceFarmClient.invoke(AWSDeviceFarmClient.java:1524)
at com.amazonaws.services.devicefarm.AWSDeviceFarmClient.listSuites(AWSDeviceFarmClient.java:1263)
at org.jenkinsci.plugins.awsdevicefarm.AWSDeviceFarm.listSuites(AWSDeviceFarm.java:488)
at org.jenkinsci.plugins.awsdevicefarm.AWSDeviceFarmRecorder.getSuites(AWSDeviceFarmRecorder.java:373)
at org.jenkinsci.plugins.awsdevicefarm.AWSDeviceFarmRecorder.perform(AWSDeviceFarmRecorder.java:311)
at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:776)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:723)
at hudson.model.Build$BuildExecution.post2(Build.java:183)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:670)
at hudson.model.Run.execute(Run.java:1763)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:381)
Build step 'Run Tests on AWS Device Farm' marked build as failure
According to the description in the plugin, the Fuzz test parameters "Event Count", "Event Throttle" and "Seed" are optional. If I leave them empty, I get these python-errors in AWS:
stream() takes exactly 3 arguments (2 given)
'NoneType' object has no attribute 'filename'
As a work-around I used the same parameters in jenkins that are suggested when creating a Fuzz test on AWS directly:
Event Count: 6000
Event Throttle: 50
(The Seed can actually be left empty)
Not sure if this is a bug in the jenkins plugin or in AWS device farm itself.
I'm trying to configure the Access Key / Secret Key for this plugin. Is there a way to do this programmatically without having to open the browser? A lot of other Jenkins plugins can be configured through groovy scripts, so does something similar exist for this plugin?
Hi,
I have the following error with the 1.19 version (I rollbacked to 1.17 and it's fine)
I'm using an unmetered device.
[Pipeline] devicefarm
[AWSDeviceFarm] Using Project 'xxx'
[AWSDeviceFarm] Using DevicePool 'devicepool-android-prod'
[AWSDeviceFarm] Using App 'app-test.apk'
[AWSDeviceFarm] Archiving artifact 'app-test.apk'
[AWSDeviceFarm] Uploading app-test.apk to S3
[AWSDeviceFarm] Waiting for upload app-test.apk to be ready (current status: INITIALIZED)
[AWSDeviceFarm] Upload app-test.apk succeeded
[AWSDeviceFarm] Getting test to schedule.
[AWSDeviceFarm] Archiving artifact 'app-test-autotest-build-27-v1.6.apk'
[AWSDeviceFarm] Uploading app-test-autotest-build-27-v1.6.apk to S3
[AWSDeviceFarm] Waiting for upload app-test-autotest-build-27-v1.6.apk to be ready (current status: PROCESSING)
[AWSDeviceFarm] Upload app-test-autotest-build-27-v1.6.apk succeeded
[Pipeline] }
[Pipeline] // container
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // withCredentials
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // podTemplate
[Pipeline] End of Pipeline
GitHub has been notified of this commit’s build result
java.lang.NullPointerException
at org.jenkinsci.plugins.awsdevicefarm.AWSDeviceFarmRecorder.getScheduleRunTest(AWSDeviceFarmRecorder.java:1011)
at org.jenkinsci.plugins.awsdevicefarm.AWSDeviceFarmRecorder.perform(AWSDeviceFarmRecorder.java:557)
at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:80)
at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:67)
at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1$1.call(SynchronousNonBlockingStepExecution.java:50)
at hudson.security.ACL.impersonate(ACL.java:290)
at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1.run(SynchronousNonBlockingStepExecution.java:47)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Finished: FAILURE
Plugin works fine unless the 'Store test results locally' option is selected. The job fails with the below error message. Looks like there was an issue submitted around this feature in the recent past.
Is this feature still working?
Jenkins 2.19
aws-device-farm Plugin version: 1.13
Console Output Snippet:
[AWSDeviceFarm] Test run is complete.
[AWSDeviceFarm] Storing AWS Device Farm results in directory C:\Jenkins\jobs\Calc3-Android-UI_Tests\builds\6\archive\AWS Device Farm Results
ERROR: Build step failed with exception
java.lang.NullPointerException
at hudson.FilePath.isAbsolute(FilePath.java:281)
at hudson.FilePath.resolvePathIfRelative(FilePath.java:266)
at hudson.FilePath.<init>(FilePath.java:262)
at org.jenkinsci.plugins.awsdevicefarm.AWSDeviceFarmRecorder.getSuites(AWSDeviceFarmRecorder.java:427)
at org.jenkinsci.plugins.awsdevicefarm.AWSDeviceFarmRecorder.perform(AWSDeviceFarmRecorder.java:356)
at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:720)
at hudson.model.Build$BuildExecution.post2(Build.java:185)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:665)
at hudson.model.Run.execute(Run.java:1745)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:404)
Build step 'Run Tests on AWS Device Farm' marked build as failure
Finished: FAILURE
We would like to integrate the AWS test into a Fastlane build process.
There is a way to separate the fastlane task to two different steps (build + upload store)
But in this situation we should execute the AWS test between this two 'build' steps.
Is any way to Add this plugin as a Build Step instead of Post Build Action?
Hi,
I'm still experiencing an NPE with 1.20 (following #78 )
java.lang.NullPointerException
at org.jenkinsci.plugins.awsdevicefarm.AWSDeviceFarmRecorder.perform(AWSDeviceFarmRecorder.java:592)
at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:80)
at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:67)
at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1$1.call(SynchronousNonBlockingStepExecution.java:50)
at hudson.security.ACL.impersonate(ACL.java:290)
at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1.run(SynchronousNonBlockingStepExecution.java:47)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Finished: FAILURE
From what I can tell the fix was committed in 2d8cfe3, #96 and #95 but the plugin is still showing unsafe according to Jenkins. https://plugins.jenkins.io/aws-device-farm/
Is it still unsafe?
To whom it may concern.
I have encountered a problem using aws-device-farm-jenkins-plaugin.
I try to run a single Android UI Automator test via jenkins using aws-device-farm-jenkins-plugin.
I point out in the field 'Filter' of 'com.uiautomator.test.BaseTestRunner#test' but the entire test class (bn.ereader.BaseTestRunner) runs.
Perhaps, you have a solution.
Thanks.
Best wishes, Nikolai
Hi,
Is there any way to get .apk/.ipa from S3 bucket to Jenkins-Device farm-Application path
Scenario :
After Dev team triggers the Jenkins-job, It will store the app in S3 bucket with AppName-CXXX.XX.XX.apk
In post build actions it will trigger the Automation job (Remote trigger Jenkins job) and I need to use that .apk file path in Application.
Thanks,
Madhu
Is it possible or will it ever be possible to modify the device state through the plugin? I'd like to upload dependencies, but I haven't found any way.
Hey there awslabs!
I noticed in the AWS console, there's an option to use Appium version 1.7.1 (with Appium Python type.)
But I don't have this option in your Jenkins plugin, v1.15.
Any plans to support this? My tests are erroring on Appium version 1.6.5.
Currently I have to run my tests via command line or from the device farm console since in order to select the 1.7.1 version.
Thanks in advance,
In Aws Device Farm you can set the Device Locale for the test run.
But If you run your test with the Jenkins plugin there's no option to set the Locale.
If you are unlucky you might end up with another locale than what you expect, since it will be saved from the previous run on that device.
Is there a way to set the Device Locale in the plugin?
Hi there,
I am facing issue with plugin configuration. I am setting up environment variables(NO_PROXY, HTTP_PROXY, HTTPS_PROXY) in jenkins settings.
I also tried to add JAVA_ARGS to jenkins configuration file:
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhttp.proxyHost=xyz -Dhttp.proxyPort=yyyy -Dhttps.proxyHost=xyz -Dhttps.proxyPort=yyyy -Dhttp.nonProxyHosts='localhost|127.0.0.1|169.254.169.254|*.amazonaws.com|*.s3-us-west-2.amazonaws.com'"
I am pretty sure that NO_PROXY variable is correct as aws cli is working fine even from jenkins.
Here is log with exection:
amazon_df.log
Can someone advice what exactly is wrong?
Thanks
In case of zip packaging issue or any we don't get proper debugging statements on the console, so its good to have debugging enabled for any failure occurred while processing and uploading the zip.
We get error message from UI perspective on device farm I hope we can print the same if any thing fails from jenkins resource upload.
In the "Choose a test to run" section of the plugin, none of the tests is selected by default. If you forget to select one the build fails in AWS with an unhelpful nullpointer exception.
AWSDeviceFarmRecorder.java
Two places calling
if (isRunUnmetered != null && isRunUnmetered) {
String os = adf.getOs(appArtifact);
public FormValidation doCheckIsRunUnmetered(@QueryParameter Boolean isRunUnmetered, @QueryParameter String appArtifact) {
if (isRunUnmetered != null && isRunUnmetered) {
AWSDeviceFarm adf = getAWSDeviceFarm();
String os = null;
try {
os = adf.getOs(appArtifact);
Without checking whether it's a Web App test which does not have an appArtiffact.
It will always throw following error when testing Web App on an unmetered device.
" throw new AWSDeviceFarmException(String.format("Unknown app artifact to upload: %s", appArtifact));"
In the plugin configuration for a build I am able to select among Android device pools but I am not seeing any of the configured iOS device pools show up in the list.
Am I missing something? (Yes, I tried hitting refresh.)
I use Device Farm Jenkins Plugin in my Jenkins project as a post build action. However, from time to time, my Jenkins project is stuck in storing AWS Device Farm results in directory, with the error below.
[AWSDeviceFarm] Storing AWS Device Farm results in directory /Volumes/Data/Home/jobs/Android_Monitoring_Tests/builds/368/archive/AWS Device Farm Results
[AWSDeviceFarm] Downloading AWS Device Farm results archive...
It looks to me an API issue which fails to return CUSTOMER_ARTIFACT_URL.
It'll be good if some resiliency (retry) and exit condition is added to the artifact download part of this plugin so that Jenkins projects don't get stuck.
I am using aws-device-farm plugin in jenkins for UI test.
Whenever the job is executed, open files are growing more and more.
To confirm this issue, I just run "lsof -p [jenkins pid]" on terminal.
The open files are almost report relative results.
I enlarged the limit to 65535 and when it comes to the limit, I should restart jenkins.
Could you tell me how to avoid it or confirm this issue?
Hi,
Customer Artifacts/Customer Artifacts Log are missing while running through Jenkins plugin. Could you please tell me how to enable through Jenkins plugin,
While running manually through AWS farm console, I am able to see the links:
While running through AWS Device Farm Jenkins Plugin, I am unable to see the links:
Issue on 1.20
ERROR: Build step failed with exception
java.lang.NullPointerException
at org.jenkinsci.plugins.awsdevicefarm.AWSDeviceFarmRecorder.perform(AWSDeviceFarmRecorder.java:592)
at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:81)
at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690)
at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1073)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635)
at hudson.model.Run.execute(Run.java:1823)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
Refer to #78
hi, I have a Device Farm project hooked up to the jenkins plugin with IAM user credentials. When we try to add the AWS Device Farm project to jenkins, the Project comes up however we do not see any of the Device Pools and are not able to type in the field. We do not even see the default 'Top Devices' pool. Any tips on how to get a device pool to show in the post build actions section when configuring AWS Device Farm to Jenkins?
Thanks!
Edit -
Trying to save without completing all the fields fixed the issue
When I have two Device Farm builds running at the same time on the same Jenkins, the second one to start blocks with the following message:
Run Tests on AWS Device Farm is waiting for a checkpoint on <project name and build number>
The second job then continues after the first one ends. I understand that this is a mechanism Jenkins provides to prevent simultaneous access to certain shared resources, but I do not see why this should apply to simultaneous Device Farm runs. I seem to be able to execute multiple Device Farm runs simultaneously via the AWS web console.
This is significant because it prevents me from running iOS and Android tests simultaneously on the same CI server, or from fragmenting my (large) test suite into several pieces and executing them simultaneously.
I've just downloaded the repo from the master
branch and tried to build it using the specified make
command, but unfortunately, it failed with the following error log:
["INFO] Ignoring requireUpperBoundDeps in com.google.guava:guava
[INFO] Ignoring requireUpperBoundDeps in com.google.code.findbugs:jsr305
[WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequireMavenVersion failed with message:
3.1.0 required by frontend-maven-plugin at least.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:13.155s
[INFO] Finished at: Fri Mar 05 11:54:12 UTC 2021
[INFO] Final Memory: 30M/1038M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M1:enforce (display-info) on project aws-device-farm: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
make: *** [compile] Error 1
The compilation process was attempted on the actual Jenkins Server, an Amazon Linux 2 EC2 instance running in us-east-1
.
java -version
openjdk version "1.8.0_272"
OpenJDK Runtime Environment (build 1.8.0_272-b10)
OpenJDK 64-Bit Server VM (build 25.272-b10, mixed mode)
Hi,
I activated "Ignore Device Farm errors in build result." to ignore potential failed tests in DeviceFarm.
However, the option is not working, at the end of a failed test run, I got in Jenkins :
[AWSDeviceFarm] Test run is complete. Build step 'Run Tests on AWS Device Farm' changed build result to FAILURE
Hey,
I noticed that in 1.14 version I don't have the option for Appium 1.6.5. There is a bug in Appium 1.6.3 that blocks me and I cannot run my tests through jenkins.
There is an issue on WebDriverAgent:
facebookarchive/WebDriverAgent#575
This issue is fixed in Appium 1.6.5.
Currently I run my tests from the device farm console since there I can select the 1.6.5 version, but this is just a workaround.
Thanks
Hi there,
I am facing issue with plugin configuration. I want to install other app to the device to run the tests, but the parameter "Install other app" on Specify Device State is not available on the plugin.
Thanks!
With Role chaining, max session duration is 1 hour.
Currently Device Farm plugin asks for 8 hours of assume role session, so IAM roles couldn't be used with device farm when role chaining is involved.
I am using this plugin as part of a multibranch pipeline project in jenkins. Here's my Jenkinsfile stage for it:
stage('Start AWS Device Cloud Build') {
devicefarm(appArtifact: 'apks/*staging-debug.apk', appiumJavaJUnitTest: '', appiumJavaTestNGTest: '', appiumNodeTest: '', appiumPythonTest: 'test_bundle.zip', appiumRubyTest: '', appiumVersionJunit: '1.4.16', appiumVersionPython: '1.7.2', appiumVersionTestng: '1.4.16', calabashFeatures: '', calabashProfile: '', calabashTags: '', deviceLatitude: 47.6204, deviceLocation: false, deviceLongitude: -122.3941, devicePoolName: 'nexus', environmentToRun: 'CustomEnvironment', eventCount: '', eventThrottle: '', extraData: false, extraDataArtifact: '', ifAppPerformanceMonitoring: true, ifBluetooth: true, ifGPS: true, ifNfc: true, ifSkipAppResigning: false, ifVideoRecording: true, ifVpce: false, ifWebApp: false, ifWifi: true, ignoreRunError: false, isRunUnmetered: false, jobTimeoutMinutes: 10, junitArtifact: '', junitFilter: '', password: '', projectName: 'CardioSignal', radioDetails: false, runName: '${BUILD_TAG}', seed: '', storeResults: true, testSpecName: 'Default TestSpec for Android Appium Python', testToRun: 'APPIUM_PYTHON', uiautomationArtifact: '', uiautomatorArtifact: '', uiautomatorFilter: '', username: '', vpceServiceName: '', xctestArtifact: '', xctestFilter: '', xctestUiArtifact: '', xctestUiFilter: '')
}
My tests run successfully and I can see the results saved as artifacts, but the results trends and graphs, as well as the nice colorful results per device are not shown.
The graphs, trends and results by device show up just fine if I use a "normal" Jenkins project, where I configure the plugin from the Jenkins UI rather than from the Jenkinsfile in the repository.
💾 Use Case:
I have an APK file that is generated dynamically and stored on S3. Check this document- developerguide/continuous-integration-jenkins-plugin
I know a part name of the APK file, the remaining name of the file I can get from the environment variable at runtime. I need to pass the dynamic name to this 'application' using '%ENVIRONMENT%', however, there is no such provision in the plug-in.
✳️ Feature Request:
I guess this would be a feature request then if it's not possible through UI as of now
🔮 If there is some way to handle this scenario do share the same
I noticed the global.jelly file for the AWSDeviceFarmRecorder is commented out.
<f:entry title="IAM Role ARN" field="roleArn" description="AWS IAM Role ARN."> <f:textbox /> </f:entry>
Is there a particular reason why? I'm in need of this feature.
Alternatively, the EC2 plugin allows you to specify that the plugin should just run with the role given to the box it's running on. This would be another solution.
Suppose if I like to test webapp amazon.com or walmart.com in the browser using mobile or device with appium and java, I am not able to configure the job without any apk. Shall I need to provide a fake apk to test webapp?
I just only want to upload my test framework and test script without any apk and run the test only in browser. How should I configure the jenkins job and what packaging I need to do?
Hi,
I'm using the aws-device-farm
plugin in Jenkins.
When I choose Run Tests on AWS device Farm
as post build action, there is a Choose test to run
section.
I chose Appium Java JUnit
to match my tests type.
Inside that, there is a field "Tests" which described as :
[Required] Pattern to find Java JUnit tests.
I'm using Gradle. How do I provide the zip file for the "Tests" field ?
Thanks !
Some time ago we were playing with deviceFarm. and had 1 project on our AWS Account.
this project IS seen inside Jenkins.
Today, we've created another Project on AWS side. with a Different name. but for now we don't see it in our list of available projects.
Is this feature working? do we have to wait for something?
I've pressed "Refresh" button many times, but nothing had changed. I see only 1 project and don't see the second one
Hey,
So in the jenkins plugin I don't have any way to select the appium version. I observed that will always run with Appium v .1.4.16 . Any chance to get this done and start Appium with version 1.6.3 ? In the aws console you have this option to select the Appium version
Thanks
Is there a plugin setting to make Device Farm respect the standard Android testrunner @Suppress annotation to exclude tests from being executed? The JUnit 4 annotations work, but we have a large test suite that is mostly JUnit 3.
Does the Jenkins plugin provide a config for this or is @Suppress support missing in Device Farm itself?
If support for that annotation is missing, will it be added or is there a know work-around?
After the results are performed on devices, an email regarding results should be sent to the email address specified.
I am getting this error while uploading the APK file.
[AWSDeviceFarm] Using Project 'New Test Cdvr' [AWSDeviceFarm] Using DevicePool 'Test' [AWSDeviceFarm] Using App '/var/lib/jenkins/workspace/ADF_Test/Scripts/*.apk ' [AWSDeviceFarm] Unknown app artifact to upload: $Scripts/*.apk
I am new to ADF. Please let me know If I am doing anything wrong here.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.