Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: CI

on:
push:
branches: [main]
pull_request:

jobs:
quality-gates:
name: Quality gates
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: npm

- name: Install dependencies
run: npm ci

- name: Type check
run: npm run type-check

- name: Lint
run: npm run lint

- name: Test
run: npm test

- name: Build
run: npm run build
13 changes: 11 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ npm start
| `start` | `npm run start` | Start production server |
| `lint` | `npm run lint` | Run ESLint |
| `type-check` | `npm run type-check` | Run TypeScript type checking |
| `test` | `npm test` | Run the test suite (env-contract regression tests) |
| `test` | `npm test` | Run the unit test suite (Vitest) |
| `storybook` | `npm run storybook` | Launch Storybook component library |
| `build-storybook` | `npm run build-storybook` | Build Storybook for deployment |

Expand Down Expand Up @@ -250,8 +250,14 @@ We welcome contributions! Please follow these guidelines:

## 🧪 Testing

The project uses **Vitest** for unit tests. Tests live in `tests/` and cover
Stellar formatting/validation/error handling, the cache manager, the auth
and UI stores, and the image-upload utilities. Tests run in the Node
execution environment by default; the image-upload tests opt into jsdom
via a per-file pragma.

```bash
# Run the test suite (environment-contract regression tests)
# Run the unit test suite
npm test

# Run type checking
Expand All @@ -264,6 +270,9 @@ npm run lint
npm run storybook
```

CI (`.github/workflows/ci.yml`) runs type-check, lint, test, and build on
every push to `main` and on every pull request, with no required secrets.

---

## 📄 License
Expand Down
Loading