| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- name: CI
- on:
- push:
- branches: [main]
- pull_request:
- branches: [main]
- workflow_dispatch:
- jobs:
- changes:
- name: Detect changes
- runs-on: ubuntu-22.04
- outputs:
- rust: ${{ github.event_name == 'workflow_dispatch' && 'true' || steps.filter.outputs.rust }}
- steps:
- - name: Checkout
- if: github.event_name != 'workflow_dispatch'
- uses: actions/checkout@v5
- with:
- fetch-depth: 0
- - name: Filter paths
- if: github.event_name != 'workflow_dispatch'
- uses: dorny/paths-filter@v4
- id: filter
- with:
- filters: |
- rust:
- - 'src-tauri/**'
- # PR / manual only. Merge to main already passed this on the PR;
- # do not compile the same debug tree again.
- check:
- name: Check Ubuntu
- needs: changes
- if: github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
- runs-on: ubuntu-22.04
- steps:
- - name: Checkout
- uses: actions/checkout@v5
- - name: Install Rust stable
- uses: dtolnay/rust-toolchain@stable
- - name: Install dependencies
- run: |
- sudo apt-get update
- sudo apt-get install -y curl libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf protobuf-compiler
- - name: Rust cache
- uses: Swatinem/rust-cache@v2
- with:
- workspaces: src-tauri
- cache-on-failure: true
- - name: Setup Node.js
- uses: actions/setup-node@v5
- with:
- node-version: 24
- cache: npm
- - name: Install frontend dependencies
- run: npm ci
- - name: Check frontend build
- run: npx vite build
- - name: Check Rust build
- working-directory: src-tauri
- run: cargo build
- check-windows:
- name: Check Windows (Rust)
- needs: changes
- if: >-
- (github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch') &&
- needs.changes.outputs.rust == 'true'
- runs-on: windows-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v5
- - name: Install Rust stable
- uses: dtolnay/rust-toolchain@stable
- - name: Install protoc
- uses: arduino/setup-protoc@v3
- with:
- repo-token: ${{ secrets.GITHUB_TOKEN }}
- - name: Rust cache
- uses: Swatinem/rust-cache@v2
- with:
- workspaces: src-tauri
- cache-on-failure: true
- - name: Check Rust build
- working-directory: src-tauri
- run: cargo build
|