Skip to content

Automate release publishing for multi-platform builds #5

Automate release publishing for multi-platform builds

Automate release publishing for multi-platform builds #5

Workflow file for this run

name: Build Wails App
on:
push:
tags:
- "v*"
pull_request:
branches:
- main
env:
NODE_OPTIONS: "--max-old-space-size=4096"
jobs:
build:
name: Build (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
platform: linux/amd64
- os: windows-latest
platform: windows/amd64
- os: macos-latest
platform: darwin/universal
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.21"
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install Wails CLI
run: go install github.com/wailsapp/wails/v2/cmd/wails@latest
- name: Install frontend dependencies
run: |
npm ci
working-directory: frontend
- name: Build Wails app
run: |
wails build -platform ${{ matrix.platform }}
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: wails-${{ matrix.os }}
path: build/bin/**
retention-days: 14
release:
name: Create Release
needs: build
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
permissions:
contents: write
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: |
artifacts/wails-ubuntu-latest/*
artifacts/wails-windows-latest/*
artifacts/wails-macos-latest/*
draft: false
prerelease: false
generate_release_notes: true