Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
135 changes: 135 additions & 0 deletions .github/workflows/botbrowser-control-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
name: BotBrowser Control — Build & Release

on:
push:
tags:
- 'control-v*.*.*'
workflow_dispatch:

jobs:
build-mac:
name: macOS
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
with:
ref: add-botbrowser-control

- uses: actions/setup-node@v4
with:
node-version: 20

- name: Install dependencies
run: npm install
working-directory: botbrowser-control

- name: Build macOS
run: npm run build:mac
working-directory: botbrowser-control
env:
CSC_IDENTITY_AUTO_DISCOVERY: false

- uses: actions/upload-artifact@v4
with:
name: mac-builds
path: |
botbrowser-control/dist/*.dmg
botbrowser-control/dist/*.zip
retention-days: 7

build-windows:
name: Windows
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
ref: add-botbrowser-control

- uses: actions/setup-node@v4
with:
node-version: 20

- name: Install dependencies
run: npm install
working-directory: botbrowser-control

- name: Build Windows
run: npx electron-builder --win
working-directory: botbrowser-control
env:
CSC_IDENTITY_AUTO_DISCOVERY: "false"
DEBUG: electron-builder

- uses: actions/upload-artifact@v4
with:
name: windows-builds
path: |
botbrowser-control/dist/*.exe
botbrowser-control/dist/*.zip
retention-days: 7

build-linux:
name: Linux
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: add-botbrowser-control

- uses: actions/setup-node@v4
with:
node-version: 20

- name: Install Linux build dependencies
run: |
sudo apt-get update
sudo apt-get install -y libnss3 libxss1 libxtst6 fakeroot

- name: Install dependencies
run: npm install
working-directory: botbrowser-control

- name: Build Linux
run: npm run build:linux
working-directory: botbrowser-control

- uses: actions/upload-artifact@v4
with:
name: linux-builds
path: |
botbrowser-control/dist/*.AppImage
botbrowser-control/dist/*.deb
botbrowser-control/dist/*.tar.gz
retention-days: 7

release:
name: Upload to Release
needs: [build-mac, build-windows, build-linux]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts/

- name: List artifacts
run: find artifacts/ -type f | sort

- name: Upload to GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
draft: false
prerelease: false
files: |
artifacts/mac-builds/*.dmg
artifacts/mac-builds/*.zip
artifacts/windows-builds/*.exe
artifacts/windows-builds/*.zip
artifacts/linux-builds/*.AppImage
artifacts/linux-builds/*.deb
artifacts/linux-builds/*.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
168 changes: 168 additions & 0 deletions botbrowser-control/.github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
name: Build & Release

on:
push:
tags:
- 'v*.*.*'
workflow_dispatch:
inputs:
version:
description: 'Version to build (e.g. 1.0.0)'
required: false
default: ''

jobs:
# ─────────────────────────────────────────
# macOS — DMG + ZIP (x64 & arm64)
# ─────────────────────────────────────────
build-mac:
name: macOS
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Build macOS (x64 + arm64)
run: npm run build:mac
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Upload macOS artifacts
uses: actions/upload-artifact@v4
with:
name: mac-builds
path: |
dist/*.dmg
dist/*-mac.zip
dist/*-arm64-mac.zip
retention-days: 7

# ─────────────────────────────────────────
# Windows — NSIS installer + Portable + ZIP
# ─────────────────────────────────────────
build-windows:
name: Windows
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Build Windows (x64 + arm64)
run: npm run build:win
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Upload Windows artifacts
uses: actions/upload-artifact@v4
with:
name: windows-builds
path: |
dist/*.exe
dist/*-win.zip
retention-days: 7

# ─────────────────────────────────────────
# Linux — AppImage + DEB + RPM + tar.gz
# ─────────────────────────────────────────
build-linux:
name: Linux
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'

- name: Install Linux build dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libgtk-3-dev \
libnotify-dev \
libgconf-2-4 \
libnss3 \
libxss1 \
libxtst6 \
xauth \
xvfb \
rpm \
fakeroot

- name: Install dependencies
run: npm ci

- name: Build Linux (x64 + arm64)
run: npm run build:linux
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Upload Linux artifacts
uses: actions/upload-artifact@v4
with:
name: linux-builds
path: |
dist/*.AppImage
dist/*.deb
dist/*.rpm
dist/*.tar.gz
retention-days: 7

# ─────────────────────────────────────────
# Release — attach all artifacts to GitHub Release
# ─────────────────────────────────────────
release:
name: Create Release
needs: [build-mac, build-windows, build-linux]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
permissions:
contents: write
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts/

- name: List artifacts
run: find artifacts/ -type f | sort

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
name: BotBrowser Control ${{ github.ref_name }}
draft: false
prerelease: false
generate_release_notes: true
files: |
artifacts/mac-builds/*.dmg
artifacts/mac-builds/*.zip
artifacts/windows-builds/*.exe
artifacts/windows-builds/*.zip
artifacts/linux-builds/*.AppImage
artifacts/linux-builds/*.deb
artifacts/linux-builds/*.rpm
artifacts/linux-builds/*.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
54 changes: 54 additions & 0 deletions botbrowser-control/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Dependencies
node_modules/
.npm/

# Build output
dist/
out/
build/

# Electron builder cache
.electron-builder-cache/

# macOS
.DS_Store
*.DS_Store
__MACOSX/

# Windows
Thumbs.db
desktop.ini

# Logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Runtime data
*.pid
*.seed
*.pid.lock

# Temp files
tmp/
temp/
*.tmp

# Editor
.vscode/
.idea/
*.swp
*.swo
*~

# OS
.env
.env.local

# electron-store data (user data - never commit)
/data/

# Coverage
coverage/
.nyc_output/
Loading