Replace PySimpleGUI with Tkinter for Python GUI #358
Workflow file for this run
This file contains 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: Software | |
on: | |
push: | |
branches: | |
- main | |
- dev-* | |
paths-ignore: | |
- 'b1display/**' | |
- 'c1minimal/**' | |
- 'fl16-inputmodules/**' | |
- 'ledmatrix/**' | |
pull_request: | |
branches: | |
- '*' | |
paths-ignore: | |
- 'b1display/**' | |
- 'c1minimal/**' | |
- 'fl16-inputmodules/**' | |
- 'ledmatrix/**' | |
env: | |
CARGO_TERM_COLOR: always | |
CARGO_NET_GIT_FETCH_WITH_CLI: true | |
jobs: | |
# Enable later | |
#freebsd-cross-build: | |
# name: Cross-Build for FreeBSD | |
# runs-on: 'ubuntu-22.04' | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - name: Setup Rust toolchain | |
# run: rustup show | |
# - name: Install cross compilation tool | |
# run: cargo install cross | |
# - name: Build FreeBSD tool | |
# run: cross build --target=x86_64-unknown-freebsd | |
# - name: Upload FreeBSD App | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: qmk_hid_freebsd | |
# path: target/x86_64-unknown-freebsd/debug/qmk_hid | |
build: | |
name: Build Linux | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libudev-dev libasound2-dev | |
- name: Setup Rust toolchain | |
run: rustup show | |
- run: cargo install cargo-make | |
- name: Build Linux tool | |
run: cargo make --cwd inputmodule-control build-release | |
- name: Check if Linux tool can start | |
run: cargo make --cwd inputmodule-control run -- --help | grep 'RAW HID and VIA commandline' | |
- name: Upload Linux tool | |
uses: actions/upload-artifact@v4 | |
with: | |
name: inputmodule-control | |
path: target/x86_64-unknown-linux-gnu/release/inputmodule-control | |
build-windows: | |
name: Build Windows | |
runs-on: windows-2022 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Rust toolchain | |
run: rustup show | |
- run: cargo install cargo-make | |
- name: Build Windows tool | |
run: cargo make --cwd inputmodule-control build-release | |
- name: Check if Windows tool can start | |
run: cargo make --cwd inputmodule-control run -- --help | grep 'RAW HID and VIA commandline' | |
- name: Upload Windows App | |
uses: actions/upload-artifact@v4 | |
with: | |
name: inputmodule-control.exe | |
path: target/x86_64-pc-windows-msvc/release/inputmodule-control.exe | |
# Or manually with | |
# pyinstaller --onefile --windowed --add-data 'res;res' ledmatrix_control.py | |
build-gui: | |
name: Build GUI | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download releases to bundle | |
run: | | |
mkdir releases | |
mkdir releases\0.2.0 | |
Invoke-WebRequest -Uri https://github.com/FrameworkComputer/inputmodule-rs/releases/download/v0.2.0/ledmatrix.uf2 -OutFile releases\0.2.0\ledmatrix.uf2 | |
# To run locally, need to make sure to include the pywin32 DLL | |
# pyinstaller --onefile, --name "python/inputmodule/cli.py", --windowed, --add-data "releases;releases" --path C:\users\skype\appdata\local\packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\localcache\local-packages\Python312\site-packages\pywin32_system32 --add-data 'res;res' -p python/inputmodule python/inputmodule/cli.py | |
- name: Create Executable | |
uses: JohnAZoidberg/pyinstaller-action@dont-clean | |
with: | |
python_ver: '3.12' | |
spec: python/inputmodule/cli.py #'src/build.spec' | |
requirements: 'python/requirements.txt' | |
upload_exe_with_name: 'ledmatrixgui.exe' | |
options: --onefile, --name "ledmatrixgui", --windowed, --add-data "releases;releases" --add-data 'res;res' -p python/inputmodule | |
package-python: | |
name: Package Python | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- run: | | |
cd python | |
python3 -m pip install --upgrade build | |
python3 -m pip install --upgrade hatch | |
python3 -m pip install --upgrade twine | |
python3 -m build | |
lints: | |
name: Lints | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libudev-dev libasound2-dev | |
- name: Setup Rust toolchain | |
run: rustup show | |
- run: cargo install cargo-make | |
- name: Run cargo fmt | |
run: cargo fmt -p inputmodule-control -- --check | |
- name: Run cargo clippy | |
run: cargo make clippy --cwd inputmodule-control |