{"id":19455753,"url":"https://github.com/artemnikitin/devicefarm-ci-tool","last_synced_at":"2025-04-25T05:30:56.068Z","repository":{"id":57517210,"uuid":"49784628","full_name":"artemnikitin/devicefarm-ci-tool","owner":"artemnikitin","description":"Tool that helps you to run tests in AWS Device Farm easily","archived":false,"fork":false,"pushed_at":"2023-12-15T05:53:48.000Z","size":4442,"stargazers_count":16,"open_issues_count":12,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-03T16:52:19.747Z","etag":null,"topics":["android","android-test","android-testing","aws","aws-devicefarm","ci","ci-cd","cli","continuous-integration","device-farm","go","golang","ios","ios-test","ios-testing","mobile","mobile-testing"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/artemnikitin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-01-16T18:04:37.000Z","updated_at":"2024-11-07T09:46:21.000Z","dependencies_parsed_at":"2023-12-15T06:52:30.294Z","dependency_job_id":null,"html_url":"https://github.com/artemnikitin/devicefarm-ci-tool","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artemnikitin%2Fdevicefarm-ci-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artemnikitin%2Fdevicefarm-ci-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artemnikitin%2Fdevicefarm-ci-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artemnikitin%2Fdevicefarm-ci-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/artemnikitin","download_url":"https://codeload.github.com/artemnikitin/devicefarm-ci-tool/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250760639,"owners_count":21482843,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-test","android-testing","aws","aws-devicefarm","ci","ci-cd","cli","continuous-integration","device-farm","go","golang","ios","ios-test","ios-testing","mobile","mobile-testing"],"created_at":"2024-11-10T17:14:54.614Z","updated_at":"2025-04-25T05:30:54.610Z","avatar_url":"https://github.com/artemnikitin.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Tool that helps you to run your tests in AWS Device Farm easily\n[![Go Report Card](https://goreportcard.com/badge/github.com/artemnikitin/devicefarm-ci-tool)](https://goreportcard.com/report/github.com/artemnikitin/devicefarm-ci-tool) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fartemnikitin%2Fdevicefarm-ci-tool.svg?type=shield)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fartemnikitin%2Fdevicefarm-ci-tool?ref=badge_shield)\n  [![Build Status](https://travis-ci.org/artemnikitin/devicefarm-ci-tool.svg?branch=master)](https://travis-ci.org/artemnikitin/devicefarm-ci-tool)     \n#### Description\nDid you try to run your app in AWS Device Farm via CLI or API? It was easy, right? Right now you can probably say ARN of your project after wake up in the middle of the night :)\n\nThis tool helps you to run tests in AWS Device Farm. You don't need to know ARN of your project because it's for machines and not for humans.\n\nIt's not a replacement for existing AWS CLI tools. It was created for a very specific purpose, to run tests in CI without a lot of configuration that required for existing solutions. It based on an assumption that all setup is already done. It means, that if you will specify an unexisted project name, then the tool will not create a project for you.\n#### AWS Credentials\n\nSet environment variables     \n```\nexport AWS_ACCESS_KEY_ID=\u003ckey\u003e    \nexport AWS_SECRET_ACCESS_KEY=\u003csecret\u003e\n```     \n\n#### Download\nGet it via    \n``` \ngo get -u github.com/artemnikitin/devicefarm-ci-tool \n``` \n\nOr download binaries for Windows, MacOS or Linux from [latest release](https://github.com/artemnikitin/devicefarm-ci-tool/releases/latest)   \n   \n#### Run\nRequired launch parameters:\n- ```project``` name of a project.\n- ```app``` path to an app.    \nExample:\n```\ndevicefarm-ci-tool -project name -app /path/to/my/app.apk\n```\nBy default, \"BUILTIN_FUZZ\" tests will be run for your app.\n\nOptional parameters:\n- ```run``` name of test run. Overrides value of `runName` parameter from config.     \nExample: `-run myName` \n- ```test``` path to tests. Overrides value of `testPackagePath` parameter from config.     \nExample: `-test /path/to/my/testapp.apk` \n- ```devices``` name of device pool where app will be run. If not specified, then tests will be run in default pool selected by AWS.          \nExample: `-devices my-device-pool`      \n- ```randomDevices``` will randomly select device pool from provided list    \nExample: `-randomDevices aaa,bbb,ccc,xxx,yyy,zzz`    \n- ```useRandomDevicePool``` device pool will be selected randomly from existed pools which are not used in any active test run    \nExample: `-useRandomDevicePool`    \n- ```config``` path to config in JSON format.    \nExample: `-config /path/to/config.json`   \n- ```wait``` wait for an end of test run. Useful for CI. Disabled by default.     \nExample: `-wait`  \n- ```checkEvery``` checks every X seconds for test run completion. Default value is 5 second.    \nExample: `-checkEvery 15`\n- ```ignoreUnavailableDevices``` allows to consider test runs as passed for runs where tests passes on several devices, but some of devices were unavailable. For example, if device pool consists of 3 devices and on 2 devices everything is ok, but third device was unavailable, then using this option will mark test run as successful.     \nExample: `-ignoreUnavailableDevices`\n- ```testType``` allows to specify test type via command line. Test type should be one of test types available on AWS Device Farm, see [ScheduleRunTest](http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_ScheduleRunTest.html). Overrides value of `type` parameter from config.       \nExample: `-testType INSTRUMENTATION`\n\n#### Configuration file\nAll parameters in the configuration file are optional. Configuration file is based on a syntax of [ScheduleRun](http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_ScheduleRun.html) request.        \n\nConfig example:    \n```json\n{\n   \"name\": \"string\",\n   \"projectArn\": \"string\",\n   \"projectName\": \"string\",\n   \"appArn\": \"string\",\n   \"appPath\": \"string\",\n   \"devicePoolArn\": \"string\",\n   \"devicePoolPath\": \"string\",\n   \"testPackagePath\": \"string\",\n   \"extraDataPackagePath\": \"string\",\n   \"auxiliaryAppsPath\": [ \"path/to/app-1\", \"path/to/app-2\" ],\n   \"configuration\": { \n      \"auxiliaryApps\": [ \"string\" ],\n      \"billingMethod\": \"METERED|UNMETERED\",\n      \"customerArtifactPaths\": {\n         \"androidPaths\": [ \"string\", \"string\" ],\n         \"deviceHostPaths\": [ \"string\", \"string\" ],\n         \"iosPaths\": [ \"string\", \"string\" ]\n      },\n      \"extraDataPackageArn\": \"string\",\n      \"locale\": \"string\",\n      \"location\": { \n         \"latitude\": 11.11,\n         \"longitude\": 22.22\n      },\n      \"networkProfileArn\": \"string\",\n      \"radios\": { \n         \"bluetooth\": boolean,\n         \"gps\": boolean,\n         \"nfc\": boolean,\n         \"wifi\": boolean\n      },\n      \"vpceConfigurationArns\": [ \"string\", \"string\" ]\n   },\n   \"executionConfiguration\": { \n      \"accountsCleanup\": boolean,\n      \"appPackagesCleanup\": boolean,\n      \"jobTimeoutMinutes\": 111,\n      \"skipAppResign\": boolean,\n      \"videoCapture\": boolean\n   },\n   \"test\": { \n      \"filter\": \"string\",\n      \"parameters\": { \n         \"string\" : \"string\" \n      },\n      \"testPackageArn\": \"string\",\n      \"type\": \"BUILTIN_FUZZ|BUILTIN_EXPLORER|APPIUM_JAVA_JUNIT|APPIUM_JAVA_TESTNG|APPIUM_PYTHON|APPIUM_WEB_JAVA_JUNIT|APPIUM_WEB_JAVA_TESTNG|APPIUM_WEB_PYTHON|CALABASH|INSTRUMENTATION|UIAUTOMATION|UIAUTOMATOR|XCTEST\"\n   }\n}\n```    \n\n\n## License\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fartemnikitin%2Fdevicefarm-ci-tool.svg?type=large)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fartemnikitin%2Fdevicefarm-ci-tool?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartemnikitin%2Fdevicefarm-ci-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fartemnikitin%2Fdevicefarm-ci-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartemnikitin%2Fdevicefarm-ci-tool/lists"}