Skip to content

feat: fish improvements #45

feat: fish improvements

feat: fish improvements #45

Workflow file for this run

name: Wails build
on:
push:
branches:
- main
env:
# Necessary for most environments as build failure can occur due to OOM issues
NODE_OPTIONS: '--max-old-space-size=4096'
jobs:
build:
strategy:
# Failure in one platform build won't impact the others
fail-fast: false
matrix:
include:
- name: 'DMG-${{ github.ref_name }}-Linux-amd64'
platform: 'linux/amd64'
os: 'ubuntu-latest'
wails_os: 'linux'
- name: 'DMG-${{ github.ref_name }}-Windows-amd64'
platform: 'windows/amd64'
os: 'windows-latest'
wails_os: 'windows'
- name: 'DMG-${{ github.ref_name }}-macOS'
platform: 'darwin/universal'
os: 'macos-latest'
wails_os: 'darwin'
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Cache Bun dependencies
uses: actions/cache@v4
with:
path: ~/.bun/install/cache
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }}
restore-keys: |
${{ runner.os }}-bun-
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.23'
- name: Install Bun
uses: oven-sh/setup-bun@v2
- name: Install Linux dependencies
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev
- name: Tidy Go modules
run: go mod tidy
- name: Install Wails CLI
run: go install -v github.com/wailsapp/wails/v3/cmd/wails3@latest
- name: Build Wails project (Linux)
if: matrix.os == 'ubuntu-latest'
run: wails3 task ${{ matrix.wails_os }}:package
- name: Build Wails project (Windows, Darwin)
if: matrix.os != 'ubuntu-latest'
run: wails3 task ${{ matrix.wails_os }}:build
- name: Handle Linux AppImage
if: matrix.os == 'ubuntu-latest'
run: |
wget -O appimagetool "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
chmod +x appimagetool
./appimagetool --appimage-extract
mv squashfs-root appimagetool-extracted
cd bin
chmod +x dmg-x86_64.AppImage
./dmg-x86_64.AppImage --appimage-extract
rm -rf squashfs-root/usr/lib
../appimagetool-extracted/AppRun squashfs-root dmg-x86_64.AppImage
cd ..
- name: Upload Linux binaries to GitHub release
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v4
with:
name: DMG-linux
path: './bin/dmg-x86_64.AppImage'
- name: Upload Windows binaries to GitHub release
if: matrix.os == 'windows-latest'
uses: actions/upload-artifact@v4
with:
name: DMG-windows
path: './bin/dmg.exe'
- name: Upload Darwin binaries to GitHub release
if: matrix.os == 'macos-latest'
uses: actions/upload-artifact@v4
with:
name: DMG-macos
path: './bin/dmg'