Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 425412dcbb |
+61
-25
@@ -12,9 +12,11 @@ on:
|
||||
- 'main'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
concurrency:
|
||||
group: modernization-${{ forgejo.workflow }}-${{ forgejo.event_name }}-${{ forgejo.ref }}
|
||||
group: modernization-${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
@@ -23,20 +25,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: https://code.forgejo.org/actions/checkout@v4
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Self-hosted Windows runner: use the Python already installed on the host.
|
||||
# actions/setup-python tries to modify machine-wide registry keys and needs
|
||||
# elevated rights on this runner.
|
||||
- name: Verify runner Python
|
||||
shell: powershell
|
||||
run: |
|
||||
$version = python -c "import platform; print(platform.python_version())"
|
||||
if ($LASTEXITCODE -ne 0) { throw "Python is not available on the runner PATH." }
|
||||
Write-Host "Runner Python: $version"
|
||||
if ($version -ne "3.12.10") {
|
||||
throw "Expected Python 3.12.10 on the self-hosted runner, found $version."
|
||||
}
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11.9'
|
||||
|
||||
- name: Install pinned build toolchain
|
||||
run: python -m pip install --disable-pip-version-check -r requirements-build.txt
|
||||
@@ -49,8 +43,14 @@ jobs:
|
||||
|
||||
# Direct pushes to test/** run validation only. PRs, main, tags and
|
||||
# explicit manual runs still validate a real Windows build.
|
||||
- name: Configure x86 MSVC
|
||||
if: ${{ github.event_name != 'push' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') }}
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: x86
|
||||
|
||||
- name: Prepare bundled remote fallbacks
|
||||
if: ${{ forgejo.event_name != 'push' || forgejo.ref == 'refs/heads/main' || startsWith(forgejo.ref, 'refs/tags/v') }}
|
||||
if: ${{ github.event_name != 'push' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') }}
|
||||
run: python scripts/prepare_remote_fallbacks.py
|
||||
|
||||
- name: Syntax check
|
||||
@@ -60,7 +60,7 @@ jobs:
|
||||
run: python -m unittest discover -s tests -v
|
||||
|
||||
- name: Build EXE
|
||||
if: ${{ forgejo.event_name != 'push' || forgejo.ref == 'refs/heads/main' || startsWith(forgejo.ref, 'refs/tags/v') }}
|
||||
if: ${{ github.event_name != 'push' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') }}
|
||||
run: >
|
||||
pyinstaller
|
||||
--noconsole
|
||||
@@ -73,15 +73,15 @@ jobs:
|
||||
setup_tool_responsive.py
|
||||
|
||||
- name: Verify EXE exists
|
||||
if: ${{ forgejo.event_name != 'push' || forgejo.ref == 'refs/heads/main' || startsWith(forgejo.ref, 'refs/tags/v') }}
|
||||
shell: powershell
|
||||
if: ${{ github.event_name != 'push' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') }}
|
||||
shell: pwsh
|
||||
run: |
|
||||
if (-not (Test-Path "dist/WoW_Modernization_Tool.exe")) { throw "Build output missing" }
|
||||
Get-Item "dist/WoW_Modernization_Tool.exe" | Format-List Name,Length,LastWriteTime
|
||||
|
||||
- name: Create ZIP package
|
||||
if: ${{ forgejo.event_name != 'push' || forgejo.ref == 'refs/heads/main' || startsWith(forgejo.ref, 'refs/tags/v') }}
|
||||
shell: powershell
|
||||
if: ${{ github.event_name != 'push' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') }}
|
||||
shell: pwsh
|
||||
run: |
|
||||
$zip = "dist/WoW_Modernization_Tool.zip"
|
||||
if (Test-Path $zip) { Remove-Item $zip -Force }
|
||||
@@ -89,11 +89,11 @@ jobs:
|
||||
if (-not (Test-Path $zip)) { throw "ZIP package missing" }
|
||||
Get-Item $zip | Format-List Name,Length,LastWriteTime
|
||||
|
||||
# Keep the finished EXE/ZIP available for manual release publishing.
|
||||
# Artifacts are uploaded for explicit manual runs and version tags.
|
||||
- name: Upload build artifact
|
||||
if: ${{ forgejo.event_name == 'workflow_dispatch' || startsWith(forgejo.ref, 'refs/tags/v') }}
|
||||
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
|
||||
# Ephemeral Actions artifacts are created only when explicitly requested.
|
||||
# Release tags publish their EXE/ZIP directly as GitHub Release assets.
|
||||
- name: Upload manual test artifact
|
||||
if: ${{ github.event_name == 'workflow_dispatch' }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: WoW_Modernization_Tool-test
|
||||
path: |
|
||||
@@ -101,3 +101,39 @@ jobs:
|
||||
dist/WoW_Modernization_Tool.zip
|
||||
if-no-files-found: error
|
||||
retention-days: 7
|
||||
|
||||
# One-time production promotion for v2.3. The exact commit message keeps
|
||||
# normal main pushes from publishing or modifying the v2.3 release.
|
||||
# Keep the Git tag aligned with the exact commit used to build the assets.
|
||||
- name: Synchronize Git tag v2.3
|
||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && github.event.head_commit.message == 'release v2.3' }}
|
||||
shell: pwsh
|
||||
run: |
|
||||
git config user.name "github-actions[bot]"
|
||||
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
git tag -f v2.3 "${{ github.sha }}"
|
||||
git push origin refs/tags/v2.3 --force
|
||||
|
||||
- name: Create GitHub Release v2.3
|
||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && github.event.head_commit.message == 'release v2.3' }}
|
||||
uses: softprops/action-gh-release@v3
|
||||
with:
|
||||
tag_name: v2.3
|
||||
target_commitish: ${{ github.sha }}
|
||||
files: |
|
||||
dist/WoW_Modernization_Tool.exe
|
||||
dist/WoW_Modernization_Tool.zip
|
||||
fail_on_unmatched_files: true
|
||||
overwrite_files: true
|
||||
name: "WoW Modernization Tool v2.3"
|
||||
body_path: RELEASE_NOTES.md
|
||||
generate_release_notes: false
|
||||
make_latest: true
|
||||
|
||||
- name: Create GitHub Release
|
||||
if: ${{ startsWith(github.ref, 'refs/tags/') && github.ref != 'refs/tags/v2.3' }}
|
||||
uses: softprops/action-gh-release@v3
|
||||
with:
|
||||
files: |
|
||||
dist/WoW_Modernization_Tool.exe
|
||||
dist/WoW_Modernization_Tool.zip
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"fallbacks": {
|
||||
"wowpresence": {
|
||||
"filename": "WowPresence.zip",
|
||||
"kind": "wowpresence_zip",
|
||||
"revision": "v1.3",
|
||||
"sha256": "9b2dca9c69b5ab3b6dae3ef3b3efc9671779a227802ebb6ac98cb22bc6ea448a",
|
||||
"size": 141423,
|
||||
"source": "https://octowow.st/git/Dusk/WowPresence/releases/download/v1.3/WowPresence.zip"
|
||||
}
|
||||
},
|
||||
"generated_for": "Modernization Tool release build",
|
||||
"schema": 1
|
||||
}
|
||||
@@ -1,5 +1,8 @@
|
||||
# 🛠️ WoW Modernization Tool
|
||||
|
||||
[](https://github.com/Dusk-92/Modernization-Tool/actions/workflows/build.yml)
|
||||
[](https://github.com/Dusk-92/Modernization-Tool/releases/latest)
|
||||
|
||||
A simple all-in-one setup tool for **Vanilla WoW 1.12 compatible clients**.
|
||||
|
||||
Modernization Tool installs and configures client fixes, performance plugins, Vanilla Tweaks, DXVK and optional visual/audio improvements without requiring users to manually manage DLLs or configuration files.
|
||||
@@ -12,7 +15,7 @@ Modernization Tool installs and configures client fixes, performance plugins, Va
|
||||
|
||||
Download the latest version from:
|
||||
|
||||
**[OctoGit Releases](https://octowow.st/git/Dusk/Modernization-Tool/releases)**
|
||||
**[GitHub Releases](https://github.com/Dusk-92/Modernization-Tool/releases/latest)**
|
||||
|
||||
No installation is required. Download and run:
|
||||
|
||||
@@ -86,7 +89,7 @@ Optional client-side improvements include:
|
||||
- **[MinimapIcons](https://codeberg.org/MarcelineVQ/WeirdUtils)** — adds TBC/WotLK-style minimap tracking icons for NPCs and game objects, with a combined tracking menu and saved preferences.
|
||||
- **[PNG Screenshots](https://codeberg.org/MarcelineVQ/WeirdUtils)** — saves screenshots as compressed PNG files instead of the default uncompressed TGA format, using background processing to minimize frame-time impact.
|
||||
- **[WorldMarkers](https://codeberg.org/MarcelineVQ/WeirdUtils)** — lets party or raid leaders place up to five animated, Cataclysm-style colored world markers for positioning and tactical planning.
|
||||
- **[Discord Rich Presence](https://octowow.st/git/Dusk/WowPresence)** — installs and keeps **WowPresence** up to date. The Tool preconfigures the OctoWoW Discord Application ID and lets you choose which character details are shown on Discord, including **Name, Guild, Race, Faction, Class, Level and Zone**. Custom Discord Application IDs are preserved across updates.
|
||||
- **[Discord Rich Presence](https://github.com/Dusk-92/WowPresence)** — installs and keeps **WowPresence** up to date. The Tool preconfigures the OctoWoW Discord Application ID and lets you choose which character details are shown on Discord, including **Name, Guild, Race, Faction, Class, Level and Zone**. Custom Discord Application IDs are preserved across updates.
|
||||
|
||||
---
|
||||
|
||||
@@ -236,7 +239,7 @@ Always download Modernization Tool from the official GitHub Releases page.
|
||||
|
||||
# 🔗 Useful Links
|
||||
|
||||
- **[Latest Release](https://octowow.st/git/Dusk/Modernization-Tool/releases)**
|
||||
- **[Latest Release](https://github.com/Dusk-92/Modernization-Tool/releases/latest)**
|
||||
- **[OctoWoW Installation & Modernization Guide](https://octowow.st/forum/viewtopic.php?t=831)**
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user