-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathstep.yml
155 lines (143 loc) · 8.25 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
title: fastlane
summary: |-
Runs your fastlane lane on [bitrise.io](https://www.bitrise.io).
description: |-
fastlane is an open-source app automation tool for iOS, Android and for most cross-platform frameworks, for example, React Native, Xamarin and Flutter.
**fastlane** Step helps you integrate your lane to your Bitrise Workflow and runs your lane based on the fastlane actions with minimal configuration.
If your Apple Developer Portal account is [connected to Bitrise](https://devcenter.bitrise.io/getting-started/connecting-to-services/configuring-bitrise-steps-that-require-apple-developer-account-data/), the `FASTLANE_SESSION` Environment Variable will pass on the session data to fastlane.
### Configuring the Step
Before you start configuring the Step, make sure you've [connected to Apple services either by API key, Apple ID or through Fastlane Step's input fields](https://devcenter.bitrise.io/getting-started/connecting-to-services/bitrise-steps-and-their-authentication-methods/#fastlane-step).
1. Add the **fastlane** Step to your Workflow after the **Git Clone Repository** Step or any other dependency Step.
1. Based on your project's fastlane setup, you can add your project's default lane or a custom lane in the **fastlane lane** input.
2. If your fastlane directory is not available in your repository's root, then you can add the parent directory of fastlane directory in the **Working directory** input.
3. If your project doesn't contain a fastlane gem in your project's Gemfile, you can use the **Should update fastlane gem before run** input.
Set this input to `true` so that the Step can install the latest fastlane version to your project.
If a gem lockfile (Gemfile.lock or gems.locked) includes the fastlane gem in the working directory, that specific fastlane version will be installed.
4. Select `yes` in the **Enable verbose logging** input if you wish to run your build in debug mode and print out error additional debug logs.
5. Select `yes` in the **Enable collecting files to be included in the build cache** to cache pods, Carthage and Android dependencies.
### Troubleshooting
If you run your lane on Bitrise and your build fails on the **fastlane** Step, the logs won't reveal too much about the error since it's most likely related to the fastlane file's configuration.
We recommend you swap your fastlane actions for Bitrise Steps which will bring out the problem.
### Useful links
- [About fastlane](https://docs.fastlane.tools)
- [Connecting your Apple Developer Account to Bitrise](https://devcenter.bitrise.io/getting-started/connecting-to-services/configuring-bitrise-steps-that-require-apple-developer-account-data/)
- [Running fastlane on Bitrise](https://devcenter.bitrise.io/tutorials/fastlane/fastlane-index/)
### Related Steps
- [Deploy to iTunes Connect/Deliver](https://www.bitrise.io/integrations/steps/deploy-to-itunesconnect-deliver)
- [iOS Auto Provision](https://www.bitrise.io/integrations/steps/ios-auto-provision)
- [Fastlane Match](https://www.bitrise.io/integrations/steps/fastlane-match)
website: https://github.com/bitrise-io/steps-fastlane
source_code_url: https://github.com/bitrise-io/steps-fastlane
support_url: https://github.com/bitrise-io/steps-fastlane/issues
type_tags:
- utility
toolkit:
go:
package_name: github.com/bitrise-io/steps-fastlane
inputs:
- lane:
opts:
title: fastlane lane
summary: The lane to execute.
description: |
fastlane lane to run
$ fastlane [lane]
is_required: true
- work_dir: $BITRISE_SOURCE_DIR
opts:
title: Working directory
summary: The working directory to execute the fastlane command in.
description: |-
Use this option if the fastlane directory is not in your repository's root.
Working directory should be the parent directory of your Fastfile's directory.
For example:
* If the Fastfile path is `./here/is/my/fastlane/Fastfile`
* Then the Fastfile's directory is `./here/is/my/fastlane`
* So the Working Directory should be `./here/is/my`
- connection: automatic
opts:
title: Bitrise Apple Developer Connection
summary: The Apple Service authentication method the Step uses. By default, any enabled Bitrise Apple Developer connection is used and other authentication-related Step inputs are ignored.
description: |-
The input determines the method used for Apple Service authentication. By default, any enabled Bitrise Apple Developer connection is used and other authentication-related Step inputs are ignored.
There are two types of Apple Developer connection you can enable on Bitrise: one is based on an API key of the App Store Connect API, the other is the session-based authentication with an Apple ID. You can choose which type of Bitrise Apple Developer connection to use or you can tell the Step to only use the Step inputs for authentication:
- `automatic`: Use any enabled Apple Developer connection, either based on Apple ID authentication or API key authentication. Step inputs are only used as a fallback. API key authentication has priority over Apple ID authentication in both cases.
- `api_key`: Use the Apple Developer connection based on API key authentication. Authentication-related Step inputs are ignored.
- `apple_id`: Use the Apple Developer connection based on Apple ID authentication and the **Application-specific password** Step input. Other authentication-related Step inputs are ignored.
- `off`: Do not use any already configured Apple Developer Connection. Only authentication-related Step inputs are considered.
is_required: true
value_options:
- automatic
- api_key
- apple_id
- "off"
- api_key_path: ""
opts:
title: "API Key: URL"
summary: Path to local or remote file.
description: |-
Specify the path in an URL format where your API key is stored.
For example: `https://URL/TO/AuthKey_[KEY_ID].p8` or `file:///PATH/TO/AuthKey_[KEY_ID].p8`.
**NOTE:** The Step will only recognize the API key if the filename includes the `KEY_ID` value as shown on the examples above.
You can upload your key on the **Generic File Storage** tab in the Workflow Editor and set the Environment Variable for the file here.
For example: `$BITRISEIO_MYKEY_URL`
- api_issuer: ""
opts:
title: "API Key: Issuer ID"
summary: Your issuer ID from the API Keys page in App Store Connect.
description: |-
Issuer ID. Required if **API Key: URL** (`api_key_path`) is specified.
- apple_id: ""
opts:
title: "Apple ID: Email"
summary: Email for Apple ID login.
description: Email for Apple ID login.
is_sensitive: true
- password: ""
opts:
title: "Apple ID: Password"
summary: Password for the specified Apple ID.
description: Password for the specified Apple ID.
is_sensitive: true
- app_password: ""
opts:
title: "Apple ID: Application-specific password"
summary: Optional if using two-factor enabled Apple ID.
description: |-
Use this input if TFA is enabled on the Apple ID but no app-specific password has been added to the used Bitrise Apple ID connection.
**NOTE:** Application-specific passwords can be created on the
[AppleID Website](https://appleid.apple.com). It can be used to
bypass two-factor authentication.
is_sensitive: true
- update_fastlane: "true"
opts:
title: Should update fastlane gem before run?
summary: Will cause the fastlane gem to be updated before running the lane.
description: |-
Should update fastlane gem before run?
*This option will be skipped if you have a `Gemfile` in the `work_dir` directory.*
value_options:
- "true"
- "false"
- verbose_log: "no"
opts:
title: Enable verbose logging?
summary: Enable/disable verbose logging.
description: Enable/disable verbose logging.
is_required: true
value_options:
- "yes"
- "no"
- enable_cache: "yes"
opts:
title: Enable collecting files to be included in the build cache
summary: Enable/disable collecting files to be included in the build cache.
description: |-
If enabled the step will add the following cache items (if they exist):
- Pods -> Podfile.lock
- Carthage -> Cartfile.resolved
- Android dependencies
value_options:
- "yes"
- "no"
is_required: true