Files
swingmusic-extended/.github/workflows/desktop-ci.yml
T
Tomas Dvorak f3cc6ff1f3 update
2026-03-18 12:22:30 +01:00

173 lines
4.1 KiB
YAML

name: Desktop CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
test:
name: Test Suite
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies (ubuntu)
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
- name: Rust Cache
uses: swatinem/rust-cache@v2
with:
workspaces: "swingmusic-desktop -> target"
- name: Install Tauri CLI
run: npm install -g @tauri-apps/cli
- name: Install desktop dependencies
run: |
cd swingmusic-desktop
npm install
- name: Run tests
run: cd swingmusic-desktop && cargo test
build-linux:
name: Build Linux
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-unknown-linux-gnu
- name: Rust Cache
uses: swatinem/rust-cache@v2
with:
workspaces: "swingmusic-desktop -> target"
key: linux-x64
- name: Install Tauri CLI
run: npm install -g @tauri-apps/cli
- name: Install desktop dependencies
run: |
cd swingmusic-desktop
npm install
- name: Build the app
run: |
cd swingmusic-desktop
npm run tauri build -- --target x86_64-unknown-linux-gnu
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: swingmusic-desktop-linux-x64
path: |
swingmusic-desktop/target/x86_64-unknown-linux-gnu/release/bundle/
!swingmusic-desktop/target/x86_64-unknown-linux-gnu/release/bundle/.*/
retention-days: 30
build-windows:
name: Build Windows
runs-on: windows-latest
needs: test
steps:
- uses: actions/checkout@v4
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-pc-windows-msvc
- name: Rust Cache
uses: swatinem/rust-cache@v2
with:
workspaces: "swingmusic-desktop -> target"
key: windows-x64
- name: Install Tauri CLI
run: npm install -g @tauri-apps/cli
- name: Install desktop dependencies
run: |
cd swingmusic-desktop
npm install
- name: Build the app
run: |
cd swingmusic-desktop
npm run tauri build -- --target x86_64-pc-windows-msvc
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: swingmusic-desktop-windows-x64
path: |
swingmusic-desktop/target/x86_64-pc-windows-msvc/release/bundle/
!swingmusic-desktop/target/x86_64-pc-windows-msvc/release/bundle/.*/
retention-days: 30
build-macos:
name: Build macOS
runs-on: macos-latest
needs: test
steps:
- uses: actions/checkout@v4
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-apple-darwin
- name: Rust Cache
uses: swatinem/rust-cache@v2
with:
workspaces: "swingmusic-desktop -> target"
key: macos-x64
- name: Install Tauri CLI
run: npm install -g @tauri-apps/cli
- name: Install desktop dependencies
run: |
cd swingmusic-desktop
npm install
- name: Build the app
run: |
cd swingmusic-desktop
npm run tauri build -- --target x86_64-apple-darwin
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: swingmusic-desktop-macos-x64
path: |
swingmusic-desktop/target/x86_64-apple-darwin/release/bundle/
!swingmusic-desktop/target/x86_64-apple-darwin/release/bundle/.*/
retention-days: 30