Skip to content

try using Wine

try using Wine #1

name: Run CTT-Remote (Linux)
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
run-ctt-remote:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js 24
uses: actions/setup-node@v4
with:
node-version: '24'
cache: 'npm'
- name: Enable 32-bit architecture
run: |
sudo dpkg --add-architecture i386
sudo apt-get update
- name: Install 32-bit libraries for Z-Wave binaries
run: |
sudo apt-get install -y libc6:i386 libstdc++6:i386
- name: Install Wine
run: |
sudo apt-get install -y wine wine32
- name: Download and install Wine Mono
run: |
wget -q https://dl.winehq.org/wine/wine-mono/9.0.0/wine-mono-9.0.0-x86.msi -O /tmp/wine-mono.msi
# Initialize Wine prefix first
WINEDEBUG=-all wineboot --init
# Install Wine Mono
WINEDEBUG=-all wine msiexec /i /tmp/wine-mono.msi /qn
- name: Verify Wine setup
run: |
wine --version
WINEDEBUG=-all wine cmd /c echo "Wine is working"
- name: Extract appdata.tgz
run: tar -xzvf appdata.tgz
- name: Make Z-Wave binaries executable
run: chmod +x zwave_stack/*.elf
- name: Test Z-Wave binary
run: |
./zwave_stack/ZW_zwave_ncp_serial_api_controller_25_9_0_x86_REALTIME_DEBUG.elf --help
- name: Test CTT-Remote with Wine
run: |
cd CTT-Remote
WINEDEBUG=-all wine ./CTT-Remote.exe --help
- name: Install npm dependencies
run: npm install
- name: Start all services (native Z-Wave + Wine CTT-Remote + WebSocket server)
run: npm start
timeout-minutes: 60