feat: add installation scripts and update documentation for downloading WebDrop Bridge releases
Some checks are pending
Tests & Quality Checks / Test on Python 3.11 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.12 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.11-1 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.12-1 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.10 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.11-2 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.12-2 (push) Waiting to run
Tests & Quality Checks / Build Artifacts (push) Blocked by required conditions
Tests & Quality Checks / Build Artifacts-1 (push) Blocked by required conditions
Some checks are pending
Tests & Quality Checks / Test on Python 3.11 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.12 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.11-1 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.12-1 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.10 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.11-2 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.12-2 (push) Waiting to run
Tests & Quality Checks / Build Artifacts (push) Blocked by required conditions
Tests & Quality Checks / Build Artifacts-1 (push) Blocked by required conditions
This commit is contained in:
parent
6d052e221b
commit
1dcce081f1
5 changed files with 690 additions and 1 deletions
197
build/scripts/README.md
Normal file
197
build/scripts/README.md
Normal file
|
|
@ -0,0 +1,197 @@
|
|||
# Build Scripts
|
||||
|
||||
Automation scripts for building, releasing, and downloading WebDrop Bridge.
|
||||
|
||||
## Scripts Overview
|
||||
|
||||
| Script | Purpose | OS |
|
||||
|--------|---------|-----|
|
||||
| `download_release.ps1` | Download installer from Forgejo via wget | Windows |
|
||||
| `download_release.sh` | Download installer from Forgejo via wget | macOS/Linux |
|
||||
| `build_windows.py` | Build Windows MSI installer | Windows |
|
||||
| `build_macos.sh` | Build macOS DMG installer | macOS |
|
||||
| `create_release.ps1` | Create GitHub/Forgejo release | Windows |
|
||||
| `create_release.sh` | Create GitHub/Forgejo release | macOS/Linux |
|
||||
| `sync_remotes.ps1` | Sync git remotes | Windows |
|
||||
| `sync_version.py` | Manage version synchronization | All |
|
||||
|
||||
## Download Scripts
|
||||
|
||||
### Purpose
|
||||
|
||||
The `download_release.ps1` (Windows) and `download_release.sh` (macOS/Linux) scripts download pre-built WebDrop Bridge installers from the Forgejo repository using **wget**. This is the recommended way to:
|
||||
|
||||
- **Initial Installation**: First-time users can bootstrap without building from source
|
||||
- **Enterprise Deployments**: Automated setup scripts in larger organizations
|
||||
- **Offline/Air-Gapped Systems**: Download on one machine, transfer to another
|
||||
- **Proxy Environments**: Works with corporate proxies (via wget)
|
||||
- **CI/CD Automation**: Internal deployment pipelines
|
||||
- **Command-Line Preference**: Admins who prefer CLI tools over GUIs
|
||||
|
||||
### Features
|
||||
|
||||
✅ **Automatic platform detection** - Prefers .dmg on macOS, .msi on Windows
|
||||
✅ **SHA256 checksum verification** - Ensures integrity of downloaded files
|
||||
✅ **Progress indication** - Shows download progress with wget
|
||||
✅ **Error handling** - Clear error messages for common issues
|
||||
✅ **Version selection** - Download specific releases or latest
|
||||
✅ **Offline-friendly** - Works in environments with limited connectivity
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- **wget** (required)
|
||||
- Windows: `choco install wget` or `winget install GNU.Wget`
|
||||
- macOS: `brew install wget`
|
||||
- Linux: `apt-get install wget` (Ubuntu/Debian) or equivalent
|
||||
|
||||
### Direct wget Commands (No Script Needed)
|
||||
|
||||
**Simplest: If you know the version**
|
||||
|
||||
```bash
|
||||
# Download directly by version tag
|
||||
wget https://git.him-tools.de/HIM-public/webdrop-bridge/releases/download/v0.8.0/WebDropBridge_Setup.msi
|
||||
wget https://git.him-tools.de/HIM-public/webdrop-bridge/releases/download/v0.8.0/WebDropBridge_Setup.dmg
|
||||
```
|
||||
|
||||
**If you need to auto-detect latest (with grep/cut, no jq needed)**
|
||||
|
||||
```bash
|
||||
# Get latest release and download MSI/DMG
|
||||
wget -qO- https://git.him-tools.de/api/v1/repos/HIM-public/webdrop-bridge/releases/latest | \
|
||||
grep -o '"browser_download_url":"[^"]*\.\(msi\|dmg\)"' | head -1 | cut -d'"' -f4 | \
|
||||
xargs wget -O installer.msi
|
||||
```
|
||||
|
||||
**With checksum verification**
|
||||
|
||||
```bash
|
||||
# Download installer and checksum
|
||||
INSTALLER=$(wget -qO- https://git.him-tools.de/api/v1/repos/HIM-public/webdrop-bridge/releases/latest | \
|
||||
grep -o '"browser_download_url":"[^"]*\.\(msi\|dmg\)"' | head -1 | cut -d'"' -f4)
|
||||
|
||||
wget -O installer.msi "$INSTALLER"
|
||||
wget -O installer.sha256 "${INSTALLER}.sha256"
|
||||
|
||||
# Verify (macOS: shasum -a 256 -c installer.sha256)
|
||||
sha256sum -c installer.sha256
|
||||
```
|
||||
|
||||
### Script-Based Usage (Recommended for Automation)
|
||||
|
||||
#### Windows PowerShell
|
||||
|
||||
```powershell
|
||||
# Latest release to current directory
|
||||
.\download_release.ps1
|
||||
|
||||
# Specific version to Downloads folder
|
||||
.\download_release.ps1 -Version "0.8.0" -OutputDir "$env:USERPROFILE\Downloads"
|
||||
|
||||
# Skip checksum verification
|
||||
.\download_release.ps1 -Verify $false
|
||||
```
|
||||
|
||||
#### macOS / Linux Bash
|
||||
|
||||
```bash
|
||||
# Latest release
|
||||
./build/scripts/download_release.sh
|
||||
|
||||
# Specific version to Downloads
|
||||
./build/scripts/download_release.sh 0.8.0 ~/Downloads
|
||||
|
||||
# Skip checksum verification
|
||||
./build/scripts/download_release.sh latest --no-verify
|
||||
```
|
||||
|
||||
## Build Scripts
|
||||
|
||||
### build_windows.py
|
||||
Builds Windows MSI installer using PyInstaller and WIX toolset.
|
||||
|
||||
```bash
|
||||
python build/scripts/build_windows.py --msi
|
||||
```
|
||||
|
||||
### build_macos.sh
|
||||
Builds macOS DMG installer with code signing and notarization.
|
||||
|
||||
```bash
|
||||
bash build/scripts/build_macos.sh
|
||||
```
|
||||
|
||||
## Release Scripts
|
||||
|
||||
### create_release.ps1 / create_release.sh
|
||||
Automated release creation with versioning and asset uploads.
|
||||
|
||||
```bash
|
||||
# Windows
|
||||
.\build\scripts\create_release.ps1
|
||||
|
||||
# macOS/Linux
|
||||
./build/scripts/create_release.sh
|
||||
```
|
||||
|
||||
## Version Management
|
||||
|
||||
### sync_version.py
|
||||
Manages consistent versioning across the project.
|
||||
|
||||
```bash
|
||||
python build/scripts/sync_version.py --version 0.8.0
|
||||
```
|
||||
|
||||
## Integration Flow
|
||||
|
||||
```
|
||||
download_release.ps1/sh
|
||||
↓
|
||||
Fetches release from Forgejo API
|
||||
↓
|
||||
Downloads installer (.msi or .dmg)
|
||||
↓
|
||||
Verifies SHA256 checksum
|
||||
↓
|
||||
Installer ready for execution
|
||||
↓
|
||||
(Application auto-update handles future updates)
|
||||
```
|
||||
|
||||
## Testing Scripts Locally
|
||||
|
||||
```bash
|
||||
# Test download script (dry-run)
|
||||
.\build\scripts\download_release.ps1 -Version "0.7.1"
|
||||
|
||||
# Test with different output directory
|
||||
.\build\scripts\download_release.ps1 -OutputDir ".\test_download"
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### wget not found
|
||||
- **Windows**: Install via `winget install GNU.Wget` or Chocolatey
|
||||
- **macOS**: `brew install wget`
|
||||
- **Linux**: `apt-get install wget` (or equivalent)
|
||||
|
||||
### Checksum verification failed
|
||||
- File may be corrupted in transit
|
||||
- Retry download: `.\download_release.ps1 -Verify $false` then manually verify
|
||||
- Report issue with download URL and Forgejo release info
|
||||
|
||||
### Network timeouts
|
||||
- Check connectivity to `https://git.him-tools.de`
|
||||
- May indicate temporary Forgejo API unavailability
|
||||
- Retry after a few minutes
|
||||
|
||||
### Permission denied (macOS/Linux)
|
||||
```bash
|
||||
chmod +x build/scripts/download_release.sh
|
||||
chmod +x build/scripts/build_macos.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
For user-facing documentation, see [QUICKSTART.md](../../QUICKSTART.md) and [README.md](../../README.md)
|
||||
Loading…
Add table
Add a link
Reference in a new issue