diff --git a/sdks/csharp/unity-meta-skeleton~/spacetimedb.bsatn.runtime/version.meta b/sdks/csharp/unity-meta-skeleton~/spacetimedb.bsatn.runtime/version.meta new file mode 100644 index 00000000000..cfd02c27d4c --- /dev/null +++ b/sdks/csharp/unity-meta-skeleton~/spacetimedb.bsatn.runtime/version.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ae5666f23a6d73c43b030a1b9ba5916b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: \ No newline at end of file diff --git a/sdks/csharp/unity-meta-skeleton~/spacetimedb.runtime/version.meta b/sdks/csharp/unity-meta-skeleton~/spacetimedb.runtime/version.meta new file mode 100644 index 00000000000..5e6b18a2ed3 --- /dev/null +++ b/sdks/csharp/unity-meta-skeleton~/spacetimedb.runtime/version.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 414c282c02d41b7468a56cbff39145f4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: \ No newline at end of file diff --git a/tools/ci/src/main.rs b/tools/ci/src/main.rs index d53b2fa4ba2..7aa4bf2d3d9 100644 --- a/tools/ci/src/main.rs +++ b/tools/ci/src/main.rs @@ -95,7 +95,8 @@ fn check_global_json_policy() -> Result<()> { } fn overlay_unity_meta_skeleton(pkg_id: &str) -> Result<()> { - let skeleton_root = Path::new("sdks/csharp/unity-meta-skeleton~").join(pkg_id); + let skeleton_base = Path::new("sdks/csharp/unity-meta-skeleton~"); + let skeleton_root = skeleton_base.join(pkg_id); if !skeleton_root.exists() { return Ok(()); } @@ -105,6 +106,15 @@ fn overlay_unity_meta_skeleton(pkg_id: &str) -> Result<()> { return Ok(()); } + // Copy spacetimedb..meta + let pkg_root_meta = skeleton_base.join(format!("{pkg_id}.meta")); + if pkg_root_meta.exists() { + if let Some(parent) = pkg_root.parent() { + let pkg_meta_dst = parent.join(format!("{pkg_id}.meta")); + fs::copy(&pkg_root_meta, &pkg_meta_dst)?; + } + } + let versioned_dir = match find_only_subdir(&pkg_root) { Ok(dir) => dir, Err(err) => { @@ -113,6 +123,18 @@ fn overlay_unity_meta_skeleton(pkg_id: &str) -> Result<()> { } }; + // If version.meta exists under the skeleton package, rename it to match the restored version dir. + let version_meta_template = skeleton_root.join("version.meta"); + if version_meta_template.exists() { + if let Some(parent) = versioned_dir.parent() { + let version_name = versioned_dir + .file_name() + .expect("versioned directory should have a file name"); + let version_meta_dst = parent.join(format!("{}.meta", version_name.to_string_lossy())); + fs::copy(&version_meta_template, &version_meta_dst)?; + } + } + copy_overlay_dir(&skeleton_root, &versioned_dir) }