@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.
Files changed (3) hide show
  1. package/README.md +37 -9
  2. package/dist/index.js +148 -112
  3. 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 still uses Fastlane `pilot`; run it on the macOS GitLab runner, the same runner class used for iOS builds.
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, use a macOS GitLab runner:
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
- submit_ios:
173
+ skye_m4_ios_submit:
174
+ stage: submit
168
175
  tags:
169
- - macos
170
- script:
171
- - npm ci
172
- - npm install -g @radhya/mach@latest
173
- - mach submit --latest --platform ios --profile $MACH_SUBMIT_PROFILE
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, and commits the edit through the Google Play Developer API. Transient Google Play failures are retried up to four times before the command fails. iOS submit uses Fastlane `pilot`; run it from a macOS GitLab runner. 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.
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