-
Notifications
You must be signed in to change notification settings - Fork 12
/
step.yml
187 lines (159 loc) · 7.96 KB
/
step.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
title: Android Build
summary: Builds your Android project with Gradle.
description: |-
The Step builds your Android project on Bitrise with Gradle commands: it installs all dependencies that are listed in the project's `build.gradle` file, and builds and exports either an APK or an AAB.
Once the file is exported, it is available for other Steps in your Workflow.
You can select the module and the variant you want to use for the build.
### Configuring the Step
1. Make sure the **Project Location** input points to the root directory of your Android project.
1. In the **Module** input, set the module that you want to build.
You can find the available modules in Android Studio.
1. In the **Variant** input, set the variant that you want to build.
You can find the available variants in Android Studio.
1. In the **Build type** input, select the file type you want to build.
The options are:
- `apk`
- `aab`
1. In the **Options** input group, you can set more advanced configuration options for the Step:
- In the **App artifact (.apk, .aab) location pattern** input, you can tell the Step where to look for the APK or AAB files in your project to export them.
For the vast majority of Android projects, the default values do NOT need to be changed.
- In the **Additional Gradle Arguments**, you can add additional command line arguments to the Gradle task. Read more about [Gradle's Command Line Interface](https://docs.gradle.org/current/userguide/command_line_interface.html).
- The **Set the level of cache** input allows you to set what will be cached during the build: everything, dependencies only, or nothing.
### Troubleshooting
Be aware that an APK or AAB built by the Step is still unsigned: code signing is performed either in Gradle itself or by other Steps. To be able to deploy your APK or AAB to an online store, you need code signing.
If you want to build a custom module or variant, always check that the value you set in the respective input is correct. A typo means your build will fail; if the module or variant does not exist in Android Studio, the build will fail.
### Useful links
- [Getting started with Android apps](https://devcenter.bitrise.io/getting-started/getting-started-with-android-apps/)
- [Deploying Android apps](https://devcenter.bitrise.io/deploy/android-deploy/deploying-android-apps/)
- [Generating and deploying Android app bundles](https://devcenter.bitrise.io/deploy/android-deploy/generating-and-deploying-android-app-bundles/)
- [Gradle's Command Line Interface](https://docs.gradle.org/current/userguide/command_line_interface.html)
### Related Steps
- [Gradle Runner](https://www.bitrise.io/integrations/steps/gradle-runner)
- [Android Sign](https://www.bitrise.io/integrations/steps/sign-apk)
- [Install missing Android SDK components](https://www.bitrise.io/integrations/steps/install-missing-android-tools)
website: https://github.com/bitrise-steplib/bitrise-step-android-build
source_code_url: https://github.com/bitrise-steplib/bitrise-step-android-build
support_url: https://github.com/bitrise-steplib/bitrise-step-android-build/issues
host_os_tags:
- osx-10.10
- ubuntu-16.04
project_type_tags:
- android
- react-native
type_tags:
- build
is_requires_admin_user: true
is_always_run: false
is_skippable: false
toolkit:
go:
package_name: github.com/bitrise-steplib/bitrise-step-android-build
inputs:
- project_location: $BITRISE_SOURCE_DIR
opts:
title: Project Location
summary: The root directory of your Android project.
description: The root directory of your Android project. For example, where your root build gradle file exist (also gradlew, settings.gradle, and so on)
is_required: true
- module: ""
opts:
title: Module
summary: |
Set the module that you want to build. To see your available modules, please open your project in Android Studio and go in [Project Structure] and see the list on the left.
description: |
Set the module that you want to build. To see your available modules, please open your project in Android Studio and go in [Project Structure] and see the list on the left.
is_required: false
- variant: ""
opts:
title: Variant
summary: Set the build variants you want to create, such as `debug` or `myflavorRelease`. To see your available variants, open your project in Android Studio and go in [Project Structure] -> variants section.
description: |
Set the build variants you want to create. To see your available variants, open your project in Android Studio and go in [Project Structure] -> variants section.
This input also accepts multiple variants, separated by a line break.
is_required: false
- build_type: apk
opts:
title: Build type
summary: |
Set the build type that you want to build.
description: |
Set the build type that you want to build.
is_required: true
value_options:
- apk
- aab
- app_path_pattern: |-
*/build/outputs/apk/*.apk
*/build/outputs/bundle/*.aab
opts:
category: Options
title: App artifact (.apk, .aab) location pattern
summary: Will find the APK or AAB files - depending on the **Build type** input - with the given pattern.
description: |
Will find the APK or AAB files - depending on the **Build type** input - with the given pattern.<br/>
Separate patterns with a newline.
**Note**<br/>
The Step will export only the selected artifact type even if the filter would accept other artifact types as well.
is_required: true
- cache_level: only_deps
opts:
category: Options
title: Set the level of cache
description: |-
`all` - The Step will cache build cache and the dependencies
`only_deps` - The Step will cache dependencies only
`none` - The Step will not cache anything
is_required: true
value_options:
- all
- only_deps
- none
- arguments:
opts:
category: Options
title: Additional Gradle Arguments
summary: Extra arguments passed to the gradle task
description: Extra arguments passed to the gradle task
is_required: false
outputs:
- BITRISE_APK_PATH:
opts:
title: Path of the generated APK
summary: Path of the generated (and copied) APK - after filtering.
description: |-
This output will include the path of the generated APK
after filtering based on the filter inputs.
If the build generates more than one APK which fulfills the
filter inputs, this output will contain the last one's path.
- BITRISE_APK_PATH_LIST:
opts:
title: List of the generated APK paths
summary: List of the generated (and copied) APK paths - after filtering.
description: |-
This output will include the paths of the generated APKs
after filtering based on the filter inputs.
The paths are separated with `|` character, for example, `app-armeabi-v7a-debug.apk|app-mips-debug.apk|app-x86-debug.apk`
- BITRISE_AAB_PATH:
opts:
title: Path of the generated AAB
summary: Path of the generated (and copied) AAB - after filtering.
description: |-
This output will include the path of the generated AAB
after filtering based on the filter inputs.
If the build generates more than one AAB which fulfills the
filter inputs, this output will contain the last one's path.
- BITRISE_AAB_PATH_LIST:
opts:
title: List of the generated AAB paths
summary: List of the generated (and copied) AAB paths - after filtering.
description: |-
This output will include the paths of the generated AABs
after filtering based on the filter inputs.
The paths are separated with `|` character, for example, `app--debug.aab|app-mips-debug.aab`
- BITRISE_MAPPING_PATH:
opts:
title: Path of the generated mapping.txt
summary: Path of the generated (and copied) mapping.txt.
description: |-
This output will include the path of the generated mapping.txt.
If more than one mapping.txt exist in the project, this output will contain the last one's path.