fix: Complete Windows deployment pipeline
Fixes critical bugs in Windows APK deployment workflow including APK path resolution, adb integration, and config file parsing. Changes: - Fix APK search to look for TeamCode-debug.apk instead of *app-debug.apk - Strip both single and double quotes from batch file path parsing - Add android_sdk_path to project configuration (.weevil.toml) - Resolve adb.exe from Android SDK platform-tools directory - Check adb install exit code and report deployment failures correctly - Add migration support for old .weevil.toml files missing android_sdk_path - Update all tests to use new ProjectConfig::new() signature The deployment workflow now properly finds the generated APK, locates adb, and reports success/failure accurately on Windows.
This commit is contained in:
@@ -13,6 +13,7 @@ use weevil::sdk::SdkConfig;
|
||||
fn test_config_create_and_save() {
|
||||
let temp_dir = TempDir::new().unwrap();
|
||||
let sdk_path = temp_dir.path().join("mock-sdk");
|
||||
let android_sdk_path = temp_dir.path().join("android-sdk");
|
||||
|
||||
// Create minimal SDK structure
|
||||
fs::create_dir_all(sdk_path.join("TeamCode/src/main/java")).unwrap();
|
||||
@@ -20,10 +21,11 @@ fn test_config_create_and_save() {
|
||||
fs::write(sdk_path.join("build.gradle"), "// test").unwrap();
|
||||
fs::write(sdk_path.join(".version"), "v10.1.1").unwrap();
|
||||
|
||||
let config = ProjectConfig::new("test-robot", sdk_path.clone()).unwrap();
|
||||
let config = ProjectConfig::new("test-robot", sdk_path.clone(), android_sdk_path.clone()).unwrap();
|
||||
|
||||
assert_eq!(config.project_name, "test-robot");
|
||||
assert_eq!(config.ftc_sdk_path, sdk_path);
|
||||
assert_eq!(config.android_sdk_path, android_sdk_path);
|
||||
assert_eq!(config.weevil_version, "1.0.0");
|
||||
|
||||
// Save and reload
|
||||
@@ -34,12 +36,14 @@ fn test_config_create_and_save() {
|
||||
let loaded = ProjectConfig::load(&project_path).unwrap();
|
||||
assert_eq!(loaded.project_name, config.project_name);
|
||||
assert_eq!(loaded.ftc_sdk_path, config.ftc_sdk_path);
|
||||
assert_eq!(loaded.android_sdk_path, config.android_sdk_path);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_config_toml_format() {
|
||||
let temp_dir = TempDir::new().unwrap();
|
||||
let sdk_path = temp_dir.path().join("sdk");
|
||||
let android_sdk_path = temp_dir.path().join("android-sdk");
|
||||
|
||||
// Create minimal SDK
|
||||
fs::create_dir_all(sdk_path.join("TeamCode/src/main/java")).unwrap();
|
||||
@@ -47,7 +51,7 @@ fn test_config_toml_format() {
|
||||
fs::write(sdk_path.join("build.gradle"), "// test").unwrap();
|
||||
fs::write(sdk_path.join(".version"), "v10.1.1").unwrap();
|
||||
|
||||
let config = ProjectConfig::new("my-robot", sdk_path).unwrap();
|
||||
let config = ProjectConfig::new("my-robot", sdk_path, android_sdk_path).unwrap();
|
||||
|
||||
let project_path = temp_dir.path().join("project");
|
||||
fs::create_dir_all(&project_path).unwrap();
|
||||
@@ -59,6 +63,7 @@ fn test_config_toml_format() {
|
||||
assert!(content.contains("weevil_version = \"1.0.0\""));
|
||||
assert!(content.contains("ftc_sdk_path"));
|
||||
assert!(content.contains("ftc_sdk_version"));
|
||||
assert!(content.contains("android_sdk_path"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
Reference in New Issue
Block a user