-
Notifications
You must be signed in to change notification settings - Fork 0
155 lines (155 loc) · 4.65 KB
/
build.yml
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
name: Build libtailscale
on: [push]
jobs:
darwin:
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
submodules: recursive
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '>=1.20.1'
- name: Setup Go cache
uses: actions/cache@v3
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-golang-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-golang-
- name: Build darwin-amd64 library
run: GOOS=darwin GOARCH=amd64 LIBSUFFIX=dylib ./build.sh
- name: Build darwin-arm64 library
run: GOOS=darwin GOARCH=arm64 LIBSUFFIX=dylib ./build.sh
- name: Build darwin-universal library
run: ./universal.sh darwin-universal darwin-amd64 darwin-arm64
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: libtailscale-darwin
path: libs/
if-no-files-found: error
- name: Upload archive artifacts
uses: actions/upload-artifact@v3
with:
name: libtailscale-darwin-archives
path: archives/
if-no-files-found: error
linux:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
submodules: recursive
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '>=1.20.1'
- name: Setup Go cache
uses: actions/cache@v3
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-golang-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-golang-
- name: Build linux-amd64 library
run: GOOS=linux GOARCH=amd64 LIBSUFFIX=so ./build.sh
- name: Install aarch64 toolchain
run: sudo apt-get install -y gcc-aarch64-linux-gnu
- name: Build linux-arm64 library
run: CC=aarch64-linux-gnu-gcc GOOS=linux GOARCH=arm64 LIBSUFFIX=so ./build.sh
- name: Upload library artifacts
uses: actions/upload-artifact@v3
with:
name: libtailscale-linux
path: libs/
if-no-files-found: error
- name: Upload archive artifacts
uses: actions/upload-artifact@v3
with:
name: libtailscale-linux-archives
path: archives/
if-no-files-found: error
# windows:
# runs-on: windows-latest
# steps:
# - name: Checkout repository
# uses: actions/checkout@v3
# with:
# submodules: recursive
# - name: Setup Go
# uses: actions/setup-go@v3
# with:
# go-version: '>=1.20.1'
# - name: Setup Go cache
# uses: actions/cache@v3
# with:
# path: |
# ~/.cache/go-build
# ~/go/pkg/mod
# key: ${{ runner.os }}-golang-${{ hashFiles('**/go.sum') }}
# restore-keys: |
# ${{ runner.os }}-golang-
# - name: Build windows-amd64 library
# run: .\build.ps1
# env:
# GOOS: windows
# GOARCH: amd64
# LIBSUFFIX: dll
# - name: Build windows-arm64 library
# run: .\build.ps1
# env:
# GOOS: windows
# GOARCH: arm64
# LIBSUFFIX: dll
# - name: Upload library artifacts
# uses: actions/upload-artifact@v3
# with:
# name: libtailscale-libs
# path: libs/
# if-no-files-found: error
package:
needs:
- linux
- darwin
runs-on: ubuntu-latest
steps:
- name: Download linux libraries
uses: actions/download-artifact@v3
with:
name: libtailscale-linux
path: libs
- name: Download darwin libraries
uses: actions/download-artifact@v3
with:
name: libtailscale-darwin
path: libs
- name: Download linux archives
uses: actions/download-artifact@v3
with:
name: libtailscale-linux-archives
path: archives
- name: Download darwin archives
uses: actions/download-artifact@v3
with:
name: libtailscale-darwin-archives
path: archives
- name: Upload library artifacts
uses: actions/upload-artifact@v3
with:
name: libtailscale-all
path: libs/
if-no-files-found: error
- name: Upload archives artifacts
uses: actions/upload-artifact@v3
with:
name: libtailscale-all-archives
path: archives/
if-no-files-found: error