From d6a7fd115963e56ccdb6b32ad32f4572bf7d469d Mon Sep 17 00:00:00 2001 From: zeyadhost Date: Wed, 29 Jul 2026 15:47:56 +0300 Subject: [PATCH 1/3] ci(build): add multi-platform build workflow --- .github/workflows/build.yml | 57 +++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..dc9864d --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,57 @@ +name: Build + +on: + push: + pull_request: + workflow_dispatch: + +jobs: + build: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + include: + - os: ubuntu-latest + artifact_name: Ghost-Linux + - os: macos-latest + artifact_name: Ghost-Mac + - os: windows-latest + artifact_name: Ghost-Windows + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: "3.10" + + - name: Install system deps (Linux) + if: runner.os == 'Linux' + run: sudo apt-get update && sudo apt-get install -y python3-tk + + - name: Create venv + run: python -m venv .venv + + - name: Install deps (Unix) + if: runner.os != 'Windows' + run: .venv/bin/pip install -r requirements.txt + + - name: Install deps (Windows) + if: runner.os == 'Windows' + run: .venv\Scripts\pip install -r requirements.txt + + - name: Build (Unix) + if: runner.os != 'Windows' + run: .venv/bin/python compile.py + + - name: Build (Windows) + if: runner.os == 'Windows' + run: .venv\Scripts\python compile.py + + - uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.artifact_name }} + path: dist/* From 027913870815bb2e83865d8a219819c66e9c103a Mon Sep 17 00:00:00 2001 From: zeyadhost Date: Wed, 29 Jul 2026 15:55:18 +0300 Subject: [PATCH 2/3] fix(build): set PYTHONIOENCODING=utf-8 on Windows for emoji prints --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dc9864d..e35631f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -49,6 +49,8 @@ jobs: - name: Build (Windows) if: runner.os == 'Windows' + env: + PYTHONIOENCODING: utf-8 run: .venv\Scripts\python compile.py - uses: actions/upload-artifact@v4 From 79fc7dad926b07e7783c53e418c9d97517ff1160 Mon Sep 17 00:00:00 2001 From: zeyadhost Date: Thu, 6 Aug 2026 15:23:53 +0000 Subject: [PATCH 3/3] Remove MacOS and Linux build job in GitHub Actions --- .github/workflows/build.yml | 39 +++++++------------------------------ 1 file changed, 7 insertions(+), 32 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e35631f..53a5413 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,20 +6,8 @@ on: workflow_dispatch: jobs: - build: - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - include: - - os: ubuntu-latest - artifact_name: Ghost-Linux - - os: macos-latest - artifact_name: Ghost-Mac - - os: windows-latest - artifact_name: Ghost-Windows - - runs-on: ${{ matrix.os }} + build-windows: + runs-on: windows-latest steps: - uses: actions/checkout@v4 @@ -28,32 +16,19 @@ jobs: with: python-version: "3.10" - - name: Install system deps (Linux) - if: runner.os == 'Linux' - run: sudo apt-get update && sudo apt-get install -y python3-tk - - name: Create venv run: python -m venv .venv - - name: Install deps (Unix) - if: runner.os != 'Windows' - run: .venv/bin/pip install -r requirements.txt - - - name: Install deps (Windows) - if: runner.os == 'Windows' + - name: Install dependencies run: .venv\Scripts\pip install -r requirements.txt - - name: Build (Unix) - if: runner.os != 'Windows' - run: .venv/bin/python compile.py - - - name: Build (Windows) - if: runner.os == 'Windows' + - name: Build env: PYTHONIOENCODING: utf-8 run: .venv\Scripts\python compile.py - - uses: actions/upload-artifact@v4 + - name: Upload Windows artifact + uses: actions/upload-artifact@v4 with: - name: ${{ matrix.artifact_name }} + name: Ghost-Windows path: dist/*