mirror of
https://github.com/nimbold/Firelink.git
synced 2026-07-26 12:08:27 +00:00
81 lines
2.2 KiB
YAML
81 lines
2.2 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches: [main]
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
frontend:
|
|
name: Frontend checks
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
submodules: recursive
|
|
- uses: actions/setup-node@v6
|
|
with:
|
|
node-version: 22
|
|
cache: npm
|
|
- run: npm ci
|
|
- run: node --test scripts/*.node-test.js
|
|
- run: npm test -- --run
|
|
- run: npm run build
|
|
|
|
desktop:
|
|
name: Desktop checks (${{ matrix.target }})
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- os: macos-latest
|
|
target: aarch64-apple-darwin
|
|
- os: windows-latest
|
|
target: x86_64-pc-windows-msvc
|
|
- os: ubuntu-22.04
|
|
target: x86_64-unknown-linux-gnu
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
submodules: recursive
|
|
- uses: actions/setup-node@v6
|
|
with:
|
|
node-version: 22
|
|
cache: npm
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
targets: ${{ matrix.target }}
|
|
- name: Install Linux dependencies
|
|
if: runner.os == 'Linux'
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y \
|
|
libwebkit2gtk-4.1-dev \
|
|
libappindicator3-dev \
|
|
librsvg2-dev \
|
|
patchelf \
|
|
libdbus-1-dev \
|
|
pkg-config
|
|
- run: npm ci
|
|
- name: Test Rust backend
|
|
if: runner.os != 'Windows'
|
|
working-directory: src-tauri
|
|
run: cargo test --all-targets --target ${{ matrix.target }}
|
|
- name: Test Rust backend
|
|
if: runner.os == 'Windows'
|
|
working-directory: src-tauri
|
|
run: |
|
|
cargo test --tests --target ${{ matrix.target }}
|
|
cargo test --lib --no-run --target ${{ matrix.target }}
|
|
- name: Provision locked engines
|
|
if: runner.os != 'macOS'
|
|
run: node scripts/provision-engines.js --target ${{ matrix.target }}
|
|
- name: Stage and verify engines
|
|
run: |
|
|
node scripts/stage-engines.js --target ${{ matrix.target }}
|
|
node scripts/verify-binaries.js --staged --target ${{ matrix.target }}
|