Skip to content

Canonicalize skill identity and workflow persistence (#635) #894

Canonicalize skill identity and workflow persistence (#635)

Canonicalize skill identity and workflow persistence (#635) #894

Workflow file for this run

name: PR CI
on:
workflow_dispatch:
push:
branches:
- main
paths-ignore:
- '**/*.md'
- 'LICENSE'
permissions:
contents: read
jobs:
platform-linux:
name: platform-linux
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "lts/*"
cache: "npm"
cache-dependency-path: |
app/package-lock.json
- name: Install npm dependencies
working-directory: app
run: npm ci --prefer-offline --ignore-scripts
- name: Type check
working-directory: app
run: npx tsc --noEmit
- name: Install Tauri system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
with:
workspaces: "app/src-tauri -> target"
- name: Cargo test
working-directory: app/src-tauri
run: cargo test
- name: Clippy
working-directory: app/src-tauri
run: cargo clippy -- -D warnings
- name: Run codegen
working-directory: app
run: npm run codegen
- name: Check codegen freshness
run: |
git diff --exit-code app/src/generated/ app/src-tauri/src/generated/
platform-windows:
name: platform-windows
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "lts/*"
cache: "npm"
cache-dependency-path: |
app/package-lock.json
- name: Install npm dependencies
working-directory: app
run: npm ci --prefer-offline --ignore-scripts
- name: Type check
working-directory: app
run: npx tsc --noEmit
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
with:
workspaces: "app/src-tauri -> target"
- name: Cargo test
working-directory: app/src-tauri
run: cargo test
- name: Clippy
working-directory: app/src-tauri
run: cargo clippy -- -D warnings
platform-macos:
name: platform-macos
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "lts/*"
cache: "npm"
cache-dependency-path: |
app/package-lock.json
- name: Install npm dependencies
working-directory: app
run: npm ci --prefer-offline --ignore-scripts
- name: Type check
working-directory: app
run: npx tsc --noEmit
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
with:
workspaces: "app/src-tauri -> target"
- name: Cargo test
working-directory: app/src-tauri
run: cargo test
- name: Clippy
working-directory: app/src-tauri
run: cargo clippy -- -D warnings
frontend-unit:
name: frontend-unit
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "lts/*"
cache: "npm"
cache-dependency-path: app/package-lock.json
- name: Install npm dependencies
working-directory: app
run: npm ci --prefer-offline --ignore-scripts
- name: Unit tests
working-directory: app
run: npm run test:unit
- name: Guard tests
working-directory: app
run: npm run test:guard
frontend-integration:
name: frontend-integration
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "lts/*"
cache: "npm"
cache-dependency-path: app/package-lock.json
- name: Install npm dependencies
working-directory: app
run: npm ci --prefer-offline --ignore-scripts
- name: Integration tests
working-directory: app
run: npm run test:integration