Skip to content

Commit 0da50d5

Browse files
committed
Add GitHub workflows and comprehensive tests
1 parent e3360f7 commit 0da50d5

25 files changed

+7074
-651
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
name: Bug Report
3+
about: Create a report to help us improve
4+
title: '[BUG] '
5+
labels: ['bug']
6+
assignees: ''
7+
---
8+
9+
## Bug Description
10+
A clear and concise description of what the bug is.
11+
12+
## Steps to Reproduce
13+
1. Go to '...'
14+
2. Click on '....'
15+
3. Scroll down to '....'
16+
4. See error
17+
18+
## Expected Behavior
19+
A clear and concise description of what you expected to happen.
20+
21+
## Actual Behavior
22+
A clear and concise description of what actually happened.
23+
24+
## Environment
25+
- OS: [e.g. Windows 11]
26+
- Node.js Version: [e.g. 20.5.0]
27+
- Browser: [e.g. Chrome 118]
28+
29+
## Screenshots
30+
If applicable, add screenshots to help explain your problem.
31+
32+
## Additional Context
33+
Add any other context about the problem here.
34+
35+
## Fix Checklist
36+
- [ ] Identify root cause
37+
- [ ] Create fix branch
38+
- [ ] Implement solution
39+
- [ ] Add regression tests
40+
- [ ] Verify fix works
41+
- [ ] Create pull request
42+
43+
---
44+
**Note:** This issue will be linked to a pull request when fix is implemented.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
name: Feature Request
3+
about: Suggest a new feature for the project
4+
title: '[FEATURE] '
5+
labels: ['enhancement']
6+
assignees: ''
7+
---
8+
9+
## Feature Description
10+
A clear and concise description of what feature you want to add.
11+
12+
## Problem Statement
13+
What problem does this feature solve?
14+
15+
## Proposed Solution
16+
Describe your proposed solution in detail.
17+
18+
## Implementation Plan
19+
- [ ] Create branch from main
20+
- [ ] Implement feature
21+
- [ ] Add tests
22+
- [ ] Update documentation
23+
- [ ] Create pull request
24+
25+
## Acceptance Criteria
26+
- [ ] Feature works as expected
27+
- [ ] Tests pass
28+
- [ ] Code is documented
29+
- [ ] No breaking changes
30+
31+
## Additional Context
32+
Add any other context, screenshots, or examples about the feature request here.
33+
34+
---
35+
**Note:** This issue will be linked to a pull request when implementation begins.

.github/pull_request_template.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Pull Request
2+
3+
## Related Issue
4+
Closes #[issue_number]
5+
6+
## Description
7+
Brief description of the changes made.
8+
9+
## Type of Change
10+
- [ ] Bug fix (non-breaking change which fixes an issue)
11+
- [ ] New feature (non-breaking change which adds functionality)
12+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
13+
- [ ] Documentation update
14+
- [ ] Code refactoring
15+
- [ ] Performance improvement
16+
17+
## Changes Made
18+
- List the main changes made
19+
- Be specific about what was modified
20+
- Include any new files created
21+
22+
## Testing
23+
- [ ] All existing tests pass
24+
- [ ] New tests added for this change
25+
- [ ] Manual testing completed
26+
- [ ] No console errors or warnings
27+
28+
## Test Results
29+
```
30+
npm test
31+
# Add test results here
32+
```
33+
34+
## Screenshots (if applicable)
35+
Add screenshots to help explain your changes.
36+
37+
## Checklist
38+
- [ ] My code follows the style guidelines of this project
39+
- [ ] I have performed a self-review of my own code
40+
- [ ] I have commented my code, particularly in hard-to-understand areas
41+
- [ ] I have made corresponding changes to the documentation
42+
- [ ] My changes generate no new warnings
43+
- [ ] I have added tests that prove my fix is effective or that my feature works
44+
- [ ] New and existing unit tests pass locally with my changes
45+
46+
## Additional Notes
47+
Any additional information that reviewers should know.

