{"id":50300239,"url":"https://github.com/emulator-wtf/actions","last_synced_at":"2026-05-28T12:30:37.016Z","repository":{"id":357881715,"uuid":"1095778409","full_name":"emulator-wtf/actions","owner":"emulator-wtf","description":"emulator.wtf GitHub actions for running Android tests and using Android emulators.","archived":false,"fork":false,"pushed_at":"2026-05-21T17:37:47.000Z","size":1268,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-22T02:32:46.916Z","etag":null,"topics":["android","emulator-farm","testing"],"latest_commit_sha":null,"homepage":"https://emulator.wtf","language":"TypeScript","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/emulator-wtf.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-13T14:05:18.000Z","updated_at":"2026-05-21T17:37:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/emulator-wtf/actions","commit_stats":null,"previous_names":["emulator-wtf/actions"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/emulator-wtf/actions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emulator-wtf%2Factions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emulator-wtf%2Factions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emulator-wtf%2Factions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emulator-wtf%2Factions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emulator-wtf","download_url":"https://codeload.github.com/emulator-wtf/actions/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emulator-wtf%2Factions/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33609237,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","emulator-farm","testing"],"created_at":"2026-05-28T12:30:36.232Z","updated_at":"2026-05-28T12:30:37.009Z","avatar_url":"https://github.com/emulator-wtf.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# emulator.wtf GitHub Actions\n\n[Emulator.wtf](https://emulator.wtf) is an Android cloud emulator laser-focused\non performance to deliver quick feedback to your PRs.\n\nUse these GitHub Actions to run your Android instrumentation tests or make use\nof our emulators directly via an ADB connection.\n\n## `emulator-wtf/actions/run-tests`\n\nRun your instrumentation tests with emulator.wtf, optionally with multiple\nshards. Build-system agnostic, only APKs are needed.\n\n### Quick usage\n\nA really basic example building an app apk, test apk, running tests and then\nfinally collecting the results with the `mikepenz/action-junit-report@v6`\naction:\n\n```yaml\nname: Run tests\non: push\njobs:\n  run-tests:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n      - uses: actions/setup-java@v5\n        with:\n          distribution: 'zulu'\n          java-version: '25'\n      - name: Build app\n        run: ./gradlew assembleDebug assembleAndroidTest\n      - name: Run tests\n        uses: emulator-wtf/actions/run-tests@v1.0.0\n        with:\n          api-token: ${{ secrets.EW_API_TOKEN }}\n          app: app/build/outputs/apk/debug/app-debug.apk\n          test: app/build/outputs/apk/androidTest/app-debug-androidTest.apk\n          outputs-dir: build/test-results\n      - name: Publish test report\n        uses: mikepenz/action-junit-report@v6\n        if: always() # always run even if the tests fail\n        with:\n          report_paths: 'build/test-results/**/*.xml'\n```\n\nSee the full list of inputs and additional examples in\n[run-tests/README.md](run-tests/README.md).\n\n## `emulator-wtf/actions/use-emulator`\n\n### Quick usage\n\nAn example of using `use-emulator` to start three emulators in parallel:\n\n```yaml\nname: Test use-emulator\non:\n  workflow_dispatch:\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n      - uses: emulator-wtf/actions/use-emulator@v1.0.0\n        id: ew-cli\n        with:\n          devices: |\n            model=Pixel2,version=33,gpu=auto\n            model=Pixel2,version=33,gpu=auto\n            model=Pixel2,version=33,gpu=auto\n      - name: Make use of emulators\n        env:\n          ADB_ATTACHED: ${{ steps.ew-cli.outputs.adb_attached }}\n          ADB_ATTACHED_JSON: ${{ steps.ew-cli.outputs.adb_attached_json }}\n          ADB_PORT_FORWARDED: ${{ steps.ew-cli.outputs.adb_port_forwarded }}\n          ADB_PORT_FORWARDED_JSON: ${{ steps.ew-cli.outputs.adb_port_forwarded_json }}\n        run: |\n          echo \"Attached ${ADB_ATTACHED}\"\n          echo \"Attached json ${ADB_ATTACHED_JSON}\"\n          echo \"Forwarded ${ADB_PORT_FORWARDED}\"\n          echo \"Forwarded json ${ADB_PORT_FORWARDED_JSON}\"\n```\n\nSee the full list of inputs and additional examples in\n[use-emulator/README.md](use-emulator/README.md).\n\n## `emulator-wtf/actions/configure-credentials`\n\nWith this action you can use emulator.wtf in your GitHub Actions workflows\nwithout having to explicitly specify an API token. The action relies on\n[GitHub OIDC tokens](https://docs.github.com/en/actions/concepts/security/openid-connect)\nto authenticate with emulator.wtf and obtain temporary credentials.\n\n### Quick usage\n\n1. Create a new OIDC configuration in the\n   [emulator.wtf web app](https://emulator.wtf).\n2. Add `id-token: write` permission to your workflow YAML. You'll most likely\n   want the `contents: read` permission too to check out your repository.\n\n   ```yaml\n   permissions:\n     contents: read\n     id-token: write\n   ```\n\n3. Invoke the `emulator-wtf/actions/configure-credentials` action with the OIDC\n   configuration ID added in step 1.\n\n   ```yaml\n   - uses: emulator-wtf/actions/configure-credentials@v1.0.0\n     with:\n       oidc-configuration-id: **OIDC-CONFIGURATION-ID-GOES-HERE**\n   ```\n\n4. Invoke `ew-cli`, emulator.wtf Gradle Plugin or any of the `emulator-wtf/*`\n   GitHub actions without having to pass in an API token.\n\nSee the full list of inputs and additional examples in\n[configure-credentials/README.md](configure-credentials/README.md).\n\nRead more about [OIDC in emulator.wtf](https://docs.emulator.wtf/oidc).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femulator-wtf%2Factions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femulator-wtf%2Factions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femulator-wtf%2Factions/lists"}