ci: retain current build fixes in the readonly native diagnostic

This commit is contained in:
dh
2026-10-03 16:22:03 +02:00
5 changed files with 260 additions and 19 deletions
+42 -18
View File
@@ -24,27 +24,23 @@ jobs:
- name: Install Wine
run: |
set -euo pipefail
export DEBIAN_FRONTEND=noninteractive
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install -y --no-install-recommends wine64 wine32 winbind unzip
if [ -d /usr/lib/wine ]; then
echo "/usr/lib/wine" >> "${GITHUB_PATH}"
export PATH="${PATH}:/usr/lib/wine"
fi
if command -v wine >/dev/null 2>&1; then
WINE_BIN="$(command -v wine)"
elif command -v wine64 >/dev/null 2>&1; then
WINE_BIN="$(command -v wine64)"
elif [ -x /usr/lib/wine/wine64 ]; then
WINE_BIN="/usr/lib/wine/wine64"
elif [ -x /usr/lib/wine/wine ]; then
WINE_BIN="/usr/lib/wine/wine"
else
echo "No wine binary found after installation."
ls -la /usr/lib/wine || true
exit 1
fi
sudo apt-get install -y --no-install-recommends ca-certificates curl gnupg winbind unzip
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://dl.winehq.org/wine-builds/winehq.key \
| gpg --dearmor \
| sudo tee /etc/apt/keyrings/winehq-archive.key >/dev/null
. /etc/os-release
curl -fsSL "https://dl.winehq.org/wine-builds/ubuntu/dists/${VERSION_CODENAME}/winehq-${VERSION_CODENAME}.sources" \
| sudo tee /etc/apt/sources.list.d/winehq.sources >/dev/null
sudo apt-get update
# Wine 9 cannot enumerate the DOS_DOT patterns used by .NET 10's SDK pack lookup.
sudo apt-get install -y --no-install-recommends "winehq-stable=11.0.0.0~${VERSION_CODENAME}-1"
WINE_BIN="/opt/wine-stable/bin/wine"
test -x "${WINE_BIN}"
echo "WINE_BIN=${WINE_BIN}" >> "${GITHUB_ENV}"
"${WINE_BIN}" --version
@@ -77,6 +73,34 @@ jobs:
echo "WIN_DOTNET_DIR=${WIN_DOTNET_DIR}" >> "${GITHUB_ENV}"
"${WINE_BIN}" "${WIN_DOTNET_DIR}/dotnet.exe" --info
- name: Provision NuGet signature trust inside Wine
run: |
SDK_VERSION="$(dotnet --version)"
SDK_TRUST_ROOT="${DOTNET_ROOT}/sdk/${SDK_VERSION}/trustedroots"
dotnet publish scripts/wine-sdk-trust.cs \
-c Release \
-p:UseAppHost=false \
-p:PublishAot=false \
-o "${RUNNER_TEMP}/wine-sdk-trust" \
--nologo
"${WINE_BIN}" "${WIN_DOTNET_DIR}/dotnet.exe" \
"Z:${RUNNER_TEMP}/wine-sdk-trust/WineSdkTrust.dll" --import \
"Z:${SDK_TRUST_ROOT}/codesignctl.pem" \
"Z:${SDK_TRUST_ROOT}/timestampctl.pem"
- name: Diagnose Windows SDK targeting-pack resolution
run: |
find "${WIN_DOTNET_DIR}/packs" -maxdepth 4 -name PackageOverrides.txt -print
"${WINE_BIN}" "${WIN_DOTNET_DIR}/dotnet.exe" msbuild MeetingAssistant/MeetingAssistant.csproj \
-p:EnableWindowsTargeting=true \
-p:TargetFramework=net10.0 \
-getProperty:NetCoreRoot,NetCoreTargetingPackRoot,PrunePackageDataRoot,PrunePackageTargetingPackRoots,MSBuildSDKsPath,DOTNET_MSBUILD_SDK_RESOLVER_CLI_DIR
"${WINE_BIN}" "${WIN_DOTNET_DIR}/dotnet.exe" msbuild MeetingAssistant/MeetingAssistant.csproj \
-p:EnableWindowsTargeting=true \
-p:TargetFramework=net10.0 \
-t:AddPrunePackageReferences \
-v:normal
- name: Build Windows desktop target via Wine
run: |
rm -f MeetingAssistant/bin/Release/net10.0-windows10.0.19041.0/win-x64/MeetingAssistant.dll