Skip to content

ci

ci #10

Workflow file for this run

name: Wails build
on:
push:
tags:
- "*"
env:
NODE_OPTIONS: "--max-old-space-size=4096"
jobs:
build:
strategy:
fail-fast: false
matrix:
build:
- name: "App"
platform: "linux/amd64"
os: "ubuntu-latest"
- name: "App"
platform: "windows/amd64"
os: "windows-latest"
- name: "App"
platform: "darwin/universal"
os: "macos-latest"
runs-on: ${{ matrix.build.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.21"
- name: Install Wails CLI
run: go install github.com/wailsapp/wails/v2/cmd/wails@latest
- name: Install Linux Dependencies
if: matrix.build.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config
- name: Build Wails App
shell: bash
run: |
cd apps/desktop
go mod tidy
# Explicitly build with webkit2_41 tag on Ubuntu 24.04+
if [ "${{ matrix.build.os }}" == "ubuntu-latest" ]; then
wails build --platform ${{ matrix.build.platform }} -o ${{ matrix.build.name }} -tags webkit2_41
else
wails build --platform ${{ matrix.build.platform }} -o ${{ matrix.build.name }}
fi
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: Wails-Build-${{ strategy.job-index }}
path: apps/desktop/build/bin/*
release:
needs: build
runs-on: ubuntu-latest
# Run if the build job finished, even if one matrix arm failed
if: always() && contains(needs.build.result, 'success')
permissions:
contents: write
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: ./artifacts
pattern: Wails-Build-*
merge-multiple: true
- name: Create Release
uses: softprops/action-gh-release@v2
with:
files: ./artifacts/**/*
tag_name: ${{ github.ref_name }}
name: Release ${{ github.ref_name }}
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}