Skip to content

Commit 6f3d55e

Browse files
committed
build: add windows 7
1 parent 6d19268 commit 6f3d55e

4 files changed

Lines changed: 91 additions & 7 deletions

File tree

.github/workflows/build-manual.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,3 +165,46 @@ jobs:
165165
name: awl-release-build-macos
166166
path: awl/build/*
167167
if-no-files-found: error
168+
169+
build-windows7:
170+
runs-on: ubuntu-latest
171+
needs: [ build ]
172+
defaults:
173+
run:
174+
shell: bash
175+
steps:
176+
- name: Checkout awl code
177+
uses: actions/checkout@v6
178+
with:
179+
fetch-depth: 0 # also fetch tags for 'git describe'
180+
ref: ${{ github.event.inputs.awl_ref }}
181+
path: 'awl'
182+
- name: Retrieve saved static/ build
183+
uses: actions/download-artifact@v6
184+
with:
185+
name: awl-release-static
186+
path: awl/static
187+
188+
- name: Download and setup go-legacy-win7
189+
run: |
190+
wget -P /tmp https://github.com/thongtech/go-legacy-win7/releases/download/v1.25.5-1/go-legacy-win7-1.25.5-1.linux_amd64.tar.gz
191+
tar -xzf /tmp/go-legacy-win7-1.25.5-1.linux_amd64.tar.gz -C /tmp
192+
export GOROOT=/tmp/go-legacy-win7
193+
export PATH=$GOROOT/bin:$PATH
194+
go version
195+
196+
- name: Build
197+
run: |
198+
cd awl
199+
mkdir build
200+
export GOROOT=/tmp/go-legacy-win7
201+
export PATH=$GOROOT/bin:$PATH
202+
./build.sh release-windows7
203+
echo "ls build"
204+
ls -lah build
205+
- name: Upload build artifacts
206+
uses: actions/upload-artifact@v5
207+
with:
208+
name: awl-release-build-windows7
209+
path: awl/build/*
210+
if-no-files-found: error

build.sh

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,20 @@ gobuild-windows() {
9191
done
9292
}
9393

94+
# build for windows 7 OS
95+
gobuild-windows7() {
96+
name="$1"
97+
for arch in 386 amd64; do
98+
install-wintun "$arch"
99+
archive_name="$name-windows7-$arch-$VERSION.zip"
100+
filename="$name.exe"
101+
CGO_ENABLED=0 GOOS=windows GOARCH=$arch go build -trimpath -ldflags "-s -w -H windowsgui -X github.com/anywherelan/awl/config.Version=${VERSION}" -o "$filename"
102+
zip "$archive_name" "$filename"
103+
rm "$filename"
104+
mv "$archive_name" "$builddir"
105+
done
106+
}
107+
94108
# Commands (functions with "cross" build for different arch-es/OS-es)
95109

96110
# create new build dir, delete static dir
@@ -195,6 +209,13 @@ release-macos)
195209
cd "$awldir/cmd/awl-tray"
196210
gobuild-macos awl-tray
197211
;;
212+
release-windows7)
213+
download-wintun true
214+
cd "$awldir/cmd/awl"
215+
gobuild-windows7 awl
216+
cd "$awldir/cmd/awl-tray"
217+
gobuild-windows7 awl-tray
218+
;;
198219
web)
199220
build-web
200221
;;

tools/generate_release_info.go

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,10 @@ func main() {
2525
var awlAndroid string
2626
var awlLinux []string
2727
var awlWindows []string
28+
var awlWindows7 []string
2829
var awlTrayLinux []string
2930
var awlTrayWindows []string
31+
var awlTrayWindows7 []string
3032
var awlTrayMacos []string
3133

3234
for _, file := range files {
@@ -40,10 +42,14 @@ func main() {
4042
awlAndroid = filename
4143
case strings.HasPrefix(filename, "awl-linux"):
4244
awlLinux = append(awlLinux, filename)
45+
case strings.HasPrefix(filename, "awl-windows7"):
46+
awlWindows7 = append(awlWindows7, filename)
4347
case strings.HasPrefix(filename, "awl-windows"):
4448
awlWindows = append(awlWindows, filename)
4549
case strings.HasPrefix(filename, "awl-tray-linux"):
4650
awlTrayLinux = append(awlTrayLinux, filename)
51+
case strings.HasPrefix(filename, "awl-tray-windows7"):
52+
awlTrayWindows7 = append(awlTrayWindows7, filename)
4753
case strings.HasPrefix(filename, "awl-tray-windows"):
4854
awlTrayWindows = append(awlTrayWindows, filename)
4955
case strings.HasPrefix(filename, "awl-tray-macos"):
@@ -53,8 +59,10 @@ func main() {
5359

5460
sort.Strings(awlLinux)
5561
sort.Strings(awlWindows)
62+
sort.Strings(awlWindows7)
5663
sort.Strings(awlTrayLinux)
5764
sort.Strings(awlTrayWindows)
65+
sort.Strings(awlTrayWindows7)
5866
sort.Strings(awlTrayMacos)
5967

6068
releaseTag := strings.TrimPrefix(awlAndroid, "awl-android-")
@@ -66,13 +74,15 @@ func main() {
6674
}
6775

6876
data := map[string]interface{}{
69-
"ReleaseTag": releaseTag,
70-
"AwlAndroid": awlAndroid,
71-
"AwlLinux": awlLinux,
72-
"AwlWindows": awlWindows,
73-
"AwlTrayLinux": awlTrayLinux,
74-
"AwlTrayWindows": awlTrayWindows,
75-
"AwlTrayMacos": awlTrayMacos,
77+
"ReleaseTag": releaseTag,
78+
"AwlAndroid": awlAndroid,
79+
"AwlLinux": awlLinux,
80+
"AwlWindows": awlWindows,
81+
"AwlWindows7": awlWindows7,
82+
"AwlTrayLinux": awlTrayLinux,
83+
"AwlTrayWindows": awlTrayWindows,
84+
"AwlTrayWindows7": awlTrayWindows7,
85+
"AwlTrayMacos": awlTrayMacos,
7686
}
7787

7888
err = temp.Execute(os.Stdout, data)

tools/release-description-template.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ For instructions on how to install anywherelan [see readme](https://github.com/a
1313
{{range .AwlTrayWindows}}
1414
[{{.}}](https://github.com/anywherelan/awl/releases/download/{{$.ReleaseTag}}/{{.}}) {{end}}
1515

16+
### Windows 7 binary builds
17+
18+
{{range .AwlTrayWindows7}}
19+
[{{.}}](https://github.com/anywherelan/awl/releases/download/{{$.ReleaseTag}}/{{.}}) {{end}}
20+
1621
### macOS binary builds
1722

1823
{{range .AwlTrayMacos}}
@@ -34,3 +39,8 @@ For instructions on how to install anywherelan [see readme](https://github.com/a
3439

3540
{{range .AwlWindows}}
3641
[{{.}}](https://github.com/anywherelan/awl/releases/download/{{$.ReleaseTag}}/{{.}}) {{end}}
42+
43+
### Windows 7 binary builds
44+
45+
{{range .AwlWindows7}}
46+
[{{.}}](https://github.com/anywherelan/awl/releases/download/{{$.ReleaseTag}}/{{.}}) {{end}}

0 commit comments

Comments
 (0)