From 3e2ac193fdf93009ef6e88ae34fe1c32340ae039 Mon Sep 17 00:00:00 2001 From: "Dylan M. Taylor" Date: Fri, 6 Nov 2026 21:27:06 -0500 Subject: [PATCH] feat: drop Windows 32-bit builds (#163) Drops i686-pc-windows-msvc (x86) builds from the Windows release matrix, retaining 64-bit x64 and arm64 targets. --- .github/workflows/release.yml | 1 - README.md | 2 +- tests/test_windows_release.py | 36 +++++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 tests/test_windows_release.py diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1d61fe0..3a2d492 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -318,7 +318,6 @@ jobs: matrix: include: - { arch: x64, target: x86_64-pc-windows-msvc } - - { arch: x86, target: i686-pc-windows-msvc } - { arch: arm64, target: aarch64-pc-windows-msvc } env: CARGO_TERM_COLOR: always diff --git a/README.md b/README.md index 0ceb453..7615c0f 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ This repository unifies and eliminates duplicate CI/CD and release workflow defi ### 1. `release.yml` Full multi-platform release pipeline for Craft apps: - **macOS universal** (x86_64 + aarch64 universal bundle, DMG, CLI, Developer ID codesign & notarization) -- **Windows** (x64, x86, ARM64 MSI installer with WiX v5, CLI, Azure Trusted Signing) +- **Windows** (x64, ARM64 MSI installer with WiX v5, CLI, Azure Trusted Signing) - **Linux** (x86_64, aarch64 AppImage, deb, rpm, tar.gz via nfpm) - **Flatpak** (x86_64, aarch64 bundle generation) - **FreeBSD** (FreeBSD 15.1-STABLE VM build & packaging for x86_64 and aarch64; aarch64 is cross-compiled in the same x86_64 VM and set by default through `freebsd-architectures`, see #39) diff --git a/tests/test_windows_release.py b/tests/test_windows_release.py new file mode 100644 index 0000000..7a91655 --- /dev/null +++ b/tests/test_windows_release.py @@ -0,0 +1,36 @@ +"""Exercise the Windows release job matrix in release.yml.""" + +from pathlib import Path +import unittest + +import yaml + + +ROOT = Path(__file__).resolve().parents[1] +RELEASE_WORKFLOW = ROOT / ".github/workflows/release.yml" + + +class WindowsReleaseWorkflowTests(unittest.TestCase): + """Ensure the release workflow Windows matrix builds supported architectures.""" + + def setUp(self): + """Load the release workflow definition.""" + self.data = yaml.load(RELEASE_WORKFLOW.read_text(), Loader=yaml.BaseLoader) + + def test_windows_matrix_drops_32bit_and_includes_x64_and_arm64(self): + """Windows matrix includes x64 and arm64 targets and excludes 32-bit x86.""" + windows_job = self.data["jobs"]["windows"] + matrix_include = windows_job["strategy"]["matrix"]["include"] + expected = [ + {"arch": "x64", "target": "x86_64-pc-windows-msvc"}, + {"arch": "arm64", "target": "aarch64-pc-windows-msvc"}, + ] + self.assertEqual(matrix_include, expected) + arches = [item["arch"] for item in matrix_include] + targets = [item["target"] for item in matrix_include] + self.assertNotIn("x86", arches) + self.assertNotIn("i686-pc-windows-msvc", targets) + + +if __name__ == "__main__": + unittest.main()