diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..7ab5970 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,32 @@ +name: Continuous Integration + +on: + pull_request: + branches: + - main + +env: + CARGO_TERM_COLOR: always + +jobs: + ci-server: + name: Run CI for server + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 10 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 23 + cache: 'pnpm' + cache-dependency-path: 'server/pnpm-lock.yaml' + - name: Setup Rust + # TODO: consider caching: https://github.com/marketplace/actions/rust-cache + run: cd server/src-backend/ && rustup update + - name: Run checks + run: cd server && pnpm install --frozen-lockfile && pnpm lint + diff --git a/server/package.json b/server/package.json index 862b65a..f9565ea 100644 --- a/server/package.json +++ b/server/package.json @@ -10,7 +10,9 @@ "build": "npm run build:js && npm run build:rust", "build:js": "tsc && vite build", "build:rust": "cd src-backend && cargo build --release", - "lint": "eslint src/" + "lint": "npm run lint:js && npm run lint:rust", + "lint:js": "eslint src/", + "lint:rust": "cd src-backend && cargo check" }, "dependencies": { "@react-three/drei": "^9.121.4", diff --git a/server/src/DapvizProvider.tsx b/server/src/DapvizProvider.tsx index 928f26c..a12bf0f 100644 --- a/server/src/DapvizProvider.tsx +++ b/server/src/DapvizProvider.tsx @@ -1,3 +1,4 @@ +/* eslint-disable react-refresh/only-export-components -- if this file gets changed, we don't care about fast refresh */ import { createContext, ReactElement, ReactNode, useContext, useEffect, useState } from "react"; // align these values with `impl TryFrom for UserRequest` block diff --git a/server/src/components/default/theme.tsx b/server/src/components/default/theme.tsx index 19b56ab..8f5f997 100644 --- a/server/src/components/default/theme.tsx +++ b/server/src/components/default/theme.tsx @@ -1,3 +1,4 @@ +/* eslint-disable react-refresh/only-export-components */ import { basedOnPreferredColorScheme, DefaultProperties, DefaultPropertiesProperties } from '@react-three/uikit' import { Color } from 'three'