.github/workflows/ci.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: CI/CD Pipeline
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
13+
strategy:
14+
matrix:
15+
node-version: [18.x, 20.x]
16+
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@v4
20+
21+
- name: Setup Node.js ${{ matrix.node-version }}
22+
uses: actions/setup-node@v4
23+
with:
24+
node-version: ${{ matrix.node-version }}
25+
cache: 'npm'
26+
27+
- name: Install dependencies
28+
run: npm ci
29+
30+
- name: Run tests
31+
run: npm test
32+
33+
- name: Run build
34+
run: npm run build
35+
36+
- name: Upload coverage reports
37+
uses: codecov/codecov-action@v3
38+
if: matrix.node-version == '20.x'
39+
with:
40+
file: ./coverage/lcov.info
41+
fail_ci_if_error: false
42+
43+
lint:
44+
runs-on: ubuntu-latest
45+
46+
steps:
47+
- name: Checkout code
48+
uses: actions/checkout@v4
49+
50+
- name: Setup Node.js
51+
uses: actions/setup-node@v4
52+
with:
53+
node-version: '20.x'
54+
cache: 'npm'
55+
56+
- name: Install dependencies
57+
run: npm ci
58+
59+
- name: Check TypeScript types
60+
run: npx tsc --noEmit

.gitignore

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,17 @@ node_modules/
33
npm-debug.log*
44
yarn-debug.log*
55
yarn-error.log*
6+
lerna-debug.log*
67

78
# Build outputs
89
dist/
910
build/
11+
build/Release
1012

1113
# Environment variables
1214
.env
15+
.env.*
16+
!.env.example
1317
.env.local
1418
.env.development.local
1519
.env.test.local
@@ -19,6 +23,9 @@ build/
1923
logs
2024
*.log
2125

26+
# Diagnostic reports
27+
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
28+
2229
# Runtime data
2330
pids
2431
*.pid
@@ -27,10 +34,34 @@ pids
2734

2835
# Coverage directory used by tools like istanbul
2936
coverage/
37+
coverage
38+
*.lcov
39+
lib-cov
3040

3141
# nyc test coverage
3242
.nyc_output
3343

44+
# TypeScript cache
45+
*.tsbuildinfo
46+
47+
# Optional npm cache directory
48+
.npm
49+
50+
# Optional eslint cache
51+
.eslintcache
52+
53+
# Optional stylelint cache
54+
.stylelintcache
55+
56+
# Optional REPL history
57+
.node_repl_history
58+
59+
# Output of 'npm pack'
60+
*.tgz
61+
62+
# Yarn Integrity file
63+
.yarn-integrity
64+
3465
# Uploaded files
3566
uploads/*
3667
!uploads/.gitkeep
@@ -57,3 +88,81 @@ Thumbs.db
5788
# Temporary files
5889
*.tmp
5990
*.temp
91+
92+
# Grunt intermediate storage
93+
.grunt
94+
95+
# Bower dependency directory
96+
bower_components
97+
98+
# node-waf configuration
99+
.lock-wscript
100+
101+
# Dependency directories
102+
jspm_packages/
103+
104+
# Snowpack dependency directory
105+
web_modules/
106+
107+
# parcel-bundler cache
108+
.cache
109+
.parcel-cache
110+
111+
# Next.js build output
112+
.next
113+
out
114+
115+
# Nuxt.js build / generate output
116+
.nuxt
117+
118+
# Gatsby files
119+
.cache/
120+
121+
# vuepress build output
122+
.vuepress/dist
123+
124+
# vuepress v2.x temp and cache directory
125+
.temp
126+
127+
# Sveltekit cache directory
128+
.svelte-kit/
129+
130+
# vitepress build output
131+
**/.vitepress/dist
132+
133+
# vitepress cache directory
134+
**/.vitepress/cache
135+
136+
# Docusaurus cache and generated files
137+
.docusaurus
138+
139+
# Serverless directories
140+
.serverless/
141+
142+
# FuseBox cache
143+
.fusebox/
144+
145+
# DynamoDB Local files
146+
.dynamodb/
147+
148+
# Firebase cache directory
149+
.firebase/
150+
151+
# TernJS port file
152+
.tern-port
153+
154+
# Stores VSCode versions used for testing VSCode extensions
155+
.vscode-test
156+
157+
# yarn v3
158+
.pnp.*
159+
.yarn/*
160+
!.yarn/patches
161+
!.yarn/plugins
162+
!.yarn/releases
163+
!.yarn/sdks
164+
!.yarn/versions
165+
166+
# Vite logs files
167+
vite.config.js.timestamp-*
168+
vite.config.ts.timestamp-*

0 commit comments

Comments
 (0)