From c8dbf75eb344b6a6987b8a6756d8fc0363288d07 Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Wed, 10 Dec 2025 14:09:49 +0200 Subject: [PATCH 1/4] workflows: use ubuntu-24.04 runner image for arm64 builds --- .github/workflows/_job_cx-freeze-appimage.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/_job_cx-freeze-appimage.yml b/.github/workflows/_job_cx-freeze-appimage.yml index a1a5b50f49..cd53bb11b0 100644 --- a/.github/workflows/_job_cx-freeze-appimage.yml +++ b/.github/workflows/_job_cx-freeze-appimage.yml @@ -15,10 +15,10 @@ jobs: include: - arch: arm64 pyarch: arm64 - os: ubuntu-22.04-arm + os: ubuntu-24.04-arm - arch: x86_64 pyarch: x64 - os: ubuntu-22.04 + os: ubuntu-24.04 name: Package ${{ matrix.arch }} runs-on: ${{ matrix.os }} steps: From 2204fdd7eba18045786a60fa26d1f3b9e13908c8 Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Wed, 10 Dec 2025 14:16:02 +0200 Subject: [PATCH 2/4] workflows: add arm64 linux nuitka builds --- .github/workflows/_job_cx-freeze-appimage.yml | 2 +- .github/workflows/_job_nuitka-linux.yml | 22 ++++++++++++++----- .github/workflows/artifacts.yml | 3 ++- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/.github/workflows/_job_cx-freeze-appimage.yml b/.github/workflows/_job_cx-freeze-appimage.yml index cd53bb11b0..0fc395d406 100644 --- a/.github/workflows/_job_cx-freeze-appimage.yml +++ b/.github/workflows/_job_cx-freeze-appimage.yml @@ -18,7 +18,7 @@ jobs: os: ubuntu-24.04-arm - arch: x86_64 pyarch: x64 - os: ubuntu-24.04 + os: ubuntu-22.04 name: Package ${{ matrix.arch }} runs-on: ${{ matrix.os }} steps: diff --git a/.github/workflows/_job_nuitka-linux.yml b/.github/workflows/_job_nuitka-linux.yml index 9ca5c83eee..8540be5e1b 100644 --- a/.github/workflows/_job_nuitka-linux.yml +++ b/.github/workflows/_job_nuitka-linux.yml @@ -9,8 +9,18 @@ on: jobs: build: - name: Package - runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + include: + - arch: arm64 + pyarch: arm64 + os: ubuntu-24.04-arm + - arch: x86_64 + pyarch: x64 + os: ubuntu-22.04 + name: Package ${{ matrix.arch }} + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v6 with: @@ -21,7 +31,7 @@ jobs: cache: pip python-version: '3.12' check-latest: true - architecture: x64 + architecture: ${{ matrix.pyarch }} - name: Install build dependencies run: | pip3 install --upgrade nuitka ruff @@ -87,10 +97,10 @@ jobs: run: | mv rare.dist Rare-${{ inputs.version }} python -c "import shutil; shutil.make_archive('Rare-${{ inputs.version }}', 'zip', '.', 'Rare-${{ inputs.version }}')" - mv Rare-${{ inputs.version }}.zip Rare-${{ inputs.version }}-linux.zip + mv Rare-${{ inputs.version }}.zip Rare-${{ inputs.version }}-${{ matrix.arch }}-linux.zip - name: Upload artifact uses: actions/upload-artifact@v5 with: - name: Rare-${{ inputs.version }}-linux.zip - path: Rare-${{ inputs.version }}-linux.zip + name: Rare-${{ inputs.version }}-${{ matrix.arch }}-linux.zip + path: Rare-${{ inputs.version }}-${{ matrix.arch }}-linux.zip diff --git a/.github/workflows/artifacts.yml b/.github/workflows/artifacts.yml index 47d8c81a2b..bb526c57ad 100644 --- a/.github/workflows/artifacts.yml +++ b/.github/workflows/artifacts.yml @@ -65,7 +65,8 @@ jobs: uses: ./.github/workflows/_job_publish.yml with: version: ${{ inputs.prerelease && needs.version.outputs.version || github.ref_name }} - file1: Rare-${{ needs.version.outputs.version }}-linux.zip + file1: Rare-${{ needs.version.outputs.version }}-x86_64-linux.zip + file2: Rare-${{ needs.version.outputs.version }}-arm64-linux.zip nuitka-macos: if: ${{ true }} From 37d299e5f9544e64f76303ecabfcb45731947d76 Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Wed, 10 Dec 2025 14:21:53 +0200 Subject: [PATCH 3/4] workflows: add arm64 windows nuitka builds --- .github/workflows/_job_nuitka-windows.yml | 22 ++++++++++++++++------ .github/workflows/artifacts.yml | 3 ++- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/.github/workflows/_job_nuitka-windows.yml b/.github/workflows/_job_nuitka-windows.yml index 7cd96aa815..61d6cd896c 100644 --- a/.github/workflows/_job_nuitka-windows.yml +++ b/.github/workflows/_job_nuitka-windows.yml @@ -9,8 +9,18 @@ on: jobs: build: - name: Package - runs-on: windows-latest + strategy: + fail-fast: false + matrix: + include: + - arch: arm64 + pyarch: arm64 + os: windows-11-arm + - arch: x86_64 + pyarch: x64 + os: windows-latest + name: Package ${{ matrix.arch }} + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v6 with: @@ -21,7 +31,7 @@ jobs: cache: pip python-version: '3.12' check-latest: true - architecture: x64 + architecture: ${{ matrix.pyarch }} - name: Install build dependencies run: | pip3 install --upgrade nuitka ruff @@ -85,10 +95,10 @@ jobs: run: | mv rare.dist Rare-${{ inputs.version }} python -c "import shutil; shutil.make_archive('Rare-${{ inputs.version }}', 'zip', '.', 'Rare-${{ inputs.version }}')" - mv Rare-${{ inputs.version }}.zip Rare-${{ inputs.version }}-windows.zip + mv Rare-${{ inputs.version }}.zip Rare-${{ inputs.version }}-${{ matrix.arch }}-windows.zip - name: Upload artifact uses: actions/upload-artifact@v5 with: - name: Rare-${{ inputs.version }}-windows.zip - path: Rare-${{ inputs.version }}-windows.zip + name: Rare-${{ inputs.version }}-${{ matrix.arch }}-windows.zip + path: Rare-${{ inputs.version }}-${{ matrix.arch }}-windows.zip diff --git a/.github/workflows/artifacts.yml b/.github/workflows/artifacts.yml index bb526c57ad..354ea208fb 100644 --- a/.github/workflows/artifacts.yml +++ b/.github/workflows/artifacts.yml @@ -99,7 +99,8 @@ jobs: uses: ./.github/workflows/_job_publish.yml with: version: ${{ inputs.prerelease && needs.version.outputs.version || github.ref_name }} - file1: Rare-${{ needs.version.outputs.version }}-windows.zip + file1: Rare-${{ needs.version.outputs.version }}-x86_64-windows.zip + file2: Rare-${{ needs.version.outputs.version }}-arm64-windows.zip cx-freeze-appimage: if: ${{ true }} From 4ddf0c2d802621464c91801eb54345c091c72d5f Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Wed, 10 Dec 2025 14:24:09 +0200 Subject: [PATCH 4/4] workflows: add windows msi cx-freeze builds --- .github/workflows/_job_cx-freeze-msi.yml | 22 ++++++++++++++++------ .github/workflows/artifacts.yml | 3 ++- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/.github/workflows/_job_cx-freeze-msi.yml b/.github/workflows/_job_cx-freeze-msi.yml index 037fd007e2..35317313c8 100644 --- a/.github/workflows/_job_cx-freeze-msi.yml +++ b/.github/workflows/_job_cx-freeze-msi.yml @@ -9,8 +9,18 @@ on: jobs: build: - name: Package - runs-on: windows-latest + strategy: + fail-fast: false + matrix: + include: + - arch: arm64 + pyarch: arm64 + os: windows-11-arm + - arch: x86_64 + pyarch: x64 + os: windows-latest + name: Package ${{ matrix.arch }} + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v6 with: @@ -21,7 +31,7 @@ jobs: cache: pip python-version: '3.12' check-latest: true - architecture: x64 + architecture: ${{ matrix.pyarch }} - name: Install build dependencies run: | pip3 install --upgrade cx_freeze ruff @@ -43,10 +53,10 @@ jobs: SETUPTOOLS_SCM_PRETEND_VERSION: ${{ inputs.version }} run: | python3 freeze.py bdist_msi - mv dist/*.msi Rare-${{ inputs.version }}.msi + mv dist/*.msi Rare-${{ inputs.version }}-${{ matrix.arch }}.msi - name: Upload artifact uses: actions/upload-artifact@v5 with: - name: Rare-${{ inputs.version }}.msi - path: Rare-${{ inputs.version }}.msi + name: Rare-${{ inputs.version }}-${{ matrix.arch }}.msi + path: Rare-${{ inputs.version }}-${{ matrix.arch }}.msi diff --git a/.github/workflows/artifacts.yml b/.github/workflows/artifacts.yml index 354ea208fb..e90208452f 100644 --- a/.github/workflows/artifacts.yml +++ b/.github/workflows/artifacts.yml @@ -152,4 +152,5 @@ jobs: uses: ./.github/workflows/_job_publish.yml with: version: ${{ inputs.prerelease && needs.version.outputs.version || github.ref_name }} - file1: Rare-${{ needs.version.outputs.version }}.msi + file1: Rare-${{ needs.version.outputs.version }}-x86_64.msi + file2: Rare-${{ needs.version.outputs.version }}-arm64.msi