Automatic firmware update for official trackers #3318
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: Build GUI | |
on: | |
push: | |
branches: | |
- main | |
paths: | |
- .github/workflows/build-gui.yml | |
- gui/** | |
- package*.json | |
pull_request: | |
paths: | |
- .github/workflows/build-gui.yml | |
- gui/** | |
- package*.json | |
workflow_dispatch: | |
create: | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: pnpm/action-setup@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: '.node-version' | |
cache: 'pnpm' | |
- name: Build | |
run: | | |
pnpm i | |
cd gui | |
pnpm run lint | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-22.04, windows-latest, macos-latest] | |
runs-on: ${{ matrix.os }} | |
env: | |
# Don't mark warnings as errors | |
CI: false | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- if: matrix.os == 'ubuntu-22.04' | |
name: Set up Linux dependencies | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: libgtk-3-dev webkit2gtk-4.1 libappindicator3-dev librsvg2-dev patchelf | |
# Increment to invalidate the cache | |
version: 1.0 | |
# Enables a workaround to attempt to run pre and post install scripts | |
execute_install_scripts: true | |
# Disables uploading logs as a build artifact | |
debug: false | |
- name: Cache cargo dependencies | |
uses: Swatinem/rust-cache@v2 | |
with: | |
shared-key: "${{ matrix.os }}" | |
- uses: pnpm/action-setup@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: '.node-version' | |
cache: 'pnpm' | |
- name: Build | |
shell: bash | |
run: | | |
pnpm i | |
pnpm run skipbundler --config $( ./gui/scripts/gitversion.mjs ) | |
- if: matrix.os == 'windows-latest' | |
name: Upload a Build Artifact (Windows) | |
uses: actions/upload-artifact@v4 | |
with: | |
# Artifact name | |
name: SlimeVR-GUI-Windows | |
# A file, directory or wildcard pattern that describes what to upload | |
path: target/release/slimevr.exe | |
- if: matrix.os == 'ubuntu-22.04' | |
name: Upload a Build Artifact (Linux) | |
uses: actions/upload-artifact@v4 | |
with: | |
# Artifact name | |
name: SlimeVR-GUI-Linux | |
# A file, directory or wildcard pattern that describes what to upload | |
path: target/release/slimevr | |
- if: matrix.os == 'macos-latest' | |
name: Upload a Build Artifact (macOS) | |
uses: actions/upload-artifact@v4 | |
with: | |
# Artifact name | |
name: SlimeVR-GUI-macOS | |
# A file, directory or wildcard pattern that describes what to upload | |
path: target/release/slimevr |