Skip to content

v2.3.1

v2.3.1 #8

Workflow file for this run

name: Build MultiClaw
on:
release:
types: [created]
workflow_dispatch: # Manual trigger for testing
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
artifact_name: MultiClaw.exe
asset_name: MultiClaw-Windows.exe
- os: macos-latest
artifact_name: MultiClaw.app
asset_name: MultiClaw-macOS.zip
- os: ubuntu-latest
artifact_name: MultiClaw
asset_name: MultiClaw-Linux
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
# Linux-specific: Install Qt dependencies
- name: Install Linux dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y \
libxcb-cursor0 \
libxcb-xinerama0 \
libxkbcommon-x11-0 \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-randr0 \
libxcb-render-util0 \
libxcb-shape0 \
libegl1
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pyinstaller
- name: Build with PyInstaller
run: pyinstaller MultiClaw.spec
# Windows: Upload exe directly
- name: Upload Windows artifact
if: runner.os == 'Windows'
uses: actions/upload-artifact@v4
with:
name: MultiClaw-Windows
path: dist/MultiClaw.exe
# macOS: Zip the .app bundle and upload
- name: Package macOS app
if: runner.os == 'macOS'
run: |
cd dist
zip -r MultiClaw-macOS.zip MultiClaw.app
- name: Upload macOS artifact
if: runner.os == 'macOS'
uses: actions/upload-artifact@v4
with:
name: MultiClaw-macOS
path: dist/MultiClaw-macOS.zip
# Linux: Upload binary
- name: Upload Linux artifact
if: runner.os == 'Linux'
uses: actions/upload-artifact@v4
with:
name: MultiClaw-Linux
path: dist/MultiClaw
# Upload artifacts to release (only on release event)
upload-release:
needs: build
if: github.event_name == 'release'
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Upload to Release
uses: softprops/action-gh-release@v1
with:
files: |
artifacts/MultiClaw-Windows/MultiClaw.exe
artifacts/MultiClaw-macOS/MultiClaw-macOS.zip
artifacts/MultiClaw-Linux/MultiClaw
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}