From 14e49ca1aa5b44ce3047f1a953414eca979edf92 Mon Sep 17 00:00:00 2001 From: geruipu Date: Sun, 21 Jun 2026 04:08:32 +0800 Subject: [PATCH] Run macOS Avalonia smoke app in CI --- .../macos-static-avalonia-native.yml | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/.github/workflows/macos-static-avalonia-native.yml b/.github/workflows/macos-static-avalonia-native.yml index 4d34cc5..d486279 100644 --- a/.github/workflows/macos-static-avalonia-native.yml +++ b/.github/workflows/macos-static-avalonia-native.yml @@ -163,6 +163,45 @@ jobs: } Get-ChildItem -Path $publishDir -Recurse -File | ForEach-Object { $_.FullName } + - name: Run Avalonia smoke app + shell: bash + run: | + set -euo pipefail + cd "artifacts/smoke-${{ matrix.rid }}" + chmod +x ./AvaloniaStaticLinkSmoke + python3 - <<'PY' + import pathlib + import subprocess + import sys + + log = pathlib.Path("avalonia-smoke-run.log") + proc = subprocess.Popen( + ["./AvaloniaStaticLinkSmoke"], + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + text=True, + ) + + try: + output, _ = proc.communicate(timeout=15) + except subprocess.TimeoutExpired: + proc.kill() + output, _ = proc.communicate() + log.write_text(output or "") + print(output or "") + print("Avalonia smoke app stayed alive for 15 seconds.") + sys.exit(0) + + log.write_text(output or "") + print(output or "") + if proc.returncode == 0: + print("Avalonia smoke app exited normally.") + sys.exit(0) + + print(f"Avalonia smoke app failed with exit code {proc.returncode}.", file=sys.stderr) + sys.exit(proc.returncode if proc.returncode > 0 else 1) + PY + - name: Upload macOS smoke app uses: actions/upload-artifact@v4 with: