Pin stable Castle toolchain compatibility
Sync changed files to Google Drive / sync (push) Successful in 3m16s
Sync changed files to Google Drive / sync (push) Successful in 3m16s
This commit is contained in:
1 parent
b8a9fd9d74
commit
2d5e5b94ae
4 files changed
+17
-17
No files matched your search
@@ -58,12 +58,12 @@ begin
|
||||
FScroll := TCastleScrollView.Create(Self);
|
||||
FScroll.FullSize := True;
|
||||
FScroll.EnableDragging := True;
|
||||
Controls.InsertFront(FScroll);
|
||||
InsertFront(FScroll);
|
||||
|
||||
FContent := TCastleVerticalGroup.Create(Self);
|
||||
FContent.Padding := LayoutMargin;
|
||||
FContent.Spacing := 8;
|
||||
FScroll.ScrollArea.Controls.InsertFront(FContent);
|
||||
FScroll.ScrollArea.InsertFront(FContent);
|
||||
|
||||
FStatusLabel := TCastleLabel.Create(Self);
|
||||
FDetailsLabel := TCastleLabel.Create(Self);
|
||||
@@ -71,16 +71,16 @@ begin
|
||||
FFileIOButton := TCastleButton.Create(Self);
|
||||
FExportButton := TCastleButton.Create(Self);
|
||||
|
||||
FContent.Controls.InsertFront(FExportFeedbackLabel);
|
||||
FContent.InsertFront(FExportFeedbackLabel);
|
||||
FExportButton.Caption := 'Export Report';
|
||||
FExportButton.OnClick := @ExportClick;
|
||||
FContent.Controls.InsertFront(FExportButton);
|
||||
FContent.Controls.InsertFront(FDetailsLabel);
|
||||
FContent.Controls.InsertFront(FStatusLabel);
|
||||
FContent.InsertFront(FExportButton);
|
||||
FContent.InsertFront(FDetailsLabel);
|
||||
FContent.InsertFront(FStatusLabel);
|
||||
FFileIOButton.Caption := 'Test File I/O';
|
||||
FFileIOButton.OnClick := @FileIOClick;
|
||||
FContent.Controls.InsertFront(FFileIOButton);
|
||||
with TCastleLabel.Create(Self) do begin Caption := 'Tests / Diagnostics'; FContent.Controls.InsertFront(Self); end;
|
||||
FContent.InsertFront(FFileIOButton);
|
||||
with TCastleLabel.Create(Self) do begin Caption := 'Tests / Diagnostics'; FContent.InsertFront(Self); end;
|
||||
end;
|
||||
|
||||
procedure TDiagnosticsView.UpdateWrapWidth;
|
||||
|
||||
@@ -16,7 +16,7 @@ uses
|
||||
|
||||
function SelectedMapUrl: string;
|
||||
begin
|
||||
Result := 'castle-data:/game/' + UrlEncode(SelectedMapRelativePath);
|
||||
Result := 'castle-data:/game/' + SelectedMapRelativePath;
|
||||
end;
|
||||
|
||||
end.
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"image": "kambi/castle-engine-cloud-builds-tools@sha256:1a67fad233fe7a2e81ed5f750b548c9ef136ed7d36ec061ff96b2e5eb6eaa218",
|
||||
"image_id": "sha256:1a67fad233fe7a2e81ed5f750b548c9ef136ed7d36ec061ff96b2e5eb6eaa218",
|
||||
"resolved_from": "kambi/castle-engine-cloud-builds-tools:cge-unstable",
|
||||
"locked_at": "20260908T161942Z",
|
||||
"image": "kambi/castle-engine-cloud-builds-tools@sha256:765b6da37a24b2f156886d70e4499f837a0563a2695d41a9e9cab9a9940b54a3",
|
||||
"image_id": "sha256:765b6da37a24b2f156886d70e4499f837a0563a2695d41a9e9cab9a9940b54a3",
|
||||
"resolved_from": "kambi/castle-engine-cloud-builds-tools:cge-stable",
|
||||
"locked_at": "20260915T160525Z",
|
||||
"note": "Subsequent runs use this digest, never silently advance the tag."
|
||||
}
|
||||
+4
-4
@@ -13,7 +13,7 @@ from generate import android_service_roots, materialize_application_project
|
||||
from artifacts import inspect_elf, inspect_apk
|
||||
from resource_staging import stage_runtime_resources
|
||||
|
||||
IMAGE_TAG='kambi/castle-engine-cloud-builds-tools:cge-unstable'
|
||||
IMAGE_TAG='kambi/castle-engine-cloud-builds-tools:cge-stable'
|
||||
BUILD_EVIDENCE_DIR=ROOT/'build-evidence'
|
||||
def cge_command(cpu:str,action:str)->list[str]:
|
||||
if cpu not in CPUS:raise ProbeError('Unsupported Android CPU')
|
||||
@@ -104,7 +104,7 @@ def _error(log:Path)->str:
|
||||
return (first_errors(text) or [text[-1500:] or 'Build command failed'])[0]
|
||||
|
||||
def _native_library_path(cpu:str)->str:
|
||||
return f'lib/{CPUS[cpu][0]}/libkam_mobile.so'
|
||||
return f'lib/{CPUS[cpu][0]}/libkam_mobile_android.so'
|
||||
|
||||
def _select_native_library(project:Path, name:str, cpu:str)->Path:
|
||||
candidates=sorted(project.rglob(f'lib{name}_android_{cpu}.so'),key=lambda path:str(path))
|
||||
@@ -127,7 +127,7 @@ def stage_android_services(project:Path, logs:Path)->None:
|
||||
castle_path=os.environ.get('CASTLE_ENGINE_PATH')
|
||||
if not castle_path:
|
||||
raise ProbeError('Cannot stage project-owned Android services: CASTLE_ENGINE_PATH is not set')
|
||||
service_root=Path(castle_path)/'tools/build-tool/data/android/services'
|
||||
service_root=Path(castle_path)/'tools/build-tool/data/android/integrated-services'
|
||||
if not service_root.is_dir():
|
||||
raise ProbeError('Cannot stage project-owned Android services: Castle service root is missing: '+str(service_root))
|
||||
try:
|
||||
@@ -177,7 +177,7 @@ def build_local(a:argparse.Namespace,build_id:str)->int:
|
||||
if not candidates:raise ProbeError('Packaging exited 0 but no APK')
|
||||
if len({sha256(path) for path in candidates})!=1:raise ProbeError('Multiple different APK outputs')
|
||||
apk=candidates[0]; apk_info=inspect_apk(apk,a.cpu,library.name,sha256(library),library.read_bytes())
|
||||
if apk_info['main_library_path']!=_native_library_path(a.cpu):raise ProbeError('APK native library path does not match selected ABI and libkam_mobile.so')
|
||||
if apk_info['main_library_path']!=_native_library_path(a.cpu):raise ProbeError('APK native library path does not match selected ABI and libkam_mobile_android.so')
|
||||
signer=signature_tool()
|
||||
if signer:
|
||||
signed=run_command([signer,'verify','--verbose',str(apk)],project,logs/'signature.log',a.timeout)
|
||||
|
||||
Reference in new issue
Block a user