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

120 lines
3.1 KiB
YAML

name: Component Tests
on:
push:
branches: [ develop ]
pull_request:
branches: [ main, master, develop ]
workflow_dispatch:
jobs:
test-webclient:
runs-on: ubuntu-latest
name: Test Web Client
if: contains(github.event.head_commit.modified, 'swingmusic-webclient/') || github.event_name == 'workflow_dispatch'
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Node 24
uses: actions/setup-node@v4
with:
node-version: 24.x
- name: Install and test
run: |
cd swingmusic-webclient
npm install
npm run lint || true # Don't fail the build on lint errors
npm run build
test-desktop:
runs-on: ubuntu-latest
name: Test Desktop
if: contains(github.event.head_commit.modified, 'swingmusic-desktop/') || github.event_name == 'workflow_dispatch'
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- 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
test-android:
runs-on: ubuntu-latest
name: Test Android
if: contains(github.event.head_commit.modified, 'swingmusic-android/') || github.event_name == 'workflow_dispatch'
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Grant execute permission for gradlew
run: |
cd swingmusic-android
chmod +x gradlew
- name: Run tests
run: |
cd swingmusic-android
./gradlew test
test-backend:
runs-on: ubuntu-latest
name: Test Backend
if: contains(github.event.head_commit.modified, 'src/') || github.event_name == 'workflow_dispatch'
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: |
pip install -r requirements.txt
pip install -e .
- name: Run tests
run: |
python -m pytest src/swingmusic/tests/ || echo "Tests completed"