{"id":20187529,"url":"https://github.com/bitrise-steplib/steps-gradle-runner","last_synced_at":"2026-01-29T12:03:37.483Z","repository":{"id":41183274,"uuid":"45178692","full_name":"bitrise-steplib/steps-gradle-runner","owner":"bitrise-steplib","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-07T09:49:28.000Z","size":804,"stargazers_count":10,"open_issues_count":4,"forks_count":28,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-11-07T11:26:30.743Z","etag":null,"topics":["bitrise","bitrise-step","ci","hacktoberfest","production-code"],"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/bitrise-steplib.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-10-29T11:23:28.000Z","updated_at":"2025-08-28T11:48:07.000Z","dependencies_parsed_at":"2024-11-14T03:26:21.306Z","dependency_job_id":"2781d35d-fc9b-4d63-91cb-c9b91e75ac02","html_url":"https://github.com/bitrise-steplib/steps-gradle-runner","commit_stats":null,"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"purl":"pkg:github/bitrise-steplib/steps-gradle-runner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitrise-steplib%2Fsteps-gradle-runner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitrise-steplib%2Fsteps-gradle-runner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitrise-steplib%2Fsteps-gradle-runner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitrise-steplib%2Fsteps-gradle-runner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitrise-steplib","download_url":"https://codeload.github.com/bitrise-steplib/steps-gradle-runner/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitrise-steplib%2Fsteps-gradle-runner/sbom","scorecard":{"id":240787,"data":{"date":"2025-08-11","repo":{"name":"github.com/bitrise-steplib/steps-gradle-runner","commit":"25dbfa549983e7a016a67fea3c246885d98a697e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.7,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/stale-issues-workflow.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":9,"reason":"Found 27/28 approved changesets -- score normalized to 9","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/stale-issues-workflow.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/bitrise-steplib/steps-gradle-runner/stale-issues-workflow.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/stale-issues-workflow.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/bitrise-steplib/steps-gradle-runner/stale-issues-workflow.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/stale-issues-workflow.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/bitrise-steplib/steps-gradle-runner/stale-issues-workflow.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T06:39:00.845Z","repository_id":41183274,"created_at":"2025-08-17T06:39:00.845Z","updated_at":"2025-08-17T06:39:00.845Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28877047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T10:31:27.438Z","status":"ssl_error","status_checked_at":"2026-01-29T10:31:01.017Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bitrise","bitrise-step","ci","hacktoberfest","production-code"],"created_at":"2024-11-14T03:24:30.038Z","updated_at":"2026-01-29T12:03:37.477Z","avatar_url":"https://github.com/bitrise-steplib.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gradle Runner\n\n[![Step changelog](https://shields.io/github/v/release/bitrise-io/steps-gradle-runner?include_prereleases\u0026label=changelog\u0026color=blueviolet)](https://github.com/bitrise-io/steps-gradle-runner/releases)\n\nRuns a specified Gradle task.\n\n\u003cdetails\u003e\n\u003csummary\u003eDescription\u003c/summary\u003e\n\nThe Step runs the specified Gradle task and copies the generated APK and AAB files into\nthe Bitrise Deploy Directory (`$BITRISE_DEPLOY_DIR`). It is capable of doing everything that you can do with Gradle on your own machine.\n\n### Configuring the Step\n\nTo use this Step, you need at least two things:\n\n* [Gradle Wrapper](https://docs.gradle.org/current/userguide/gradle_wrapper.html).\n* A Gradle task that is correctly configured in your Gradle project.\n\nThe Step can run the specified task with the Gradle Wrapper. For the basic configuration:\n\n1. Open the **Config** input group.\n1. In the **Gradle task to run** input, add the task you want to run. Without an existing, valid task, the Step will fail.\n1. Set the `gradlew` file path: this is the path where the Gradle Wrapper lives in your project. The path should be relative to the project's root.\n\nTo configure exporting an APK or AAB file generated by the Step:\n\n1. Open the **Export config** input group.\n1. Filter the files you want the Step to export. You can filter:\n   * APK and AAB files.\n   * Test APK files.\n   * Mapping files.\n   Both exclude and include filters can be used. Each filter option can take multiple patterns, with each pattern on its own line in the input field.\n\n### Troubleshooting\n\nIf the Step keeps failing because it can't download the dependencies, check the `repositories` section in your `build.gradle` file.\nIt's possible that one or more of the services listed there are down so we Bitrise can't connect to them to download the dependencies you need.\n\nIf you use a `build.gradle` file and get the error `Issue with input: GradleFile does not exist`, check the **Optional path to the gradle build file to use** input.\nRemember, the path must be relative to the root of the repository.\n\n### Useful links\n\n* [Gradle Wrapper](https://docs.gradle.org/current/userguide/gradle_wrapper.html)\n* [Caching Gradle](https://devcenter.bitrise.io/builds/caching/caching-gradle/)\n\n### Related Steps\n\n* [Gradle Unit Test](https://www.bitrise.io/integrations/steps/gradle-unit-test)\n* [Android Build](https://www.bitrise.io/integrations/steps/android-build)\n* Gradle cache [save](https://github.com/bitrise-steplib/bitrise-step-save-gradle-cache) and [restore](https://github.com/bitrise-steplib/bitrise-step-restore-gradle-cache) Steps\n\u003c/details\u003e\n\n## 🧩 Get started\n\nAdd this step directly to your workflow in the [Bitrise Workflow Editor](https://docs.bitrise.io/en/bitrise-ci/workflows-and-pipelines/steps/adding-steps-to-a-workflow.html).\n\nYou can also run this step directly with [Bitrise CLI](https://github.com/bitrise-io/bitrise).\n\n### Examples\n\nThis configuration builds all variant's `aab`:\n\n```yaml\n- gradle-runner@2:\n    inputs:\n    - gradlew_path: \"./gradlew\"\n    - gradle_task: bundleRelease\n```\nYou can also set up file path filters to avoid exporting unwanted archives or mapping files:\n\n```yaml\n- gradle-runner@2:\n    inputs:\n    - gradlew_path: \"./gradlew\"\n    - gradle_task: bundleRelease\n    - app_file_include_filter: \"*release.aab\"\n    - app_file_exclude_filter: \"*/temporary/*\"\n    - test_apk_file_include_filter: \"*Test*.apk\"\n    - test_apk_file_exclude_filter: \"*/immediate/*\"\n    - mapping_file_include_filter: \"*/mapping.txt\"\n    - mapping_file_exclude_filter: \"*/tmp/*\"\n```\n\n\n## ⚙️ Configuration\n\n\u003cdetails\u003e\n\u003csummary\u003eInputs\u003c/summary\u003e\n\n| Key | Description | Flags | Default |\n| --- | --- | --- | --- |\n| `build_root_directory` | The root directory of the Gradle project where the gradlew file and build.gradle are located. This can be either a relative path (relative to the working directory) or an absolute path. For example, if your Android project is in a subdirectory called `android`, set this to `./android`.  |  | `.` |\n| `gradle_task` | Gradle task to run. You can call `gradle tasks` or `gradle tasks --all` in your Gradle project directory to get the list of available tasks.  | required | `assemble` |\n| `gradlew_path` | Using a Gradle Wrapper (gradlew) is required, as the wrapper ensures that the right Gradle version is installed and used for the build. You can find more information about the Gradle Wrapper (gradlew), and about how you can generate one in the official guide at: [https://docs.gradle.org/current/userguide/gradle_wrapper.html](https://docs.gradle.org/current/userguide/gradle_wrapper.html). The path should be relative to the build_root_directory input. For example, `./gradlew`, or if it is in a sub directory, `./sub/dir/gradlew`.  | required | `./gradlew` |\n| `app_file_include_filter` | The Step will copy the generated APK and AAB files that match this filter into the Bitrise deploy directory. Seperate patterns with a newline. Example: Copy every APK and AAB file: ``` *.apk *.aab ``` Copy every APK file with a filename that contains `release`, like (`./app/build/outputs/apk/app-release-unsigned.apk`): ``` *release*.apk ```  |  | `*.apk *.aab ` |\n| `app_file_exclude_filter` | One filter per line. The Step will NOT copy the generated APK and AAB files that match these filters into the Bitrise deploy directory. You can use this filter to avoid moving unaligned and/or unsigned APK and AAB files. If you specify an empty filter, every APK and AAB file (selected by `APK and AAB file include filter`) will be copied. Seperate patterns with a newline. Examples: Do not copy APK files with a filename that contains `unaligned`: ``` *unaligned*.apk ``` Do not copy APK files with a filename that contains `unaligned` and/or `Test`: ``` *unaligned*.apk *Test*.apk ```  |  | `*unaligned.apk *Test*.apk */intermediates/* ` |\n| `test_apk_file_include_filter` | The Step will copy the generated apk files that match this filter into the Bitrise deploy directory.  Example: Copy every APK if its filename contains Test, like (./app/build/outputs/apk/app-debug-androidTest-unaligned.apk):  ``` *Test*.apk ```  |  | `*Test*.apk` |\n| `test_apk_file_exclude_filter` | One filter per line. The Step will NOT copy the generated apk files that match this filters into the Bitrise deploy directory. You can use this filter to avoid moving unalinged and/or unsigned apk files. If you specify an empty filter, every APK file (selected by `apk_file_include_filter`) will be copied. Example: Do not copy the test APK file if its filename contains `unaligned`: ``` *unaligned*.apk ```  |  |  |\n| `mapping_file_include_filter` | The Step will copy the generated mapping files that match this filter into the Bitrise deploy directory. If you specify an empty filter, no mapping files will be copied. Example:  Copy every mapping.txt file: ``` *mapping.txt ```  |  | `*/mapping.txt` |\n| `mapping_file_exclude_filter` | The Step will **not** copy the generated mapping files that match this filter into the Bitrise deploy directory. You can use this input to avoid moving a beta mapping file, for example. If you specify an empty filter, every mapping file (selected by `mapping_file_include_filter`) will be copied. Example:  Do not copy any mapping.txt file that is in a `beta` directoy: ``` */beta/mapping.txt ```  |  | `*/tmp/*` |\n| `gradle_options` | Flags added to the end of the Gradle call. You can use multiple options, separated by a space. Example: `--stacktrace --debug` If `--debug` or `-d` options are set then only the last 20 lines of the raw gradle output will be visible in the build log. The full raw output will be exported to the `$BITRISE_GRADLE_RAW_RESULT_TEXT_PATH` variable and will be added as a build artifact. |  | `--stacktrace` |\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eOutputs\u003c/summary\u003e\n\n| Environment Variable | Description |\n| --- | --- |\n| `BITRISE_APK_PATH` | This output will include the path of the generated APK file, after filtering based on the filter inputs. If the build generates more than one APK file which fulfills the filter inputs this output will contain the last one's path. |\n| `BITRISE_AAB_PATH` | This output will include the path of the generated AAB file, after filtering based on the filter inputs. If the build generates more than one AAB file which fulfills the filter inputs this output will contain the last one's path. |\n| `BITRISE_TEST_APK_PATH` | This output will include the path of the generated test APK file, after filtering based on the filter inputs. If the build generates more than one APK file which fulfills the filter inputs this output will contain the last one's path. |\n| `BITRISE_APK_PATH_LIST` | This output will include the paths of the generated APK files, after filtering based on the filter inputs. The paths are separated with `\\|` character, eg: `app-armeabi-v7a-debug.apk\\|app-mips-debug.apk\\|app-x86-debug.apk` |\n| `BITRISE_AAB_PATH_LIST` | This output will include the paths of the generated AAB files, after filtering based on the filter inputs. The paths are separated with `\\|` character, eg: `app.aab\\|app2.aab` |\n| `BITRISE_MAPPING_PATH` | This output will include the path of the generated mapping.txt. If more than one mapping.txt exist in project this output will contain the last one's path. |\n\u003c/details\u003e\n\n## 🙋 Contributing\n\nWe welcome [pull requests](https://github.com/bitrise-io/steps-gradle-runner/pulls) and [issues](https://github.com/bitrise-io/steps-gradle-runner/issues) against this repository.\n\nFor pull requests, work on your changes in a forked repository and use the Bitrise CLI to [run step tests locally](https://docs.bitrise.io/en/bitrise-ci/bitrise-cli/running-your-first-local-build-with-the-cli.html).\n\nLearn more about developing steps:\n\n- [Create your own step](https://docs.bitrise.io/en/bitrise-ci/workflows-and-pipelines/developing-your-own-bitrise-step/developing-a-new-step.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitrise-steplib%2Fsteps-gradle-runner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitrise-steplib%2Fsteps-gradle-runner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitrise-steplib%2Fsteps-gradle-runner/lists"}