Added manifest and icon to spitfire-installer.exe build
This commit is contained in:
parent
da0b9b1876
commit
43b1fdd76e
1 changed files with 69 additions and 1 deletions
|
@ -9,17 +9,85 @@ jobs:
|
|||
runs-on: win-10
|
||||
|
||||
steps:
|
||||
- name: Install rsrc tool
|
||||
shell: bash
|
||||
run: |
|
||||
go install github.com/akavel/rsrc@latest
|
||||
|
||||
- name: Clone Publisher repo
|
||||
shell: bash
|
||||
run: |
|
||||
git clone https://weforge.xyz/Spitfire/Publisher.git
|
||||
|
||||
- name: Clone and Build Spitfire Installer
|
||||
- name: Clone, generate manifest, convert icon, and Build Spitfire Installer
|
||||
shell: bash
|
||||
run: |
|
||||
set -e
|
||||
git clone https://weforge.xyz/Spitfire/Installer.git
|
||||
cd Installer
|
||||
|
||||
# Compute current date (e.g. 2025.02.11)
|
||||
DATE=$(date +'%Y.%m.%d')
|
||||
|
||||
# Download the icon PNG (530x530) from the dynamic URL
|
||||
curl -L "https://weforge.xyz/Spitfire/Branding/src/branch/main/active/browser/icon.png" -o icon.png
|
||||
|
||||
# Convert the PNG to a Windows ICO file with multiple sizes using ImageMagick.
|
||||
# This command auto-resizes to common icon sizes: 256, 128, 64, 48, 32, and 16.
|
||||
magick convert icon.png -define icon:auto-resize=256,128,64,48,32,16 icon.ico
|
||||
|
||||
# Create dynamic app.manifest with DATE as version (appending .0 to meet version format)
|
||||
cat <<EOF > app.manifest
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||
<assemblyIdentity
|
||||
name="Spitfire Installer"
|
||||
version="${DATE}.0"
|
||||
processorArchitecture="*"
|
||||
type="win32"/>
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<security>
|
||||
<requestedPrivileges>
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<windowsSettings>
|
||||
<dpiAware>true/PM</dpiAware>
|
||||
</windowsSettings>
|
||||
</application>
|
||||
</assembly>
|
||||
EOF
|
||||
|
||||
# Create version info JSON with dynamic version and website URLs in Comments
|
||||
cat <<EOF > versioninfo.json
|
||||
{
|
||||
"Version": {
|
||||
"Major": 0,
|
||||
"Minor": 0,
|
||||
"Patch": 0,
|
||||
"Build": 0
|
||||
},
|
||||
"CompanyName": "Spitfire Browser",
|
||||
"FileDescription": "Official Installer for Spitfire Browser",
|
||||
"FileVersion": "${DATE}.0",
|
||||
"InternalName": "spitfire-installer",
|
||||
"LegalCopyright": "Copyright © Spitfire Browser",
|
||||
"OriginalFilename": "spitfire-installer.exe",
|
||||
"ProductName": "Spitfire Browser",
|
||||
"ProductVersion": "${DATE}.0",
|
||||
"Comments": "Official website: https://spitfirebrowser.xyz; Source/Dev website: https://weforge.xyz"
|
||||
}
|
||||
EOF
|
||||
|
||||
# Generate the resource file embedding manifest, version info, and the icon.
|
||||
rsrc -manifest app.manifest -json versioninfo.json -ico icon.ico -o rsrc.syso
|
||||
|
||||
# Build the installer; rsrc.syso is automatically linked by the Go compiler.
|
||||
CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -o spitfire-installer.exe
|
||||
|
||||
# Move the built executable one level up for further packaging.
|
||||
mv spitfire-installer.exe ..
|
||||
|
||||
- name: Setup SSH Key for SourceForge
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue