Skip to content

Commit 684cef3

Browse files
author
Bolt Llama Developer
committed
Add GitHub Actions workflows for CI/CD and automated releases
- Add release.yml: Multi-platform builds (macOS, Linux, Windows) - Add ci.yml: Continuous integration testing - Add RELEASE.md: Release process documentation - Add CHANGELOG.md: Version history tracking - Add WORKFLOW_SETUP.md: Setup instructions Workflows trigger on: - release.yml: Tag push (v*.*.*) - ci.yml: Push to master/main, pull requests Features: - Automated builds for all platforms - GitHub Release creation with artifacts - DMG, AppImage, DEB, and EXE installers - Parallel builds for faster releases
1 parent 4c57bef commit 684cef3

5 files changed

Lines changed: 793 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [master, main, develop]
6+
pull_request:
7+
branches: [master, main, develop]
8+
9+
jobs:
10+
test:
11+
name: Test on ${{ matrix.os }}
12+
runs-on: ${{ matrix.os }}
13+
14+
strategy:
15+
matrix:
16+
os: [macos-latest, ubuntu-latest, windows-latest]
17+
node-version: [18.x, 20.x]
18+
19+
steps:
20+
- name: Checkout code
21+
uses: actions/checkout@v4
22+
23+
- name: Setup Node.js ${{ matrix.node-version }}
24+
uses: actions/setup-node@v4
25+
with:
26+
node-version: ${{ matrix.node-version }}
27+
cache: 'npm'
28+
29+
- name: Install dependencies
30+
run: npm ci
31+
32+
- name: Run type checking
33+
run: npm run type-check
34+
35+
- name: Build project
36+
run: npm run build:vite
37+
38+
- name: Build Electron (test)
39+
run: npm run build:electron
40+
env:
41+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
42+
43+
lint:
44+
name: Lint and Format Check
45+
runs-on: ubuntu-latest
46+
47+
steps:
48+
- name: Checkout code
49+
uses: actions/checkout@v4
50+
51+
- name: Setup Node.js
52+
uses: actions/setup-node@v4
53+
with:
54+
node-version: '20'
55+
cache: 'npm'
56+
57+
- name: Install dependencies
58+
run: npm ci
59+
60+
- name: Run type checking
61+
run: npm run type-check

.github/workflows/release.yml

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
name: Build and Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*.*.*'
7+
8+
jobs:
9+
build:
10+
name: Build ${{ matrix.os }}
11+
runs-on: ${{ matrix.os }}
12+
13+
strategy:
14+
matrix:
15+
os: [macos-latest, ubuntu-latest, windows-latest]
16+
include:
17+
- os: macos-latest
18+
artifact_name: Bolt-Llama-*.dmg
19+
asset_name: Bolt-Llama-macOS
20+
- os: ubuntu-latest
21+
artifact_name: Bolt-Llama-*.AppImage
22+
asset_name: Bolt-Llama-Linux
23+
- os: windows-latest
24+
artifact_name: Bolt-Llama-Setup-*.exe
25+
asset_name: Bolt-Llama-Windows
26+
27+
steps:
28+
- name: Checkout code
29+
uses: actions/checkout@v4
30+
31+
- name: Setup Node.js
32+
uses: actions/setup-node@v4
33+
with:
34+
node-version: '20'
35+
cache: 'npm'
36+
37+
- name: Install dependencies
38+
run: npm ci
39+
40+
- name: Build Electron app
41+
run: npm run build
42+
env:
43+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
44+
45+
- name: Upload artifacts (macOS)
46+
if: matrix.os == 'macos-latest'
47+
uses: actions/upload-artifact@v4
48+
with:
49+
name: ${{ matrix.asset_name }}
50+
path: |
51+
release/*.dmg
52+
release/*.zip
53+
retention-days: 5
54+
55+
- name: Upload artifacts (Linux)
56+
if: matrix.os == 'ubuntu-latest'
57+
uses: actions/upload-artifact@v4
58+
with:
59+
name: ${{ matrix.asset_name }}
60+
path: |
61+
release/*.AppImage
62+
release/*.deb
63+
retention-days: 5
64+
65+
- name: Upload artifacts (Windows)
66+
if: matrix.os == 'windows-latest'
67+
uses: actions/upload-artifact@v4
68+
with:
69+
name: ${{ matrix.asset_name }}
70+
path: |
71+
release/*.exe
72+
retention-days: 5
73+
74+
release:
75+
name: Create Release
76+
needs: build
77+
runs-on: ubuntu-latest
78+
79+
steps:
80+
- name: Checkout code
81+
uses: actions/checkout@v4
82+
83+
- name: Download all artifacts
84+
uses: actions/download-artifact@v4
85+
with:
86+
path: artifacts
87+
88+
- name: Display structure of downloaded files
89+
run: ls -R artifacts
90+
91+
- name: Extract version from tag
92+
id: version
93+
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
94+
95+
- name: Create Release
96+
uses: softprops/action-gh-release@v1
97+
with:
98+
name: Release v${{ steps.version.outputs.VERSION }}
99+
body: |
100+
## Bolt Llama v${{ steps.version.outputs.VERSION }}
101+
102+
AI-powered web development with local LLM inference.
103+
104+
### Downloads
105+
106+
- **macOS**: Download the `.dmg` file
107+
- **Linux**: Download the `.AppImage` or `.deb` file
108+
- **Windows**: Download the `.exe` installer
109+
110+
### Installation
111+
112+
#### macOS
113+
1. Download `Bolt-Llama-macOS.dmg`
114+
2. Open the DMG file
115+
3. Drag Bolt Llama to Applications folder
116+
117+
#### Linux
118+
1. Download `Bolt-Llama-Linux.AppImage`
119+
2. Make it executable: `chmod +x Bolt-Llama-*.AppImage`
120+
3. Run: `./Bolt-Llama-*.AppImage`
121+
122+
Or install the `.deb` package:
123+
```bash
124+
sudo dpkg -i Bolt-Llama-*.deb
125+
```
126+
127+
#### Windows
128+
1. Download `Bolt-Llama-Windows-Setup.exe`
129+
2. Run the installer
130+
3. Follow installation wizard
131+
132+
### What's New
133+
134+
- Initial release with full Electron + node-llama-cpp integration
135+
- AI-powered code generation with local LLM
136+
- Monaco code editor with syntax highlighting
137+
- Live HTML/CSS/JS preview
138+
- Project file management
139+
- Cross-platform support
140+
141+
### Requirements
142+
143+
- **RAM**: 8GB minimum (16GB+ recommended)
144+
- **Disk Space**: 10GB+ for models
145+
- **GPU** (Optional): NVIDIA, AMD, or Apple Silicon for acceleration
146+
147+
### Getting Started
148+
149+
1. Download and install the app for your platform
150+
2. Download a GGUF model (CodeLlama, Mistral, DeepSeek Coder)
151+
3. Place model in `~/.bolt-llama/models/`
152+
4. Launch Bolt Llama
153+
5. Create a new project and start coding!
154+
155+
For detailed instructions, see the [README](https://github.com/drzo/bolt-llama-electron/blob/master/README.md).
156+
draft: false
157+
prerelease: false
158+
files: |
159+
artifacts/**/*.dmg
160+
artifacts/**/*.zip
161+
artifacts/**/*.AppImage
162+
artifacts/**/*.deb
163+
artifacts/**/*.exe
164+
env:
165+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

