diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..91e1f97 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,24 @@ +name: CI + +on: + pull_request: + branches: [main] + push: + branches: [main] + +jobs: + lint-format-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: jdx/mise-action@v2 + + - name: Lint + run: mise run lint + + - name: Format check + run: mise run format + + - name: Test + run: mise run test diff --git a/frontend/biome.json b/frontend/biome.json new file mode 100644 index 0000000..8378fd3 --- /dev/null +++ b/frontend/biome.json @@ -0,0 +1,24 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "organizeImports": { + "enabled": true + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true + } + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 2, + "lineWidth": 100 + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "trailingCommas": "es5" + } + } +} diff --git a/frontend/package.json b/frontend/package.json index 573cec9..09d8e1c 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -6,7 +6,11 @@ "scripts": { "dev": "vite", "build": "vite build", - "lint": "eslint .", + "lint": "biome check src", + "lint:fix": "biome check --write src", + "format": "biome format src", + "format:write": "biome format --write src", + "test": "echo 'No tests configured'", "preview": "vite preview" }, "dependencies": { @@ -15,6 +19,7 @@ "react-router-dom": "7.1.5" }, "devDependencies": { + "@biomejs/biome": "^1.9.4", "@types/react": "^19.0.8", "@types/react-dom": "^19.0.3", "@vitejs/plugin-react": "^4.3.4", diff --git a/mise.toml b/mise.toml new file mode 100644 index 0000000..6bfe046 --- /dev/null +++ b/mise.toml @@ -0,0 +1,14 @@ +[tools] +node = "22" + +[tasks.install] +run = "make install" + +[tasks.lint] +run = "cd frontend && yarn install --immutable && yarn lint" + +[tasks.format] +run = "cd frontend && yarn install --immutable && yarn format:write" + +[tasks.test] +run = "cd frontend && yarn test"