Clean up Unity LFS asset footprint

This commit is contained in:
2026-05-26 17:06:46 -07:00
parent 8bb45a57af
commit 7b5e616006
111 changed files with 1180 additions and 535 deletions
+3
View File
@@ -33,6 +33,7 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v6
with:
persist-credentials: false
lfs: false
- name: Build Auth Server Docker image
@@ -128,6 +129,8 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Deploy auth service to production
uses: appleboy/ssh-action@v1.2.5
@@ -16,6 +16,7 @@ jobs:
- name: Checkout
uses: actions/checkout@v6
with:
persist-credentials: false
lfs: false
- name: Show disk usage before cleanup
+2
View File
@@ -43,6 +43,7 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v6
with:
persist-credentials: false
lfs: false
- name: Check BUILD.bazel dependencies
run: ./scripts/check_build_deps.sh --strict
@@ -65,6 +66,7 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v6
with:
persist-credentials: false
lfs: false
- name: Run tests
run: bazel test --build_event_json_file=test.json //src/test/... //src/main/go/...
+1
View File
@@ -16,6 +16,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
lfs: false
clean: false
+4
View File
@@ -28,6 +28,8 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Build sysroot
run: ./tools/sysroot/build_sysroot.sh
@@ -82,6 +84,8 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Set up QEMU for ARM64 emulation
uses: docker/setup-qemu-action@v4
+2
View File
@@ -72,6 +72,7 @@ jobs:
if: steps.check-latest.outputs.skip != 'true'
uses: actions/checkout@v6
with:
persist-credentials: false
lfs: false
- name: Fetch LFS files needed for admin server
@@ -247,6 +248,7 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v6
with:
persist-credentials: false
lfs: false
- name: Setup SSH key
+1
View File
@@ -28,6 +28,7 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v6
with:
persist-credentials: false
lfs: false
- name: Build Eagle server
run: bazel build //src/main/scala/net/eagle0/eagle:eagle_server
+1
View File
@@ -23,6 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
lfs: false
clean: false
+1
View File
@@ -124,6 +124,7 @@ jobs:
fi
- uses: actions/checkout@v6
with:
persist-credentials: false
lfs: false # Fetch LFS after checkout to avoid stale ref issues
clean: false # Library/ persists between runs on self-hosted runners
fetch-depth: 0
+3
View File
@@ -83,6 +83,7 @@ jobs:
fi
- uses: actions/checkout@v6
with:
persist-credentials: false
lfs: false # Fetch LFS after checkout to avoid stale ref issues
clean: false # Library/ persists between runs on self-hosted runners
fetch-depth: 0 # For version numbering from git history
@@ -252,6 +253,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
sparse-checkout: scripts
- name: Clean download directory
@@ -305,6 +307,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
fetch-depth: 0 # For version numbering
- name: Clean download directory
@@ -36,6 +36,7 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v6
with:
persist-credentials: false
lfs: false
- name: Build Shardok ARM64 binary (cross-compile for Linux ARM64)
+1
View File
@@ -29,6 +29,7 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v6
with:
persist-credentials: false
lfs: false
- name: Build Shardok server
run: bazel build -c opt //src/main/cpp/net/eagle0/shardok:shardok-server
+1
View File
@@ -71,6 +71,7 @@ jobs:
fi
- uses: actions/checkout@v6
with:
persist-credentials: false
lfs: false # Fetch LFS after checkout to avoid stale ref issues
clean: false # Library/ persists between runs on self-hosted runners
+2
View File
@@ -43,3 +43,5 @@ src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Plugins/Eagle0Protos/
src/main/csharp/net/eagle0/clients/unity/eagle0/ProjectSettings/Packages/com.unity.dedicated-server/
node_modules/
tools/map_generator/output/
src/main/csharp/net/eagle0/clients/unity/eagle0/docs/generated/unity_asset_usage_audit_files.csv
src/main/csharp/net/eagle0/clients/unity/eagle0/docs/generated/unity_lfs_asset_audit.csv
@@ -1,92 +0,0 @@
fileFormatVersion: 2
guid: 41d2414f14341834dae67561a4b1b3b3
timeCreated: 1549735681
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 4
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
wrapU: -1
wrapV: -1
wrapW: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
- buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 144071
packageName: Animal pack deluxe v2
packageVersion: 1.0
assetPath: Assets/Animal pack deluxe v2/Textures/chick_gloss5.tga
uploadId: 305234
@@ -1,92 +0,0 @@
fileFormatVersion: 2
guid: b6beaa81575750f4da3ef74b34d6beff
timeCreated: 1543672648
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 4
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
wrapU: -1
wrapV: -1
wrapW: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 1
textureShape: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
- buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 144071
packageName: Animal pack deluxe v2
packageVersion: 1.0
assetPath: Assets/Animal pack deluxe v2/Textures/pug_nrml8.tga
uploadId: 305234
@@ -1,81 +0,0 @@
fileFormatVersion: 2
guid: db27888d58af1444b839d11cff36af91
timeCreated: 1503756430
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 4
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
wrapU: -1
wrapV: -1
wrapW: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 99702
packageName: Animal pack deluxe
packageVersion: 1.0
assetPath: Assets/Animal pack deluxe/Textures/brown_bear_col_v2_unity.tga
uploadId: 259818
@@ -1,81 +0,0 @@
fileFormatVersion: 2
guid: dfed5f12e86a85f4b8288f97884b090e
timeCreated: 1503827594
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 4
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
wrapU: -1
wrapV: -1
wrapW: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 99702
packageName: Animal pack deluxe
packageVersion: 1.0
assetPath: Assets/Animal pack deluxe/Textures/golden_eagle_col14_unity.tga
uploadId: 259818
@@ -84,7 +84,11 @@ namespace eagle {
}
RendererViewportClipper.Attach(_dragonInstance);
_animator = _dragonInstance.GetComponent<Animator>();
_animator = _dragonInstance.GetComponentInChildren<Animator>();
if (_animator == null) {
Debug.LogWarning($"DragonEffect: '{dragonPrefab.name}' has no Animator component.");
return;
}
if (animatorController != null) {
_animator.runtimeAnimatorController = animatorController;
}
@@ -141,7 +145,7 @@ namespace eagle {
_actionTimer = Random.Range(minActionInterval, maxActionInterval);
_groundTarget = _dragonInstance.transform.localPosition;
_inAction = false;
_animator.Play(WalkHash);
_animator?.Play(WalkHash);
PickGroundTarget();
}
}
@@ -164,7 +168,7 @@ namespace eagle {
_mode = DragonMode.TakingOff;
_transitionProgress = 0f;
_inAction = false;
_animator.Play(FlyHash);
_animator?.Play(FlyHash);
}
}
@@ -218,6 +222,7 @@ namespace eagle {
}
private void UpdateActionTimer(bool flying) {
if (_animator == null) { return; }
if (_inAction) {
if (_animator.IsInTransition(0)) { return; }
var stateInfo = _animator.GetCurrentAnimatorStateInfo(0);
@@ -88,6 +88,7 @@ public static class AssetUsageAuditor {
var csvLines = new List<string> {
"Pack,Total Files,Used Files,Unused Files,Total MB,Used MB,Unused MB"
};
var detailCsvLines = new List<string> { "Pack,State,Size MB,Path" };
long grandTotalUsed = 0;
long grandTotalUnused = 0;
@@ -119,10 +120,13 @@ public static class AssetUsageAuditor {
usedBytes += size;
usedCount++;
usedFiles.Add((path, size));
detailCsvLines.Add($"{Csv(pack)},Used,{size / (1024f * 1024f):F3},{Csv(path)}");
} else {
unusedBytes += size;
unusedCount++;
if (size > 1024 * 1024) unusedLargeFiles.Add((path, size));
detailCsvLines.Add(
$"{Csv(pack)},Unused,{size / (1024f * 1024f):F3},{Csv(path)}");
}
}
@@ -159,5 +163,14 @@ public static class AssetUsageAuditor {
var csvPath = Path.Combine(Application.dataPath, "..", "asset_usage_audit.csv");
File.WriteAllLines(csvPath, csvLines);
Debug.Log($"CSV written to: {csvPath}");
var detailCsvPath = Path.Combine(Application.dataPath, "..", "asset_usage_audit_files.csv");
File.WriteAllLines(detailCsvPath, detailCsvLines);
Debug.Log($"Detail CSV written to: {detailCsvPath}");
}
private static string Csv(string value) {
if (value.IndexOfAny(new[] { ',', '"', '\n', '\r' }) < 0) return value;
return "\"" + value.Replace("\"", "\"\"") + "\"";
}
}

Some files were not shown because too many files have changed in this diff Show More