-
-
Notifications
You must be signed in to change notification settings - Fork 13
139 lines (118 loc) · 3.94 KB
/
build.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
name: 'Build'
on:
push:
branches:
- main
- dev
pull_request:
branches:
- main
- dev
jobs:
build-wireguard-go:
runs-on: [self-hosted, macOS]
steps:
- uses: actions/checkout@v4
with:
repository: WireGuard/wireguard-go
ref: master
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.20'
- name: Build wireguard-go binary
run: make
- name: Upload binary artifact
uses: actions/upload-artifact@v3
with:
name: wireguard-go
path: wireguard-go
build:
needs: build-wireguard-go
strategy:
fail-fast: false
matrix:
platform: [Linux]
runs-on:
- self-hosted
- ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: actions/setup-node@v3
with:
node-version: '20'
- uses: pnpm/action-setup@v2
with:
version: 8
run_install: false
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-build-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-build-store-
- name: Install deps
run: pnpm install --frozen-lockfile
- uses: dtolnay/rust-toolchain@stable
- name: install linux deps
if: matrix.platform == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf libssl-dev unzip
- name: install protobuf compiler
if: matrix.platform == 'Linux'
run: |
PB_REL='https://github.com/protocolbuffers/protobuf/releases'
PB_VERSION='3.20.0' && curl -LO $PB_REL/download/v$PB_VERSION/protoc-$PB_VERSION-linux-x86_64.zip
sudo unzip protoc-$PB_VERSION-linux-x86_64.zip bin/protoc include/google/* -d /usr/local
- name: Download wireguard-go binary
if: matrix.platform == 'macOS'
uses: actions/download-artifact@v3
with:
name: wireguard-go
path: src-tauri/binaries/wireguard-go-x86_64-apple-darwin
- name: Build packages
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Make sure wireguard-go binary is executable
if: matrix.platform == 'macOS'
run: chmod +x src-tauri/target/release/bundle/macos/Defguard.app/Contents/MacOS/wireguard-go
- name: Tar macOS files
if: matrix.platform == 'macOS'
run: tar -cvf bundle.tar -C src-tauri/target/release/bundle .
- name: Upload macOS artifacts
if: matrix.platform == 'macOS'
uses: actions/upload-artifact@v3
with:
name: macos.tar
path: bundle.tar
retention-days: 1
- name: Tar Linux files
if: matrix.platform == 'Linux'
run: find 'src-tauri/target/release/bundle' -name '*.AppImage' -printf '%P\0' -o -name '*.deb' -printf '%P\0' | tar --null -C 'src-tauri/target/release/bundle' -cvf bundle.tar --files-from=-
- name: Upload Linux artifacts
if: matrix.platform == 'Linux'
uses: actions/upload-artifact@v3
with:
name: linux.tar
path: bundle.tar
retention-days: 1
- name: Tar service binary
if: matrix.platform == 'Linux'
run: tar -cvf service.tar 'src-tauri/target/release/defguard-service'
- name: Upload service binary
if: matrix.platform == 'Linux'
uses: actions/upload-artifact@v3
with:
name: service.tar
path: service.tar
retention-days: 1