Skip to content

Replace ESPConnect tool card with ESP Board Vault #18

Replace ESPConnect tool card with ESP Board Vault

Replace ESPConnect tool card with ESP Board Vault #18

Workflow file for this run

name: Build Electron App
on:
push:
tags:
- 'v*'
workflow_dispatch:
inputs:
version:
description: 'Version tag (e.g., v1.0.0)'
required: false
default: ''
permissions:
contents: write
jobs:
build:
strategy:
matrix:
include:
# macOS Intel
- os: macos-15-intel
platform: darwin
arch: x64
artifact_name: macos-intel
# macOS ARM (Apple Silicon)
- os: macos-latest
platform: darwin
arch: arm64
artifact_name: macos-arm64
# Windows
- os: windows-latest
platform: win32
arch: x64
artifact_name: windows
# Linux
- os: ubuntu-latest
platform: linux
arch: x64
artifact_name: linux
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.12.0'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build Vite application
run: npm run build
- name: Package web dist for release
if: matrix.platform == 'linux'
run: zip -r dist.zip dist
- name: Upload dist artifact
if: matrix.platform == 'linux'
uses: actions/upload-artifact@v4
with:
name: dist
path: dist.zip
retention-days: 5
- name: Build Electron app
run: npm run make -- --arch=${{ matrix.arch }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# macOS: Upload DMG and ZIP
- name: Upload macOS artifacts
if: matrix.platform == 'darwin'
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact_name }}
path: |
out/make/**/*.dmg
out/make/zip/**/*.zip
retention-days: 5
# Windows: Upload Squirrel installer and ZIP
- name: Upload Windows artifacts
if: matrix.platform == 'win32'
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact_name }}
path: |
out/make/squirrel.windows/x64/*.exe
out/make/squirrel.windows/x64/*.nupkg
out/make/zip/win32/x64/*.zip
retention-days: 5
# Linux: Upload DEB, RPM and ZIP
- name: Upload Linux artifacts
if: matrix.platform == 'linux'
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact_name }}
path: |
out/make/deb/x64/*.deb
out/make/rpm/x64/*.rpm
out/make/zip/linux/x64/*.zip
retention-days: 5
release:
needs: build
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Set version without v prefix
id: version
run: echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_OUTPUT
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: List artifacts
run: find artifacts -type f | head -50
- name: Create Release
uses: softprops/action-gh-release@v2
with:
name: ESPConnect ${{ github.ref_name }}
body: |
## ESPConnect ${{ github.ref_name }}
Browser-based control center for ESP32 and ESP8266 boards - now as a standalone desktop application!
### 🎯 Features
- ✅ Works completely **offline** - no internet connection required
- ✅ Native Web Serial API support for all platforms
- ✅ Flash firmware, manage SPIFFS/LittleFS, backup flash memory
- ✅ Device info, partitions viewer, NVS Inspector, serial monitor
- ✅ Community translations (Best effort)
### 📥 Downloads
| Platform | Architecture | File Type | Notes |
|----------|--------------|-----------|-------|
| macOS | Apple Silicon (M1/M2/M3) | `.dmg` | macOS 11+ |
| macOS | Intel | `.dmg` | macOS 10.13+ |
| Windows | x64 | `.exe` installer | Windows 10+ |
| Linux | x64 | `.deb` / `.rpm` | Ubuntu, Debian, Fedora, etc. |
| Web UI | Any | `.zip` | Static `dist/` build for custom hosting |
### 📝 Installation
**macOS Apple Silicon:**
```bash
curl -L -O "https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/ESPConnect-arm64.dmg"
```
Open the DMG and drag ESPConnect to Applications. First launch: Right-click → Open (to bypass Gatekeeper).
**macOS Intel:**
```bash
curl -L -O "https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/ESPConnect-x64.dmg"
```
Open the DMG and drag ESPConnect to Applications. First launch: Right-click → Open (to bypass Gatekeeper).
**Windows:**
Download and run the `.exe` installer. Windows Defender may show a warning on first launch - click "More info" → "Run anyway".
**Linux (Debian/Ubuntu):**
```bash
sudo dpkg -i espconnect_${{ steps.version.outputs.VERSION }}_amd64.deb
```
**Linux (Fedora/RHEL):**
```bash
sudo rpm -i espconnect-${{ steps.version.outputs.VERSION }}.x86_64.rpm
```
**Web UI (static files):**
```bash
curl -L -o dist.zip "https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/dist.zip"
unzip dist.zip -d dist
```
Serve the dist/ Folder, you may use any of the following options:
> Option A — Node “serve”
```bash
cd dist
npx serve .
```
> Option B — Python 3
```bash
cd dist
python -m http.server 8080
```
### 🔌 USB Serial Permissions (Linux)
Add your user to the `dialout` group:
```bash
sudo usermod -a -G dialout $USER
```
Then log out and back in.
draft: false
prerelease: false
files: |
artifacts/**/*.dmg
artifacts/**/*.exe
artifacts/**/*.deb
artifacts/**/*.rpm
artifacts/dist/dist.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}