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 := TCastleScrollView.Create(Self);
|
||||||
FScroll.FullSize := True;
|
FScroll.FullSize := True;
|
||||||
FScroll.EnableDragging := True;
|
FScroll.EnableDragging := True;
|
||||||
Controls.InsertFront(FScroll);
|
InsertFront(FScroll);
|
||||||
|
|
||||||
FContent := TCastleVerticalGroup.Create(Self);
|
FContent := TCastleVerticalGroup.Create(Self);
|
||||||
FContent.Padding := LayoutMargin;
|
FContent.Padding := LayoutMargin;
|
||||||
FContent.Spacing := 8;
|
FContent.Spacing := 8;
|
||||||
FScroll.ScrollArea.Controls.InsertFront(FContent);
|
FScroll.ScrollArea.InsertFront(FContent);
|
||||||
|
|
||||||
FStatusLabel := TCastleLabel.Create(Self);
|
FStatusLabel := TCastleLabel.Create(Self);
|
||||||
FDetailsLabel := TCastleLabel.Create(Self);
|
FDetailsLabel := TCastleLabel.Create(Self);
|
||||||
@@ -71,16 +71,16 @@ begin
|
|||||||
FFileIOButton := TCastleButton.Create(Self);
|
FFileIOButton := TCastleButton.Create(Self);
|
||||||
FExportButton := TCastleButton.Create(Self);
|
FExportButton := TCastleButton.Create(Self);
|
||||||
|
|
||||||
FContent.Controls.InsertFront(FExportFeedbackLabel);
|
FContent.InsertFront(FExportFeedbackLabel);
|
||||||
FExportButton.Caption := 'Export Report';
|
FExportButton.Caption := 'Export Report';
|
||||||
FExportButton.OnClick := @ExportClick;
|
FExportButton.OnClick := @ExportClick;
|
||||||
FContent.Controls.InsertFront(FExportButton);
|
FContent.InsertFront(FExportButton);
|
||||||
FContent.Controls.InsertFront(FDetailsLabel);
|
FContent.InsertFront(FDetailsLabel);
|
||||||
FContent.Controls.InsertFront(FStatusLabel);
|
FContent.InsertFront(FStatusLabel);
|
||||||
FFileIOButton.Caption := 'Test File I/O';
|
FFileIOButton.Caption := 'Test File I/O';
|
||||||
FFileIOButton.OnClick := @FileIOClick;
|
FFileIOButton.OnClick := @FileIOClick;
|
||||||
FContent.Controls.InsertFront(FFileIOButton);
|
FContent.InsertFront(FFileIOButton);
|
||||||
with TCastleLabel.Create(Self) do begin Caption := 'Tests / Diagnostics'; FContent.Controls.InsertFront(Self); end;
|
with TCastleLabel.Create(Self) do begin Caption := 'Tests / Diagnostics'; FContent.InsertFront(Self); end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TDiagnosticsView.UpdateWrapWidth;
|
procedure TDiagnosticsView.UpdateWrapWidth;
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ uses
|
|||||||
|
|
||||||
function SelectedMapUrl: string;
|
function SelectedMapUrl: string;
|
||||||
begin
|
begin
|
||||||
Result := 'castle-data:/game/' + UrlEncode(SelectedMapRelativePath);
|
Result := 'castle-data:/game/' + SelectedMapRelativePath;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"image": "kambi/castle-engine-cloud-builds-tools@sha256:1a67fad233fe7a2e81ed5f750b548c9ef136ed7d36ec061ff96b2e5eb6eaa218",
|
"image": "kambi/castle-engine-cloud-builds-tools@sha256:765b6da37a24b2f156886d70e4499f837a0563a2695d41a9e9cab9a9940b54a3",
|
||||||
"image_id": "sha256:1a67fad233fe7a2e81ed5f750b548c9ef136ed7d36ec061ff96b2e5eb6eaa218",
|
"image_id": "sha256:765b6da37a24b2f156886d70e4499f837a0563a2695d41a9e9cab9a9940b54a3",
|
||||||
"resolved_from": "kambi/castle-engine-cloud-builds-tools:cge-unstable",
|
"resolved_from": "kambi/castle-engine-cloud-builds-tools:cge-stable",
|
||||||
"locked_at": "20260908T161942Z",
|
"locked_at": "20260915T160525Z",
|
||||||
"note": "Subsequent runs use this digest, never silently advance the tag."
|
"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 artifacts import inspect_elf, inspect_apk
|
||||||
from resource_staging import stage_runtime_resources
|
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'
|
BUILD_EVIDENCE_DIR=ROOT/'build-evidence'
|
||||||
def cge_command(cpu:str,action:str)->list[str]:
|
def cge_command(cpu:str,action:str)->list[str]:
|
||||||
if cpu not in CPUS:raise ProbeError('Unsupported Android CPU')
|
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]
|
return (first_errors(text) or [text[-1500:] or 'Build command failed'])[0]
|
||||||
|
|
||||||
def _native_library_path(cpu:str)->str:
|
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:
|
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))
|
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')
|
castle_path=os.environ.get('CASTLE_ENGINE_PATH')
|
||||||
if not castle_path:
|
if not castle_path:
|
||||||
raise ProbeError('Cannot stage project-owned Android services: CASTLE_ENGINE_PATH is not set')
|
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():
|
if not service_root.is_dir():
|
||||||
raise ProbeError('Cannot stage project-owned Android services: Castle service root is missing: '+str(service_root))
|
raise ProbeError('Cannot stage project-owned Android services: Castle service root is missing: '+str(service_root))
|
||||||
try:
|
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 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')
|
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())
|
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()
|
signer=signature_tool()
|
||||||
if signer:
|
if signer:
|
||||||
signed=run_command([signer,'verify','--verbose',str(apk)],project,logs/'signature.log',a.timeout)
|
signed=run_command([signer,'verify','--verbose',str(apk)],project,logs/'signature.log',a.timeout)
|
||||||
|
|||||||
Reference in new issue
Block a user