diff --git a/.github/workflows/build-windows-exe.yml b/.github/workflows/build-windows-exe.yml new file mode 100644 index 0000000..d133c12 --- /dev/null +++ b/.github/workflows/build-windows-exe.yml @@ -0,0 +1,48 @@ +name: Build Windows exe + +on: + push: + branches: [main] + pull_request: + workflow_dispatch: + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + - name: Run self-tests + run: python -m unittest tests.test_conjure tests.test_wizard -v + + build-windows: + # Only build+publish on an actual push to main (or a manual trigger) — + # never on a PR branch, so pull requests don't spam the release. + if: github.event_name != 'pull_request' + needs: test + runs-on: windows-latest + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + - name: Install PyInstaller + run: pip install pyinstaller + - name: Build conjure.exe + run: pyinstaller --onefile --noconsole conjure.py + - name: Publish latest build + uses: softprops/action-gh-release@v2 + with: + tag_name: latest-build + name: Latest build + make_latest: true + files: dist/conjure.exe + body: | + Automatically built from the latest `main` (commit ${{ github.sha }}). + This is not a versioned release — it always reflects whatever is + currently on `main`. Download `conjure.exe` below and run it directly; + no Python install needed. diff --git a/README.md b/README.md index 9600f9a..d6cd552 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,14 @@ creature models. It automates binary edits to `.m2` model files and `.dbc` datab you'd otherwise do by hand in a hex editor. It's pure, deterministic file manipulation — no machine learning, no network access, nothing leaves your machine. -## Requirements +## Windows: just want a double-clickable app? + +Grab the always-up-to-date prebuilt `conjure.exe` from the +**[latest release](../../releases/latest)** — no Python install needed. It's rebuilt +automatically by GitHub Actions every time `main` changes, so it never goes stale the way a +manually-committed `.exe` would. Download `conjure.exe` from that page and double-click it. + +## Requirements (running from source) - Python 3.7+ (Windows/macOS/Linux). Conjure's GUI uses `tkinter`, which ships with the standard Python installer on Windows and macOS. @@ -143,14 +150,19 @@ shows the re-parsed, resolved values. Output files land in a `conjure_output/` folder next to your input files. -## Building a Windows .exe +## Building a Windows .exe yourself + +Most people should just grab the [latest release](../../releases/latest) instead (see above) — +this is only for building your own copy, e.g. to test local changes: ``` pip install pyinstaller pyinstaller --onefile --noconsole conjure.py ``` -The resulting `conjure.exe` will be in `dist/`. +The resulting `conjure.exe` will be in `dist/`. Don't commit it to the repo — it goes stale the +moment `conjure.py` changes, which is exactly what the automated release build (see above) exists +to avoid. ## Running the self-tests diff --git a/conjure.exe b/conjure.exe deleted file mode 100644 index 0f135c0..0000000 Binary files a/conjure.exe and /dev/null differ diff --git a/conjure_config.json b/conjure_config.json deleted file mode 100644 index bd00b62..0000000 --- a/conjure_config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "display_floor": 90013, - "last_display_info_path": "C:/Users/User/Desktop/Work/DBFilesClient/CreatureDisplayInfo.dbc", - "last_m2_path": "C:/Users/User/wow.export/creature/velen2/velen2.m2", - "last_model_data_path": "C:/Users/User/Desktop/Work/DBFilesClient/CreatureModelData.dbc", - "last_model_name": "velen2", - "modeldata_floor": 91014 -} \ No newline at end of file