Complete rewrite of the NodeEngine
#195
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
permissions: | |
contents: read | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
name: test | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
name: ${{ matrix.layer }} / ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
layer: [client, server, packager] | |
os: [macos-latest, windows-latest, ubuntu-latest] | |
steps: | |
- name: Checkout codebase | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Determine changed files | |
id: client_changes | |
uses: tj-actions/changed-files@v43 | |
if: ${{ matrix.layer == 'client' }} | |
with: | |
files: src-client/ | |
- name: Determine changed files | |
id: server_changes | |
uses: tj-actions/changed-files@v43 | |
if: ${{ matrix.layer == 'server' }} | |
with: | |
files: src-csharp/ | |
- name: Determine changed files | |
id: packager_changes | |
uses: tj-actions/changed-files@v43 | |
if: ${{ matrix.layer == 'packager' }} | |
with: | |
files: src-tauri/ | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 21 | |
cache: "yarn" | |
- name: Setup Yarn | |
run: npm install --global yarn && yarn | |
- name: Setup .NET 8 | |
if: matrix.layer == 'server' || matrix.layer == 'packager' | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 8.0.100 | |
- name: Setup Rust | |
if: matrix.layer == 'packager' && steps.packager_changes.outputs.any_changed == 'true' | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
components: llvm-tools-preview | |
- name: Setup cargo-llvm-cov | |
if: matrix.layer == 'packager' && steps.packager_changes.outputs.any_changed == 'true' | |
uses: taiki-e/install-action@cargo-llvm-cov | |
- name: Generate Cargo.lock | |
if: matrix.layer == 'packager' && steps.packager_changes.outputs.any_changed == 'true' | |
run: cargo generate-lockfile | |
working-directory: ./src-tauri | |
- name: Install system dependencies | |
if: matrix.layer == 'packager' && steps.packager_changes.outputs.any_changed == 'true' | |
run: | | |
chmod +x ./scripts/deps.sh | |
./scripts/deps.sh | |
- name: Rust cache | |
if: matrix.layer == 'packager' && steps.packager_changes.outputs.any_changed == 'true' | |
uses: swatinem/rust-cache@v2 | |
with: | |
workspaces: "./src-tauri -> target" | |
- name: Install client dependencies | |
if: matrix.layer == 'client' && steps.client_changes.outputs.any_changed == 'true' | |
run: yarn | |
working-directory: ./src-client | |
- name: Install server dependencies | |
if: matrix.layer == 'server' && steps.server_changes.outputs.any_changed == 'true' | |
run: dotnet restore | |
working-directory: ./src-csharp | |
- name: Build client | |
if: (matrix.layer == 'client' && steps.client_changes.outputs.any_changed == 'true') || (matrix.layer == 'packager' && steps.packager_changes.outputs.any_changed == 'true') | |
run: yarn run build-client | |
- name: Build server | |
if: matrix.layer == 'server' && steps.server_changes.outputs.any_changed == 'true' | |
run: dotnet build --configuration Release | |
working-directory: ./src-csharp | |
- name: Test client | |
if: matrix.layer == 'client' && steps.client_changes.outputs.any_changed == 'true' | |
run: yarn run test-client | |
- name: Test server | |
if: matrix.layer == 'server' && steps.server_changes.outputs.any_changed == 'true' | |
run: yarn run test-server | |
- name: Configure sidecar | |
if: matrix.layer == 'packager' && steps.packager_changes.outputs.any_changed == 'true' | |
run: yarn run build-server | |
- name: Test packager | |
if: matrix.layer == 'packager' && steps.packager_changes.outputs.any_changed == 'true' | |
run: yarn run test-packager |