@radhya/mach 1.8.5 → 1.8.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -9
- package/dist/index.js +148 -112
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -143,7 +143,7 @@ definitions:
|
|
|
143
143
|
- mach submit --latest --platform android --profile $MACH_SUBMIT_PROFILE --track ${MACH_ANDROID_TRACK:-internal} --release-status ${MACH_ANDROID_RELEASE_STATUS:-completed} ${MACH_ANDROID_ROLLOUT:+--rollout $MACH_ANDROID_ROLLOUT} ${MACH_ANDROID_CHANGES_NOT_SENT_FOR_REVIEW:+--changes-not-sent-for-review}
|
|
144
144
|
```
|
|
145
145
|
|
|
146
|
-
Android submission uses the Google Play Developer API directly, so Bitbucket/Linux runners do not need Ruby or Fastlane for `.aab` uploads. iOS submission
|
|
146
|
+
Android submission uses the Google Play Developer API directly, so Bitbucket/Linux runners do not need Ruby or Fastlane for `.aab` uploads. Mach still writes Android submission status to the submissions table, which gives the Dashboard the same history view without starting the macOS runner. iOS submission is queued through Mach and executed on the configured macOS GitLab runner, so the public command is the same from macOS, Linux, Windows, or CI.
|
|
147
147
|
|
|
148
148
|
Required Bitbucket variables:
|
|
149
149
|
|
|
@@ -161,16 +161,44 @@ Required Bitbucket variables:
|
|
|
161
161
|
|
|
162
162
|
Before enabling CI, make sure `mach.config.json` is committed, credentials are uploaded in the Dashboard, and Android service credentials are attached to the exact package id.
|
|
163
163
|
|
|
164
|
-
For iOS submit,
|
|
164
|
+
For iOS submit, the user-facing command is universal:
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
mach submit --latest --platform ios --profile $MACH_SUBMIT_PROFILE
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
The macOS runner executes the internal runner command after the Mach API triggers GitLab:
|
|
165
171
|
|
|
166
172
|
```yaml
|
|
167
|
-
|
|
173
|
+
skye_m4_ios_submit:
|
|
174
|
+
stage: submit
|
|
168
175
|
tags:
|
|
169
|
-
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
-
|
|
173
|
-
|
|
176
|
+
- m4-mini
|
|
177
|
+
- ios-build
|
|
178
|
+
rules:
|
|
179
|
+
- if: '$MACH_ACTION == "submit_ios"'
|
|
180
|
+
when: on_success
|
|
181
|
+
- when: never
|
|
182
|
+
script: |
|
|
183
|
+
source ~/.zshrc || source ~/.bashrc || true
|
|
184
|
+
export AWS_DEFAULT_REGION="ap-south-1"
|
|
185
|
+
|
|
186
|
+
export MACH_TOKEN=$(aws ssm get-parameter \
|
|
187
|
+
--name "/skye/submissions/$SUBMIT_ID/token" \
|
|
188
|
+
--with-decryption \
|
|
189
|
+
--query 'Parameter.Value' \
|
|
190
|
+
--region ap-south-1 \
|
|
191
|
+
--output text)
|
|
192
|
+
|
|
193
|
+
aws ssm delete-parameter --name "/skye/submissions/$SUBMIT_ID/token" --region ap-south-1 || true
|
|
194
|
+
|
|
195
|
+
if [ -n "${BUILD_ID:-}" ]; then
|
|
196
|
+
mach submit --local --submit-id "$SUBMIT_ID" --project-id "$PROJECT_ID" --platform ios --profile "${MACH_SUBMIT_PROFILE:-production}" --build-id "$BUILD_ID"
|
|
197
|
+
else
|
|
198
|
+
mach submit --local --submit-id "$SUBMIT_ID" --project-id "$PROJECT_ID" --platform ios --profile "${MACH_SUBMIT_PROFILE:-production}" --latest
|
|
199
|
+
fi
|
|
200
|
+
after_script:
|
|
201
|
+
- aws ssm delete-parameter --name "/skye/submissions/$SUBMIT_ID/token" --region ap-south-1 2>/dev/null || true
|
|
174
202
|
```
|
|
175
203
|
|
|
176
204
|
## Credential Management
|
|
@@ -378,7 +406,7 @@ mach credentials:service --platform android --package-name com.example.app --fil
|
|
|
378
406
|
|
|
379
407
|
Android submit reads `submit.<profile>.android.track`, `submit.<profile>.android.releaseStatus`, and optional `submit.<profile>.android.rollout`, falling back to `submit.production.android.*`, then `internal` / `completed`. Valid Google Play release status values are `completed`, `draft`, `halted`, and `inProgress`. Use `rollout` only with `inProgress` or `halted`; it must be greater than `0` and less than `1`.
|
|
380
408
|
|
|
381
|
-
Android submit does not require Fastlane. Mach uploads the `.aab`, assigns the returned `versionCode` to the requested track,
|
|
409
|
+
Android submit does not require Fastlane. Mach uploads the `.aab`, assigns the returned `versionCode` to the requested track, commits the edit through the Google Play Developer API, and records the submission in the Dashboard. Transient Google Play failures are retried up to four times before the command fails. iOS submit queues a managed submission through Mach and runs Fastlane `pilot` on the macOS GitLab runner. Runner jobs call `mach submit --local ...`; users and CI call the normal `mach submit --platform ios ...` command. If `--ssh-host` or `submit.<profile>.ios.sshHost` is set, Mach can also upload the `.ipa` and App Store Connect API key to that macOS runner, run `pilot` remotely, then remove the remote temp files.
|
|
382
410
|
|
|
383
411
|
If `--profile` is provided with `--latest`, Mach chooses the latest successful build from that profile only. This avoids accidentally submitting a staging or preprod build to production.
|
|
384
412
|
|