Skip to content

Commit 3c3f3a4

Browse files
gnoviawanclaude
andcommitted
Initial commit
Co-Authored-By: Claude <noreply@anthropic.com>
0 parents  commit 3c3f3a4

File tree

194 files changed

+31013
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

194 files changed

+31013
-0
lines changed
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
name: PR Validation
2+
3+
on:
4+
pull_request:
5+
branches: [main, develop]
6+
7+
concurrency:
8+
group: ${{ github.workflow }}-${{ github.ref }}
9+
cancel-in-progress: true
10+
11+
jobs:
12+
pr-title-check:
13+
name: Validate PR Title
14+
runs-on: ubuntu-latest
15+
timeout-minutes: 5
16+
steps:
17+
- name: Check PR title follows conventional commits
18+
uses: amannn/action-semantic-pull-request@v5
19+
env:
20+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
21+
with:
22+
types: |
23+
feat
24+
fix
25+
docs
26+
style
27+
refactor
28+
perf
29+
test
30+
build
31+
ci
32+
chore
33+
revert
34+
requireScope: false
35+
subjectPattern: ^(?![A-Z]).+$
36+
subjectPatternError: |
37+
The subject "{subject}" must not start with an uppercase letter.
38+
Use lowercase like: "feat: add new feature"
39+
40+
validate:
41+
name: Lint, Typecheck & Test
42+
runs-on: ubuntu-latest
43+
timeout-minutes: 15
44+
steps:
45+
- name: Checkout
46+
uses: actions/checkout@v4
47+
48+
- name: Setup Bun
49+
uses: oven-sh/setup-bun@v2
50+
with:
51+
bun-version: latest
52+
53+
- name: Setup Node.js
54+
uses: actions/setup-node@v4
55+
with:
56+
node-version: 20
57+
58+
- name: Install dependencies
59+
run: bun install --frozen-lockfile
60+
61+
- name: Lint
62+
run: bun run lint
63+
64+
- name: Typecheck
65+
run: bun run typecheck
66+
67+
- name: Test
68+
run: bun run test
69+
70+
build-check:
71+
name: Verify Build
72+
needs: validate
73+
runs-on: ubuntu-latest
74+
timeout-minutes: 15
75+
steps:
76+
- name: Checkout
77+
uses: actions/checkout@v4
78+
79+
- name: Setup Bun
80+
uses: oven-sh/setup-bun@v2
81+
with:
82+
bun-version: latest
83+
84+
- name: Setup Node.js
85+
uses: actions/setup-node@v4
86+
with:
87+
node-version: 20
88+
89+
- name: Install dependencies
90+
run: bun install --frozen-lockfile
91+
92+
- name: Build (verify compilation)
93+
run: bun run build

.github/workflows/release.yml

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
changelog:
13+
name: Generate Changelog
14+
runs-on: ubuntu-latest
15+
timeout-minutes: 5
16+
outputs:
17+
release_body: ${{ steps.git-cliff.outputs.content }}
18+
is_prerelease: ${{ steps.check-prerelease.outputs.is_prerelease }}
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v4
22+
with:
23+
fetch-depth: 0
24+
25+
- name: Check if prerelease
26+
id: check-prerelease
27+
run: |
28+
if [[ "${{ github.ref_name }}" == *"-beta"* ]] || [[ "${{ github.ref_name }}" == *"-alpha"* ]] || [[ "${{ github.ref_name }}" == *"-rc"* ]]; then
29+
echo "is_prerelease=true" >> $GITHUB_OUTPUT
30+
else
31+
echo "is_prerelease=false" >> $GITHUB_OUTPUT
32+
fi
33+
34+
- name: Generate changelog
35+
id: git-cliff
36+
uses: orhun/git-cliff-action@v4
37+
with:
38+
config: cliff.toml
39+
args: --latest --strip header
40+
env:
41+
OUTPUT: CHANGELOG.md
42+
GITHUB_REPO: ${{ github.repository }}
43+
44+
build-windows:
45+
name: Build Windows
46+
needs: changelog
47+
runs-on: windows-latest
48+
timeout-minutes: 30
49+
steps:
50+
- name: Checkout
51+
uses: actions/checkout@v4
52+
53+
- name: Setup Bun
54+
uses: oven-sh/setup-bun@v2
55+
with:
56+
bun-version: latest
57+
58+
- name: Setup Node.js
59+
uses: actions/setup-node@v4
60+
with:
61+
node-version: 20
62+
63+
- name: Install dependencies
64+
run: bun install --frozen-lockfile
65+
66+
- name: Build Windows
67+
run: bun run build:win
68+
69+
- name: Upload Windows artifacts
70+
uses: actions/upload-artifact@v4
71+
with:
72+
name: windows-builds
73+
path: |
74+
dist/*.exe
75+
dist/*.zip
76+
retention-days: 1
77+
if-no-files-found: error
78+
79+
build-linux:
80+
name: Build Linux
81+
needs: changelog
82+
runs-on: ubuntu-latest
83+
timeout-minutes: 30
84+
steps:
85+
- name: Checkout
86+
uses: actions/checkout@v4
87+
88+
- name: Setup Bun
89+
uses: oven-sh/setup-bun@v2
90+
with:
91+
bun-version: latest
92+
93+
- name: Setup Node.js
94+
uses: actions/setup-node@v4
95+
with:
96+
node-version: 20
97+
98+
- name: Install dependencies
99+
run: bun install --frozen-lockfile
100+
101+
- name: Build Linux
102+
run: bun run build:linux
103+
104+
- name: Upload Linux artifacts
105+
uses: actions/upload-artifact@v4
106+
with:
107+
name: linux-builds
108+
path: |
109+
dist/*.AppImage
110+
dist/*.deb
111+
retention-days: 1
112+
if-no-files-found: error
113+
114+
publish:
115+
name: Publish Release
116+
needs: [changelog, build-windows, build-linux]
117+
runs-on: ubuntu-latest
118+
timeout-minutes: 10
119+
steps:
120+
- name: Download Windows artifacts
121+
uses: actions/download-artifact@v4
122+
with:
123+
name: windows-builds
124+
path: dist/
125+
126+
- name: Download Linux artifacts
127+
uses: actions/download-artifact@v4
128+
with:
129+
name: linux-builds
130+
path: dist/
131+
132+
- name: Create GitHub Release
133+
uses: softprops/action-gh-release@v2
134+
with:
135+
body: ${{ needs.changelog.outputs.release_body }}
136+
prerelease: ${{ needs.changelog.outputs.is_prerelease == 'true' }}
137+
files: |
138+
dist/*
139+
env:
140+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Dependencies
2+
node_modules/
3+
4+
# Build outputs
5+
dist/
6+
dist-ssr/
7+
out/
8+
*.tsbuildinfo
9+
10+
# Logs
11+
logs/
12+
*.log
13+
npm-debug.log*
14+
yarn-debug.log*
15+
yarn-error.log*
16+
pnpm-debug.log*
17+
18+
# Editor directories and files
19+
.vscode/*
20+
!.vscode/extensions.json
21+
.idea/
22+
.DS_Store
23+
*.suo
24+
*.ntvs*
25+
*.njsproj
26+
*.sln
27+
*.sw?
28+
*.local
29+
30+
# Claude Code cache
31+
.claude/
32+
33+
# Windows null file artifact
34+
nul
35+
/_bmad-output
36+
/_bmad
37+
/.github/agents

.prettierrc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"semi": false,
3+
"singleQuote": true,
4+
"trailingComma": "none",
5+
"printWidth": 100,
6+
"tabWidth": 2
7+
}

0 commit comments

Comments
 (0)