Fixed icon and manifest for Installer

This commit is contained in:
Internet Addict 2025-02-18 13:54:56 +00:00
parent 9b05914fc3
commit c7834e5949

View file

@ -9,28 +9,27 @@ jobs:
runs-on: win-10 runs-on: win-10
steps: steps:
- name: Install rsrc tool - name: Check rsrc tool
shell: bash shell: bash
run: | run: |
go install github.com/akavel/rsrc@latest rsrc --version || echo "rsrc tool not available"
- name: Install ImageMagick (if not already installed) - name: Check windres availability
shell: bash
run: |
windres --version || echo "windres not available, please install mingw"
- name: Check ImageMagick version
shell: powershell shell: powershell
run: | run: |
choco install imagemagick -y --no-progress magick -version
- name: Clone Publisher repo - name: Clone Publisher repo and Generate Manifest Files
shell: bash shell: bash
run: | run: |
git clone https://weforge.xyz/Spitfire/Publisher.git git clone https://weforge.xyz/Spitfire/Publisher.git
cd Publisher
- name: Clone Manifest Generator and Generate Manifest Files # Run win_manifest_gen.go from the Publisher repo to generate manifest files.
shell: bash
run: |
git clone https://weforge.xyz/partisan/upload-test.git manifest-gen
cd manifest-gen
# Run the manifest generator with desired flags.
# Adjust the flag values as needed.
go run win_manifest_gen.go \ go run win_manifest_gen.go \
--name "Spitfire Installer" \ --name "Spitfire Installer" \
--company "Spitfire Browser" \ --company "Spitfire Browser" \
@ -38,9 +37,10 @@ jobs:
--official "https://spitfirebrowser.xyz" \ --official "https://spitfirebrowser.xyz" \
--dev "https://weforge.xyz" \ --dev "https://weforge.xyz" \
--requireAdmin=false --requireAdmin=false
# Copy generated files to the workspace root. # Copy generated files (app.manifest and app.rc) to the workspace root.
cp app.manifest ../ cp app.manifest ../
cp versioninfo.json ../ cp app.rc ../
cd ..
- name: Clone Installer, Convert Icon, and Build Spitfire Installer - name: Clone Installer, Convert Icon, and Build Spitfire Installer
shell: bash shell: bash
@ -48,19 +48,25 @@ jobs:
set -e set -e
git clone https://weforge.xyz/Spitfire/Installer.git git clone https://weforge.xyz/Spitfire/Installer.git
cd Installer cd Installer
# Copy the generated manifest files from the parent directory. # Copy the generated manifest files from the workspace root.
cp ../app.manifest . cp ../app.manifest .
cp ../versioninfo.json . cp ../app.rc .
# Download the icon PNG (530x530) from the dynamic URL. # 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 curl -fL "https://weforge.xyz/Spitfire/Branding/raw/branch/main/active/browser/icon.png" -o icon.png
ls -l icon.png
head -n 10 icon.png || true
# Convert the PNG to a Windows ICO file with multiple sizes using ImageMagick. # Convert the PNG to a Windows ICO file with multiple sizes using ImageMagick.
magick icon.png -define icon:auto-resize=256,128,64,48,32,16 icon.ico magick icon.png -define icon:auto-resize=256,128,64,48,32,16 icon.ico
# Generate the resource file embedding manifest, version info, and the icon. # Prepend an ICON directive to app.rc so the icon is embedded.
rsrc -manifest app.manifest -json versioninfo.json -ico icon.ico -o rsrc.syso echo '1 ICON "icon.ico"' | cat - app.rc > tmp.rc && mv tmp.rc app.rc
# Build the installer; rsrc.syso is automatically linked by the Go compiler. # Compile the resource script into a .syso file using windres.
CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -o spitfire-installer.exe windres app.rc -O coff -o resource.syso
# Build the installer; resource.syso is automatically linked.
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 packaging. # Move the built executable one level up for packaging.
mv spitfire-installer.exe .. mv spitfire-installer.exe ..
cd ..
- name: Setup SSH Key for SourceForge - name: Setup SSH Key for SourceForge
shell: bash shell: bash