Cyber Controller v1.0.0 — First Official Release #6
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build & Release | |
| on: | |
| release: | |
| types: [published] | |
| permissions: | |
| contents: write | |
| jobs: | |
| build-windows: | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install pyinstaller | |
| pip install . | |
| - name: Build executable | |
| shell: cmd | |
| run: | | |
| pyinstaller --onefile --windowed --name cyber-controller ^ | |
| --add-data "src/config/profiles;src/config/profiles" ^ | |
| --hidden-import serial --hidden-import serial.tools.list_ports ^ | |
| --hidden-import PyQt5 --hidden-import PyQt5.sip ^ | |
| src/app.py | |
| - name: Rename binary | |
| shell: cmd | |
| run: | | |
| move dist\cyber-controller.exe dist\cyber-controller-${{ github.event.release.tag_name }}-windows-x64.exe | |
| - name: Upload release asset | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: dist/cyber-controller-${{ github.event.release.tag_name }}-windows-x64.exe | |
| build-linux: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install system deps | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libegl1 libxkbcommon0 | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install pyinstaller | |
| pip install . | |
| - name: Build executable | |
| run: | | |
| pyinstaller --onefile --name cyber-controller \ | |
| --add-data "src/config/profiles:src/config/profiles" \ | |
| --hidden-import serial --hidden-import serial.tools.list_ports \ | |
| --hidden-import PyQt5 --hidden-import PyQt5.sip \ | |
| src/app.py | |
| - name: Rename binary | |
| run: | | |
| mv dist/cyber-controller dist/cyber-controller-${{ github.event.release.tag_name }}-linux-x64 | |
| chmod +x dist/cyber-controller-${{ github.event.release.tag_name }}-linux-x64 | |
| - name: Upload release asset | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: dist/cyber-controller-${{ github.event.release.tag_name }}-linux-x64 | |
| build-linux-arm: | |
| runs-on: ubuntu-latest | |
| # ARM/QEMU build is best-effort (slow, PyQt5 ARM wheel dependent) — never fail the release on it. | |
| continue-on-error: true | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: docker/setup-qemu-action@v3 | |
| with: | |
| platforms: arm64 | |
| - name: Build with QEMU | |
| run: | | |
| docker run --rm --platform linux/arm64 \ | |
| -v ${{ github.workspace }}:/workspace \ | |
| -w /workspace \ | |
| python:3.12-slim bash -c " | |
| apt-get update && apt-get install -y binutils libegl1 libxkbcommon0 && \ | |
| pip install pyinstaller && \ | |
| pip install . && \ | |
| pyinstaller --onefile --name cyber-controller \ | |
| --add-data 'src/config/profiles:src/config/profiles' \ | |
| --hidden-import serial --hidden-import serial.tools.list_ports \ | |
| src/app.py && \ | |
| mv dist/cyber-controller dist/cyber-controller-${{ github.event.release.tag_name }}-linux-arm64 && \ | |
| chmod +x dist/cyber-controller-${{ github.event.release.tag_name }}-linux-arm64 | |
| " | |
| - name: Upload release asset | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: dist/cyber-controller-${{ github.event.release.tag_name }}-linux-arm64 | |
| build-macos: | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install pyinstaller | |
| pip install . | |
| - name: Build executable | |
| run: | | |
| pyinstaller --onefile --windowed --name cyber-controller \ | |
| --add-data "src/config/profiles:src/config/profiles" \ | |
| --hidden-import serial --hidden-import serial.tools.list_ports \ | |
| --hidden-import PyQt5 --hidden-import PyQt5.sip \ | |
| src/app.py | |
| - name: Rename binary | |
| run: | | |
| mv dist/cyber-controller dist/cyber-controller-${{ github.event.release.tag_name }}-macos-arm64 | |
| chmod +x dist/cyber-controller-${{ github.event.release.tag_name }}-macos-arm64 | |
| - name: Upload release asset | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: dist/cyber-controller-${{ github.event.release.tag_name }}-macos-arm64 |