Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
open_collective: yumatech
buy_me_a_coffee: franciscorb
custom: ['https://yumatech.ru/donate/']
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: CI

on:
push:
branches: [main]
branches: [main, midnight]
pull_request:
branches: [main]
branches: [main, midnight]

jobs:
lint-and-test:
Expand Down
73 changes: 60 additions & 13 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
workflow_dispatch:
inputs:
tag:
description: "Tag to build (e.g. v1.0.0)"
description: "Tag to build (e.g. v3.0.0, v3.0.0-beta.1)"
required: true

permissions:
Expand All @@ -32,28 +32,36 @@ jobs:
- name: Build .exe
run: pyinstaller build.spec

- name: Package
- name: Package companion app
run: |
Compress-Archive -Path dist\WoWTranslator.exe -DestinationPath dist\WoWTranslator.zip
Compress-Archive -Path dist\BabelChat.exe -DestinationPath dist\BabelChat.zip

- name: Compute checksum
- name: Package addon for CurseForge
run: |
$hash = (Get-FileHash dist\WoWTranslator.zip -Algorithm SHA256).Hash
"$hash WoWTranslator.zip" | Out-File dist\checksums.txt -Encoding utf8
Compress-Archive -Path addon\BabelChat -DestinationPath dist\BabelChat-Addon.zip

- name: Compute checksums
run: |
$h1 = (Get-FileHash dist\BabelChat.zip -Algorithm SHA256).Hash
$h2 = (Get-FileHash dist\BabelChat-Addon.zip -Algorithm SHA256).Hash
"$h1 BabelChat.zip`n$h2 BabelChat-Addon.zip" | Out-File dist\checksums.txt -Encoding utf8

- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: release-package
path: |
dist/WoWTranslator.zip
dist/BabelChat.zip
dist/BabelChat-Addon.zip
dist/checksums.txt

release:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.tag || github.ref }}

- name: Download artifact
uses: actions/download-artifact@v4
Expand All @@ -64,24 +72,63 @@ jobs:
- name: Extract changelog
id: changelog
run: |
# Extract the latest version section from CHANGELOG.md
awk '/^## \[/{if(found) exit; found=1; next} found{print}' CHANGELOG.md > release_notes.md
echo "notes<<EOF" >> $GITHUB_OUTPUT
cat release_notes.md >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT

- name: Determine tag
- name: Determine tag and prerelease
id: tag
run: echo "tag=${{ github.event.inputs.tag || github.ref_name }}" >> $GITHUB_OUTPUT
run: |
TAG="${{ github.event.inputs.tag || github.ref_name }}"
echo "tag=$TAG" >> $GITHUB_OUTPUT
if [[ "$TAG" =~ -beta|-rc|-alpha ]]; then
echo "prerelease=true" >> $GITHUB_OUTPUT
else
echo "prerelease=false" >> $GITHUB_OUTPUT
fi

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.tag.outputs.tag }}
name: WoWTranslator ${{ steps.tag.outputs.tag }}
name: BabelChat ${{ steps.tag.outputs.tag }}
body: ${{ steps.changelog.outputs.notes }}
files: |
release/WoWTranslator.zip
release/BabelChat.zip
release/BabelChat-Addon.zip
release/checksums.txt
draft: false
prerelease: false
prerelease: ${{ steps.tag.outputs.prerelease == 'true' }}

# ── CurseForge Upload ──────────────────────────────────────
# Uncomment after creating project on CurseForge and adding secrets:
# CF_API_KEY: CurseForge API token (Authors > API Tokens)
#
# curseforge:
# needs: build
# runs-on: ubuntu-latest
# if: ${{ !contains(github.ref_name, '-beta') && !contains(github.ref_name, '-alpha') }}
# steps:
# - uses: actions/checkout@v4
# with:
# ref: ${{ github.event.inputs.tag || github.ref }}
#
# - name: Download addon artifact
# uses: actions/download-artifact@v4
# with:
# name: release-package
# path: release/
#
# - name: Upload to CurseForge
# uses: itsmeow/curseforge-upload@v3
# with:
# token: ${{ secrets.CF_API_KEY }}
# project_id: YOUR_PROJECT_ID_HERE
# game_endpoint: wow
# file_path: release/BabelChat-Addon.zip
# display_name: "BabelChat ${{ github.ref_name }}"
# game_versions: "Retail,12.0.5"
# release_type: release
# changelog: "See https://github.com/Yumash/BabelChat/releases"
# changelog_type: text
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,9 @@ config.json
overlay_settings.json
settings_dialog_pos.json

# Logs
# Logs & lock files
*.log
*.lock

# Downloaded addons (research)
AutoChatLog/
Expand All @@ -41,3 +42,7 @@ dist/

# SQLite
*.db

# Source media (originals)
babelchat.jpg
20260319-*.mp4
35 changes: 35 additions & 0 deletions .pkgmeta
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package-as: BabelChat

enable-nolib-creation: no

move-folders:
addon/BabelChat: BabelChat

ignore:
- .git
- .github
- .gitignore
- .claude
- .claude-lib
- .frai
- .rag
- app
- assets
- build
- dist
- temp
- tests
- build.spec
- pyproject.toml
- requirements.txt
- CLAUDE.md
- "*.lock"
- "*.log"
- "*.pyc"
- __pycache__

manual-changelog:
filename: CHANGELOG.md
markup-type: markdown

license-output: LICENSE
Loading
Loading