Skip to content

Cyber Controller v1.0.0 — First Official Release #6

Cyber Controller v1.0.0 — First Official Release

Cyber Controller v1.0.0 — First Official Release #6

Workflow file for this run

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