CHANGELOG.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# Changelog
2+
3+
All notable changes to Bolt Llama Electron will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
### Added
11+
- Initial release preparation
12+
13+
## [1.0.0] - 2025-12-31
14+
15+
### Added
16+
- Initial release of Bolt Llama Electron
17+
- AI-powered code generation with local LLM inference using node-llama-cpp
18+
- Monaco code editor with syntax highlighting and auto-save
19+
- Live HTML/CSS/JS preview panel
20+
- Project file management with file tree navigation
21+
- Chat interface for AI interactions with streaming responses
22+
- Support for multiple LLM models (CodeLlama, Mistral, DeepSeek Coder)
23+
- Dark and light theme support
24+
- Cross-platform support (macOS, Windows, Linux)
25+
- Project templates (React + TypeScript, Vanilla HTML/CSS/JS)
26+
- File operations (create, edit, delete, save)
27+
- IPC communication between main and renderer processes
28+
- Secure context isolation and preload script
29+
- Comprehensive documentation (README, ARCHITECTURE, IMPLEMENTATION_STATUS)
30+
31+
### Technical Details
32+
- Electron 39.2.7
33+
- React 19.2.3
34+
- TypeScript 5.9.3
35+
- node-llama-cpp 3.14.5
36+
- Monaco Editor 0.55.1
37+
- Zustand 5.0.9 for state management
38+
- Vite 7.3.0 for build tooling
39+
- SCSS for styling
40+
41+
### Known Issues
42+
- Model download must be done manually
43+
- Chat history not persisted to disk
44+
- No code signing for installers
45+
- Auto-update not implemented
46+
47+
### Requirements
48+
- Node.js 18+
49+
- 8GB RAM minimum (16GB+ recommended)
50+
- 10GB+ disk space for models
51+
- Optional: GPU for hardware acceleration
52+
53+
---
54+
55+
## Release Notes Template
56+
57+
When creating a new release, copy this template:
58+
59+
```markdown
60+
## [X.Y.Z] - YYYY-MM-DD
61+
62+
### Added
63+
- New features
64+
65+
### Changed
66+
- Changes to existing functionality
67+
68+
### Deprecated
69+
- Features that will be removed in future versions
70+
71+
### Removed
72+
- Removed features
73+
74+
### Fixed
75+
- Bug fixes
76+
77+
### Security
78+
- Security improvements
79+
```
80+
81+
---
82+
83+
[Unreleased]: https://github.com/drzo/bolt-llama-electron/compare/v1.0.0...HEAD
84+
[1.0.0]: https://github.com/drzo/bolt-llama-electron/releases/tag/v1.0.0

0 commit comments

Comments
 (0)