1- name : Wails build
1+ name : build
22
33on :
44 push :
5+ branches :
6+ - main
57 tags :
6- # Match any new tag
7- - ' *'
8-
9- env :
10- # Necessary for most environments as build failure can occur due to OOM issues
11- NODE_OPTIONS : " --max-old-space-size=4096"
8+ - ' v*'
129
1310jobs :
14- build :
15- strategy :
16- # Failure in one platform build won't impact the others
17- fail-fast : false
18- matrix :
19- build :
20- - name : ' YaGUI'
21- platform : ' linux/amd64'
22- os : ' ubuntu-22.04'
23- - name : ' YaGUI'
24- platform : ' windows/amd64'
25- os : ' windows-latest'
26- - name : ' YaGUI'
27- platform : ' darwin/universal'
28- os : ' macos-latest'
29-
30- runs-on : ${{ matrix.build.os }}
11+
12+ build-linux-amd64 :
13+ runs-on : ubuntu-latest
14+ steps :
15+ - uses : actions/checkout@v5
16+
17+ - uses : pnpm/action-setup@v4
18+ with :
19+ version : 10
20+
21+ - uses : actions/setup-go@v5
22+ with :
23+ go-version : ' 1.25'
24+
25+ - run : |
26+ sudo apt update
27+ sudo apt install -y build-essential pkg-config libgtk-3-dev libwebkit2gtk-4.1-dev
28+
29+ - run : go install github.com/wailsapp/wails/v2/cmd/wails@latest
30+
31+ - name : Build Linux binaries
32+
33+ - uses : actions/upload-artifact@v4
34+ with :
35+ name : binaries-linux
36+ path : build/*.zip
37+
38+
39+ build-linux-arm64 :
40+ runs-on : ubuntu-24.04-arm
41+ steps :
42+ - uses : actions/checkout@v5
43+ - uses : pnpm/action-setup@v4
44+ with :
45+ version : 10
46+ - uses : actions/setup-go@v5
47+ with :
48+ go-version : ' 1.25'
49+
50+ - run : |
51+ sudo apt update
52+ sudo apt install -y build-essential pkg-config libgtk-3-dev libwebkit2gtk-4.1-dev
53+
54+ - run : go install github.com/wailsapp/wails/v2/cmd/wails@latest
55+
56+
57+ - uses : actions/upload-artifact@v4
58+ with :
59+ name : binaries-linux-arm64
60+ path : build/*.zip
61+
62+
63+ build-macos :
64+ runs-on : macos-latest
65+ steps :
66+ - uses : actions/checkout@v5
67+ - uses : pnpm/action-setup@v4
68+ with :
69+ version : 10
70+ - uses : actions/setup-go@v5
71+ with :
72+ go-version : ' 1.25'
73+
74+ - run : |
75+ go install github.com/wailsapp/wails/v2/cmd/wails@latest
76+
77+ - uses : actions/upload-artifact@v4
78+ with :
79+ name : binaries-macos
80+ path : build/*.zip
81+
82+
83+ build-windows-amd64 :
84+ runs-on : windows-latest
85+ steps :
86+ - uses : actions/checkout@v5
87+ - uses : pnpm/action-setup@v4
88+ with :
89+ version : 10
90+ - uses : actions/setup-go@v5
91+ with :
92+ go-version : ' 1.25'
93+
94+ - run : go install github.com/wailsapp/wails/v2/cmd/wails@latest
95+
96+
97+ - uses : actions/upload-artifact@v4
98+ with :
99+ name : binaries-windows-amd64
100+ path : build/*.zip
101+
102+
103+ build-windows-arm64 :
104+ runs-on : windows-11-arm
105+ steps :
106+ - uses : actions/checkout@v5
107+
108+ - uses : msys2/setup-msys2@v2
109+ with :
110+ msystem : CLANGARM64
111+ update : true
112+ install : mingw-w64-clang-aarch64-gcc-compat
113+
114+ - uses : pnpm/action-setup@v4
115+ with :
116+ version : 10
117+
118+ - uses : actions/setup-go@v5
119+ with :
120+ go-version : ' 1.25'
121+
122+ - run : go install github.com/wailsapp/wails/v2/cmd/wails@latest
123+
124+ - name : Build Windows ARM64
125+ shell : msys2 {0}
126+ env :
127+ MSYS2_PATH_TYPE : inherit
128+ MSYSTEM : CLANGARM64
129+ CC : aarch64-w64-mingw32-gcc
130+ CXX : aarch64-w64-mingw32-g++
131+
132+ - uses : actions/upload-artifact@v4
133+ with :
134+ name : binaries-windows-arm64
135+ path : build/*.zip
136+
137+
138+ release :
139+ runs-on : ubuntu-latest
140+ needs :
141+ - build-linux-arm64
142+ - build-linux-amd64
143+ - build-macos
144+ - build-windows-amd64
145+ - build-windows-arm64
146+ permissions :
147+ contents : write
31148 steps :
32- - name : Checkout
33- uses : actions/checkout@v2
149+ - uses : actions/checkout@v5
150+
151+ - uses : actions/download-artifact@v4
34152 with :
35- submodules : recursive
153+ path : binaries
154+ merge-multiple : true
36155
37- - name : Build wails
38- uses : dAppServer/wails-build-action@main
39- id : build
156+ - uses : pnpm/action-setup@v4
40157 with :
41- build-name : ${{ matrix.build.name }}
42- build-platform : ${{ matrix.build.platform }}
43- package : false
44- go-version : ' 1.23'
158+ version : 10
159+
160+ - name : Create changelog
161+ run : |
162+ pnpm install -g release-it @release-it/conventional-changelog@10.0.1
163+ release-it --ci
45164
46- # Upload build artifacts
47- - name : Upload build artifacts
48- uses : actions/upload-artifact@v4
165+ - name : Create GitHub Release
166+ uses : ncipollo/release-action@v1
49167 with :
50- name : ${{ matrix.build.name }}-${{ matrix.build.os }}
51- path : |
52- build/bin/*.app
53- build/bin/*.exe
54- build/bin/*
168+ name : ${{ github.ref_name }}
169+ tag : ${{ github.ref_name }}
170+ bodyFile : CHANGELOG.md
171+ replacesArtifacts : true
172+ artifacts : binaries/*.zip
173+
0 commit comments