Skip to content

fix: Update prepare-binaries script to handle missing components grac… #3

fix: Update prepare-binaries script to handle missing components grac…

fix: Update prepare-binaries script to handle missing components grac… #3

Workflow file for this run

name: Release DevStackBox
on:
push:
tags:
- 'v*'
workflow_dispatch:
jobs:
create-release:
permissions:
contents: write
runs-on: ubuntu-22.04
outputs:
release_id: ${{ steps.create-release.outputs.result }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Create release
id: create-release
uses: actions/github-script@v7
with:
script: |
const { data } = await github.rest.repos.createRelease({
owner: context.repo.owner,
repo: context.repo.repo,
tag_name: `${context.ref.replace(/refs\/tags\//, '')}`,
name: `DevStackBox ${context.ref.replace(/refs\/tags\//, '')} - Full XAMPP Alternative`,
body: `🚀 **DevStackBox Full Installation Package**
This release includes all server components bundled like XAMPP:
- ✅ **Apache HTTP Server** (portable)
- ✅ **MySQL 8.0 Database** (embedded)
- ✅ **PHP 8.2** (with extensions)
- ✅ **phpMyAdmin** (database management)
- ✅ **Modern React UI** (auto-updating)
- ✅ **Installs to C:\\\\dsb\\\\** (configurable)
**Installation:**
1. Download the NSIS installer (DevStackBox_*_x64-setup.exe)
2. Run as administrator
3. When prompted, choose C:\\\\dsb\\\\ as installation directory
4. Launch DevStackBox from Start Menu
5. Start all services from the UI
6. Access http://localhost for your projects
7. Access http://localhost/phpmyadmin for database management
**Command Line Installation:**
\`\`\`
DevStackBox_0.1.0-1_x64-setup.exe /S /D=C:\\\\dsb
\`\`\`
**What's New:**
- Complete server stack bundled in installer
- Automatic service detection and management
- Professional installation experience
- Auto-updates for continuous improvements`,
draft: true,
prerelease: true
});
return data.id;
build-tauri:
needs: create-release
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- platform: 'windows-latest'
args: '--target x86_64-pc-windows-msvc'
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- name: Sync node version and setup cache
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
cache: 'npm'
- name: Install frontend dependencies
run: npm install
- name: Prepare server binaries for bundling
run: npm run prepare-binaries
- name: Build the app with bundled servers
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
with:
releaseId: ${{ needs.create-release.outputs.release_id }}
args: ${{ matrix.args }}
publish-release:
permissions:
contents: write
runs-on: ubuntu-22.04
needs: [create-release, build-tauri]
steps:
- name: Publish release
id: publish-release
uses: actions/github-script@v7
env:
release_id: ${{ needs.create-release.outputs.release_id }}
with:
script: |
await github.rest.repos.updateRelease({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: process.env.release_id,
draft: false,
prerelease: true
});