feat(workout): surface store submission blockers
Record Google Play and App Store Connect submission targets as external mobile blockers, and make verification require those blockers to be acknowledged in the release kit. req: examples/006
This commit is contained in:
+13
-1
@@ -333,6 +333,9 @@ fn mobile_external_blockers(config: &WorkoutMobileConfig) -> Vec<String> {
|
||||
if env::var_os("HEMX_WORKOUT_ANDROID_KEYSTORE").is_none() {
|
||||
blockers.push("Android signing key not configured: set HEMX_WORKOUT_ANDROID_KEYSTORE for store-ready signing".into());
|
||||
}
|
||||
if env::var_os("HEMX_WORKOUT_GOOGLE_PLAY_TRACK").is_none() {
|
||||
blockers.push("Google Play submission target not configured: set HEMX_WORKOUT_GOOGLE_PLAY_TRACK after choosing the Play Console track outside this repo".into());
|
||||
}
|
||||
if !has_command("xcodebuild") {
|
||||
blockers.push(
|
||||
"Xcode command line tools not found: iOS archive/export requires xcodebuild on macOS"
|
||||
@@ -342,6 +345,9 @@ fn mobile_external_blockers(config: &WorkoutMobileConfig) -> Vec<String> {
|
||||
if env::var_os("HEMX_WORKOUT_IOS_TEAM_ID").is_none() {
|
||||
blockers.push("iOS signing team not configured: set HEMX_WORKOUT_IOS_TEAM_ID for App Store/TestFlight export".into());
|
||||
}
|
||||
if env::var_os("HEMX_WORKOUT_APP_STORE_CONNECT_TEAM").is_none() {
|
||||
blockers.push("App Store Connect submission team not configured: set HEMX_WORKOUT_APP_STORE_CONNECT_TEAM after choosing the Apple account outside this repo".into());
|
||||
}
|
||||
blockers
|
||||
}
|
||||
|
||||
@@ -573,7 +579,7 @@ fn workout_mobile_blockers_md(blockers: &[String]) -> String {
|
||||
|
||||
fn android_release_readme(config: &WorkoutMobileConfig) -> String {
|
||||
format!(
|
||||
"# Workout Android release\n\nUse `twa-release.json` as the Android shell authority for `{}`. Build the hemx server with the same release and serve `{}/` over HTTPS. Android SDK, Java, and signing credentials are external inputs; this repository does not own them.\n",
|
||||
"# Workout Android release\n\nUse `twa-release.json` as the Android shell authority for `{}`. Build the hemx server with the same release and serve `{}/` over HTTPS. Android SDK, Java, signing credentials, Play Console account state, and submission track are external inputs; this repository does not own them.\n",
|
||||
config.android_package, config.origin
|
||||
)
|
||||
}
|
||||
@@ -1055,6 +1061,12 @@ mod tests {
|
||||
assert!(failures
|
||||
.iter()
|
||||
.any(|failure| failure.contains("BLOCKERS.md") && failure.contains("Android")));
|
||||
assert!(failures
|
||||
.iter()
|
||||
.any(|failure| failure.contains("Google Play")));
|
||||
assert!(failures
|
||||
.iter()
|
||||
.any(|failure| failure.contains("App Store Connect")));
|
||||
let _ = fs::remove_dir_all(&config.out_dir);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user