mirror of
https://github.com/UnnoTed/wireguird
synced 2026-07-25 17:24:46 -04:00
- add Makefile for building
- update installation scripts to allow arm64 building (default to amd64), - add GitHub Actions workflow for build test
This commit is contained in:
parent
6dac3cd878
commit
45ee0c53fb
47
.github/workflows/build.yml
vendored
Normal file
47
.github/workflows/build.yml
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
name: Build and Test
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
arch: [amd64, arm64]
|
||||
runs-on: ubuntu-${{ matrix.arch == 'arm64' && '22.04-arm' || '24.04' }}
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: '1.21'
|
||||
|
||||
- name: Install system dependencies
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y wireguard-tools libgtk-3-dev libayatana-appindicator3-dev resolvconf dpkg-dev
|
||||
|
||||
- name: Build with shell scripts
|
||||
run: ./package.sh
|
||||
env:
|
||||
ARCH: ${{ matrix.arch }}
|
||||
|
||||
- name: Clean build artifacts
|
||||
run: make clean
|
||||
|
||||
- name: Build with Makefile
|
||||
run: make
|
||||
env:
|
||||
ARCH: ${{ matrix.arch }}
|
||||
|
||||
- name: Upload .deb artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: wireguird-${{ matrix.arch }}-deb
|
||||
path: build/wireguird_${{ matrix.arch }}.deb
|
||||
32
Makefile
Normal file
32
Makefile
Normal file
@ -0,0 +1,32 @@
|
||||
.PHONY: all deps build package install clean run
|
||||
|
||||
ARCH ?= amd64
|
||||
|
||||
all: deps build package
|
||||
|
||||
deps:
|
||||
./deps.sh
|
||||
|
||||
build:
|
||||
mkdir -p ./deb/opt/wireguird/
|
||||
GOMAXPROCS=$$(nproc) go generate
|
||||
GOMAXPROCS=$$(nproc) GOARCH=$(ARCH) go build -ldflags "-s -w" -trimpath -o ./deb/opt/wireguird/wireguird
|
||||
|
||||
package:
|
||||
cp -r ./Icon/ ./deb/opt/wireguird/
|
||||
touch ./deb/opt/wireguird/wireguird.settings
|
||||
mkdir -p ./build/
|
||||
sed -i "s/Architecture: .*/Architecture: $(ARCH)/" ./deb/DEBIAN/control
|
||||
dpkg-deb --root-owner-group --build ./deb ./build/wireguird_$(ARCH).deb
|
||||
|
||||
install:
|
||||
sudo dpkg -i ./build/wireguird_$(ARCH).deb
|
||||
|
||||
clean:
|
||||
rm -rf ./build/
|
||||
rm -rf ./deb/opt/wireguird/
|
||||
|
||||
run:
|
||||
go generate
|
||||
go build
|
||||
sudo ./wireguird
|
||||
12
README.md
12
README.md
@ -36,6 +36,7 @@ sudo dpkg -i ./wireguird_amd64.deb
|
||||
|
||||
deb dependencies: `wireguard-tools libgtk-3-dev libayatana-appindicator3-dev golang-go resolvconf`
|
||||
|
||||
Using scripts:
|
||||
```sh
|
||||
git clone https://github.com/UnnoTed/wireguird
|
||||
cd wireguird
|
||||
@ -44,3 +45,14 @@ chmod +x ./*.sh
|
||||
./package.sh
|
||||
./install.sh
|
||||
```
|
||||
|
||||
Using make (supports multicore compiling):
|
||||
```sh
|
||||
git clone https://github.com/UnnoTed/wireguird
|
||||
cd wireguird
|
||||
make deps
|
||||
make build
|
||||
make package
|
||||
make install
|
||||
```
|
||||
Or `make all` to run deps, build, and package (install separately).
|
||||
|
||||
@ -4,7 +4,8 @@ if [[ -f "/etc/os-release" ]]; then
|
||||
echo "not supported yet"
|
||||
#sudo rpm
|
||||
elif [[ "${ID}" == "ubuntu" ]]; then
|
||||
sudo dpkg -i ./build/wireguird_amd64.deb
|
||||
ARCH=${ARCH:-amd64}
|
||||
sudo dpkg -i ./build/wireguird_${ARCH}.deb
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
echo "wireguird: cleaning..."
|
||||
|
||||
deb_file="./build/wireguird_amd64.deb"
|
||||
ARCH=${ARCH:-amd64}
|
||||
deb_file="./build/wireguird_${ARCH}.deb"
|
||||
if [ -e "$deb_file" ]; then
|
||||
rm -r "$deb_file"
|
||||
fi
|
||||
@ -15,7 +16,7 @@ mkdir -p "$opt_w_dir"
|
||||
echo "wireguird: building go binary..."
|
||||
time {
|
||||
go generate
|
||||
go build -ldflags "-s -w" -trimpath -o "$opt_w_dir""wireguird"
|
||||
GOARCH=$ARCH go build -ldflags "-s -w" -trimpath -o "$opt_w_dir""wireguird"
|
||||
}
|
||||
|
||||
echo "wireguird: copying icons..."
|
||||
@ -29,5 +30,7 @@ if [ ! -d "./build/" ]; then
|
||||
mkdir ./build/
|
||||
fi
|
||||
|
||||
sed -i "s/Architecture: .*/Architecture: $ARCH/" ./deb/DEBIAN/control
|
||||
|
||||
dpkg-deb --root-owner-group --build ./deb $deb_file
|
||||
echo "wireguird: done"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user