update release workflow for DiscoReaper
This commit is contained in:
parent
bb805c7cfe
commit
07fce69c51
5 changed files with 41 additions and 42 deletions
40
.github/workflows/release.yml
vendored
40
.github/workflows/release.yml
vendored
|
|
@ -13,17 +13,17 @@ jobs:
|
|||
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||
include:
|
||||
- os: ubuntu-latest
|
||||
artifact_name: server-shuttle-linux
|
||||
asset_name: server-shuttle-linux.zip
|
||||
executable_path: dist/server-shuttle
|
||||
artifact_name: disco-reaper-linux
|
||||
asset_name: disco-reaper-linux.zip
|
||||
executable_path: dist/DiscoReaper
|
||||
- os: windows-latest
|
||||
artifact_name: server-shuttle-windows
|
||||
asset_name: server-shuttle-windows.zip
|
||||
executable_path: dist/server-shuttle.exe
|
||||
artifact_name: disco-reaper-windows
|
||||
asset_name: disco-reaper-windows.zip
|
||||
executable_path: dist/DiscoReaper.exe
|
||||
- os: macos-latest
|
||||
artifact_name: server-shuttle-macos
|
||||
asset_name: server-shuttle-macos.zip
|
||||
executable_path: dist/server-shuttle
|
||||
artifact_name: disco-reaper-macos
|
||||
asset_name: disco-reaper-macos.zip
|
||||
executable_path: dist/DiscoReaper
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
|
|
@ -45,27 +45,27 @@ jobs:
|
|||
shell: python
|
||||
run: |
|
||||
from PIL import Image
|
||||
img = Image.open('server-shuttle-icon.png')
|
||||
img.save('server-shuttle-icon.ico', format='ICO', sizes=[(256, 256)])
|
||||
img = Image.open('disco-reaper-icon.png')
|
||||
img.save('disco-reaper-icon.ico', format='ICO', sizes=[(256, 256)])
|
||||
|
||||
- name: Build with PyInstaller
|
||||
run: |
|
||||
echo "Listing directory contents:"
|
||||
ls -R || dir /s
|
||||
pyinstaller server-shuttle.spec
|
||||
pyinstaller disco-reaper.spec
|
||||
|
||||
- name: Prepare Release Asset (Linux/MacOS)
|
||||
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
|
||||
run: |
|
||||
cp ${{ matrix.executable_path }} server-shuttle
|
||||
chmod +x server-shuttle
|
||||
zip ${{ matrix.asset_name }} server-shuttle
|
||||
cp ${{ matrix.executable_path }} DiscoReaper
|
||||
chmod +x DiscoReaper
|
||||
zip ${{ matrix.asset_name }} DiscoReaper
|
||||
|
||||
- name: Prepare Release Asset (Windows)
|
||||
if: matrix.os == 'windows-latest'
|
||||
run: |
|
||||
copy ${{ matrix.executable_path }} server-shuttle.exe
|
||||
powershell Compress-Archive -Path "server-shuttle.exe" -DestinationPath "${{ matrix.asset_name }}"
|
||||
copy ${{ matrix.executable_path }} DiscoReaper.exe
|
||||
powershell Compress-Archive -Path "DiscoReaper.exe" -DestinationPath "${{ matrix.asset_name }}"
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
|
|
@ -88,8 +88,8 @@ jobs:
|
|||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
files: |
|
||||
artifacts/server-shuttle-linux/server-shuttle-linux.zip
|
||||
artifacts/server-shuttle-windows/server-shuttle-windows.zip
|
||||
artifacts/server-shuttle-macos/server-shuttle-macos.zip
|
||||
artifacts/disco-reaper-linux/disco-reaper-linux.zip
|
||||
artifacts/disco-reaper-windows/disco-reaper-windows.zip
|
||||
artifacts/disco-reaper-macos/disco-reaper-macos.zip
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
|
|
|||
31
build.sh
31
build.sh
|
|
@ -3,7 +3,7 @@
|
|||
# Exit on error
|
||||
set -e
|
||||
|
||||
echo "--- Server Shuttle Cross-Distro Build Script ---"
|
||||
echo "--- Disco-Reaper Cross-Distro Build Script ---"
|
||||
echo "NOTE: For maximum compatibility (glibc), run this on your oldest target Linux distribution."
|
||||
|
||||
# Check for venv
|
||||
|
|
@ -38,32 +38,31 @@ echo "Cleaning previous build artifacts..."
|
|||
rm -rf build/ dist/
|
||||
|
||||
echo "Starting PyInstaller build..."
|
||||
pyinstaller --clean server-shuttle.spec
|
||||
pyinstaller --clean disco-reaper.spec
|
||||
|
||||
echo "Generating Launch-Shuttle.sh launcher..."
|
||||
cat << 'EOF' > dist/Launch-Shuttle.sh
|
||||
echo "Generating Launch-Reaper.sh launcher..."
|
||||
cat << 'EOF' > dist/Launch-Reaper.sh
|
||||
#!/bin/bash
|
||||
# Convenient launcher for Server Shuttle
|
||||
# Convenient launcher for Disco-Reaper
|
||||
# Ensures it runs in a terminal if possible, but the binary also has internal auto-terminal logic.
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
cd "$BASEDIR"
|
||||
|
||||
if [ -f "./server-shuttle" ]; then
|
||||
./server-shuttle
|
||||
if [ -f "./DiscoReaper" ]; then
|
||||
./DiscoReaper
|
||||
else
|
||||
echo "Error: server-shuttle binary not found in $(pwd)"
|
||||
echo "Error: DiscoReaper binary not found in $(pwd)"
|
||||
read -p "Press enter to exit..."
|
||||
fi
|
||||
EOF
|
||||
chmod +x dist/Launch-Shuttle.sh
|
||||
chmod +x dist/Launch-Reaper.sh
|
||||
|
||||
echo "Packaging release: server-shuttle-linux.zip..."
|
||||
cp config.example.yaml dist/
|
||||
echo "Packaging release: disco-reaper-linux.zip..."
|
||||
cd dist
|
||||
if command -v zip >/dev/null 2>&1; then
|
||||
zip -q server-shuttle-linux.zip server-shuttle Launch-Shuttle.sh config.example.yaml
|
||||
echo "Package created: dist/server-shuttle-linux.zip"
|
||||
zip -q disco-reaper-linux.zip DiscoReaper Launch-Reaper.sh
|
||||
echo "Package created: dist/disco-reaper-linux.zip"
|
||||
else
|
||||
echo "Warning: 'zip' command not found. Skipping zip creation."
|
||||
echo "Files available in dist/ directory."
|
||||
|
|
@ -72,7 +71,7 @@ cd ..
|
|||
|
||||
echo "-----------------------------------"
|
||||
echo "Build complete!"
|
||||
echo "Standalone executable: dist/server-shuttle"
|
||||
echo "Launcher script: dist/Launch-Shuttle.sh"
|
||||
echo "Release Package: dist/server-shuttle-linux.zip"
|
||||
echo "Standalone executable: dist/DiscoReaper"
|
||||
echo "Launcher script: dist/Launch-Reaper.sh"
|
||||
echo "Release Package: dist/disco-reaper-linux.zip"
|
||||
echo "---"
|
||||
|
|
|
|||
BIN
disco-reaper-icon.ico
Normal file
BIN
disco-reaper-icon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 304 KiB |
|
|
@ -13,15 +13,15 @@ hiddenimports += collect_submodules('rich._unicode_data')
|
|||
|
||||
# Determine the best icon to use
|
||||
icon_file = None
|
||||
if os.path.exists('server-shuttle-icon.ico'):
|
||||
icon_file = 'server-shuttle-icon.ico'
|
||||
elif os.path.exists('server-shuttle-icon.png'):
|
||||
icon_file = 'server-shuttle-icon.png'
|
||||
if os.path.exists('disco-reaper-icon.ico'):
|
||||
icon_file = 'disco-reaper-icon.ico'
|
||||
elif os.path.exists('disco-reaper-icon.png'):
|
||||
icon_file = 'disco-reaper-icon.png'
|
||||
|
||||
print(f"DEBUG: Selected icon_file = {icon_file}")
|
||||
|
||||
a = Analysis(
|
||||
['server-shuttle.py'],
|
||||
['disco-reaper.py'],
|
||||
pathex=[],
|
||||
binaries=[],
|
||||
datas=[],
|
||||
|
|
@ -42,7 +42,7 @@ exe = EXE(
|
|||
a.zipfiles,
|
||||
a.datas,
|
||||
[],
|
||||
name='server-shuttle',
|
||||
name='DiscoReaper',
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=False,
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 233 KiB |
Loading…
Add table
Reference in a new issue