Replace deploy workflow with portable Windows release build
- Remove old Docker-based deploy.yml - Add release.yml: builds portable ZIP on tag push, uploads to Gitea - Add build-dist.ps1: downloads embedded Python, installs deps, bundles app - Add scrollbar-gutter: stable to prevent layout shift Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
74
.gitea/workflows/release.yml
Normal file
74
.gitea/workflows/release.yml
Normal file
@@ -0,0 +1,74 @@
|
||||
name: Build Release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
|
||||
jobs:
|
||||
build-windows:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '20'
|
||||
|
||||
- name: Build portable distribution
|
||||
shell: pwsh
|
||||
run: |
|
||||
.\build-dist.ps1 -Version "${{ gitea.ref_name }}"
|
||||
|
||||
- name: Upload build artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: LedGrab-${{ gitea.ref_name }}-win-x64
|
||||
path: build/LedGrab-*.zip
|
||||
retention-days: 90
|
||||
|
||||
- name: Create Gitea release
|
||||
shell: pwsh
|
||||
env:
|
||||
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||||
run: |
|
||||
$tag = "${{ gitea.ref_name }}"
|
||||
$zipFile = Get-ChildItem "build\LedGrab-*.zip" | Select-Object -First 1
|
||||
if (-not $zipFile) { throw "ZIP not found" }
|
||||
|
||||
$baseUrl = "${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}"
|
||||
$headers = @{
|
||||
"Authorization" = "token $env:GITEA_TOKEN"
|
||||
"Content-Type" = "application/json"
|
||||
}
|
||||
|
||||
# Create release
|
||||
$body = @{
|
||||
tag_name = $tag
|
||||
name = "LedGrab $tag"
|
||||
body = "Portable Windows build — unzip, run ``LedGrab.bat``, open http://localhost:8080"
|
||||
draft = $false
|
||||
prerelease = ($tag -match '(alpha|beta|rc)')
|
||||
} | ConvertTo-Json
|
||||
|
||||
$release = Invoke-RestMethod -Method Post `
|
||||
-Uri "$baseUrl/releases" `
|
||||
-Headers $headers -Body $body
|
||||
|
||||
Write-Host "Created release: $($release.html_url)"
|
||||
|
||||
# Upload ZIP asset
|
||||
$uploadHeaders = @{
|
||||
"Authorization" = "token $env:GITEA_TOKEN"
|
||||
}
|
||||
$uploadUrl = "$baseUrl/releases/$($release.id)/assets?name=$($zipFile.Name)"
|
||||
Invoke-RestMethod -Method Post -Uri $uploadUrl `
|
||||
-Headers $uploadHeaders `
|
||||
-ContentType "application/octet-stream" `
|
||||
-InFile $zipFile.FullName
|
||||
|
||||
Write-Host "Uploaded: $($zipFile.Name)"
|
||||
Reference in New Issue
Block a user