summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Zhineng <[email protected]>2025-07-23 21:37:25 +0800
committerLi Zhineng <[email protected]>2025-07-23 21:37:25 +0800
commitf60b43b4d09345e3a78e75397fe29c3ee2fb2655 (patch)
tree375ec28708e0d3df2afb4c0d66fb46faf379deaf
parentc83cd9faf5f1de957c0905964d8e44ee6b376003 (diff)
downloadwave-f60b43b4d09345e3a78e75397fe29c3ee2fb2655.tar.gz
wave-f60b43b4d09345e3a78e75397fe29c3ee2fb2655.zip
add CI
-rw-r--r--.github/workflows/ci.yml51
-rw-r--r--package.json6
2 files changed, 56 insertions, 1 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..1b7ad46
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,51 @@
+name: CI
+
+on:
+ push:
+ pull_request:
+ branches: [main]
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+
+ strategy:
+ matrix:
+ node-version: [22.x]
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Setup Node.js ${{ matrix.node-version }}
+ uses: actions/setup-node@v4
+ with:
+ node-version: ${{ matrix.node-version }}
+ cache: 'npm'
+
+ - name: Install dependencies
+ run: npm ci
+
+ - name: Build project
+ run: npm run build
+
+ - name: Run unit tests
+ run: npm test
+
+ - name: Run type tests
+ run: npm run test:types
+
+ - name: Check code formatting
+ run: npm run format:check
+
+ - name: Check build artifacts
+ run: |
+ if [ ! -f "dist/index.js" ]; then
+ echo "❌ Main build artifact missing: dist/index.js"
+ exit 1
+ fi
+ if [ ! -f "dist/index.d.ts" ]; then
+ echo "❌ Type definitions missing: dist/index.d.ts"
+ exit 1
+ fi
+ echo "✅ All build artifacts present"
diff --git a/package.json b/package.json
index e4f0298..ac8c408 100644
--- a/package.json
+++ b/package.json
@@ -24,7 +24,11 @@
"test": "jest",
"test:watch": "jest --watch",
"test:types": "tsd --files tests/**/*.test-d.ts",
- "format": "prettier --write --cache ."
+ "test:all": "npm run test && npm run test:types",
+ "format": "prettier --write --cache .",
+ "format:check": "prettier --check .",
+ "clean": "rm -rf dist",
+ "prepublishOnly": "npm run clean && npm run build && npm run test:all"
},
"devDependencies": {
"@types/jest": "^30.0.0",