Skip to content

Commit 75efe9d

Browse files
committed
ci: add release workflow
1 parent 7da5be9 commit 75efe9d

1 file changed

Lines changed: 93 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
name: Build release
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
build:
9+
strategy:
10+
fail-fast: false
11+
matrix:
12+
include:
13+
# Linux
14+
- name: linux-amd64
15+
runs_on: ubuntu-24.04
16+
platform: linux/amd64
17+
wails_tags: webkit2_41
18+
- name: linux-arm64
19+
runs_on: ubuntu-24.04-arm
20+
platform: linux/arm64
21+
wails_tags: webkit2_41
22+
23+
# macOS
24+
- name: macos-arm64
25+
runs_on: macos-15
26+
platform: darwin/arm64
27+
wails_tags: ""
28+
- name: macos-amd64
29+
runs_on: macos-15-intel
30+
platform: darwin/amd64
31+
wails_tags: ""
32+
33+
# Windows
34+
- name: windows-amd64
35+
runs_on: windows-latest
36+
platform: windows/amd64
37+
wails_tags: ""
38+
- name: windows-arm64
39+
runs_on: windows-11-arm
40+
platform: windows/arm64
41+
wails_tags: ""
42+
43+
runs-on: ${{ matrix.runs_on }}
44+
45+
steps:
46+
- name: Checkout
47+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
48+
49+
- name: Setup Go
50+
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
51+
with:
52+
go-version-file: go.mod
53+
cache: true
54+
55+
- name: Install Linux dependencies
56+
if: runner.os == 'Linux'
57+
run: |
58+
sudo apt-get update
59+
sudo apt-get install -y --no-install-recommends \
60+
build-essential \
61+
pkg-config \
62+
libgtk-3-dev \
63+
libwebkit2gtk-4.1-dev
64+
65+
- name: Install Wails CLI
66+
# v2.12.0
67+
run: |
68+
go install github.com/wailsapp/wails/v2/cmd/wails@ebe9d32e170905ff726a3bbb3d0076282e4edc41
69+
70+
- name: Build (Wails)
71+
shell: bash
72+
run: |
73+
set -euo pipefail
74+
if [ -n "${{ matrix.wails_tags }}" ]; then
75+
wails build -clean -platform "${{ matrix.platform }}" -tags "${{ matrix.wails_tags }}"
76+
else
77+
wails build -clean -platform "${{ matrix.platform }}"
78+
fi
79+
80+
- name: Build (Wails)
81+
if: runner.os == 'Linux'
82+
shell: bash
83+
run: |
84+
set -euo pipefail
85+
go install github.com/wailsapp/wails/v2/cmd/wails@ebe9d32e170905ff726a3bbb3d0076282e4edc41
86+
wails build -clean -platform "${{ matrix.platform }}" -tags webkit2_41
87+
88+
- name: Upload build artifacts
89+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
90+
with:
91+
name: ${{ matrix.name }}
92+
path: build/bin/**
93+
if-no-files-found: error

0 commit comments

Comments
 (0)