-
Notifications
You must be signed in to change notification settings - Fork 0
158 lines (135 loc) · 5.48 KB
/
release.yml
File metadata and controls
158 lines (135 loc) · 5.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
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\//, '')} - Apache 64-bit + Auto-Update`,
body: `**DevStackBox v${context.ref.replace(/refs\/tags\//, '')}**
**Major Fixes in This Release:**
- **64-bit Apache** - Fixed "Unsupported 16-Bit Application" error
- **Dynamic Configuration** - MSI installer now works with correct paths
- **Enhanced Auto-Updater** - Improved update detection and installation
- **Architecture Detection** - Better error messages for compatibility issues
**What's Included:**
- **Apache 2.4.65 (64-bit)** - Compatible with 64-bit Windows
- **MySQL 8.0 Database** (embedded)
- **PHP 8.2** (with extensions)
- **phpMyAdmin** (database management)
- **Modern React UI** (dark/light mode)
- **Auto-Updates** via GitHub Releases
**Installation:**
1. Download the NSIS installer (DevStackBox_*_x64-setup.exe)
2. Run as administrator
3. Install to C:\\\\dsb\\\\ (recommended) or custom location
4. Launch DevStackBox from Start Menu
5. Start Apache/MySQL services from the UI
6. Access http://localhost for your projects
7. Access http://localhost/phpmyadmin for database management
**Auto-Update Testing:**
- Install this version to test auto-update functionality
- Updates check every 2 hours in this alpha version
- Manual update check available via "Check Updates" button
**Troubleshooting:**
- If Apache won't start, use the "Debug Installation" feature
- All paths are now dynamically resolved based on installation directory
- Architecture compatibility is automatically checked
**Note:** This is an alpha release for testing. Please report any issues on GitHub.`,
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
shell: powershell
- name: Verify server components are ready
run: |
Write-Host "Verifying server components in src-tauri..." -ForegroundColor Cyan
$components = @("apache", "mysql", "php", "phpmyadmin", "www", "config")
foreach ($component in $components) {
$path = "src-tauri/$component"
if (Test-Path $path) {
$size = (Get-ChildItem -Path $path -Recurse | Measure-Object -Property Length -Sum).Sum
$sizeMB = [math]::Round($size/1MB, 2)
Write-Host "SUCCESS $component : $sizeMB MB" -ForegroundColor Green
} else {
Write-Host "MISSING $component : Not found" -ForegroundColor Red
}
}
Write-Host "Ready for Tauri build" -ForegroundColor Blue
shell: powershell
- name: Build the app
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
});