86
86
runs-on : ubuntu-22.04
87
87
needs :
88
88
- test-linux
89
+ strategy :
90
+ matrix :
91
+ target : [ amd64, arm64, arm ]
92
+ include :
93
+ - target : amd64
94
+ CGO_ENABLED : 1
95
+ GOARCH : amd64
96
+ CC : gcc
97
+ - target : arm64
98
+ CGO_ENABLED : 1
99
+ GOARCH : arm64
100
+ CC : /usr/local/gcc-linaro-4.8-2015.06-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
101
+ toolchain_source : https://releases.linaro.org/archive/15.06/components/toolchain/binaries/4.8/aarch64-linux-gnu/gcc-linaro-4.8-2015.06-x86_64_aarch64-linux-gnu.tar.xz
102
+ toolchain_extract : sudo tar -xf gcc-linaro-4.8-2015.06-x86_64_aarch64-linux-gnu.tar.xz -C /usr/local
103
+ - target : arm
104
+ CGO_ENABLED : 1
105
+ GOARCH : arm
106
+ CC : /usr/local/gcc-linaro-4.8-2015.06-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc
107
+ toolchain_source : https://releases.linaro.org/archive/15.06/components/toolchain/binaries/4.8/arm-linux-gnueabi/gcc-linaro-4.8-2015.06-x86_64_arm-linux-gnueabi.tar.xz
108
+ toolchain_extract : sudo tar -xf gcc-linaro-4.8-2015.06-x86_64_arm-linux-gnueabi.tar.xz -C /usr/local
109
+ env :
110
+ CGO_ENABLED : ${{ matrix.CGO_ENABLED }}
111
+ GOOS : linux
112
+ GOARCH : ${{ matrix.GOARCH }}
113
+ CC : ${{ matrix.CC }}
114
+ name : build-linux-${{ matrix.target }}
89
115
steps :
90
116
- uses : actions/checkout@v4
91
117
- uses : actions/download-artifact@v4
@@ -96,12 +122,16 @@ jobs:
96
122
with :
97
123
name : grpc
98
124
path : pkg/a2l
125
+ - if : ${{ matrix.CC != 'gcc' }}
126
+ run : |
127
+ wget ${{ matrix.toolchain_source }}
128
+ ${{ matrix.toolchain_extract }}
99
129
- run : |
100
130
go get github.com/antlr4-go/antlr/v4
101
131
go build --buildmode=c-shared -o a2l_grpc_$(go env GOOS)_$(go env GOARCH).so ./cmd/a2l/a2l.go
102
132
- uses : actions/upload-artifact@v4
103
133
with :
104
- name : linux
134
+ name : linux_${{ matrix.target }}
105
135
path : |
106
136
*.so
107
137
*.h
@@ -199,7 +229,15 @@ jobs:
199
229
- run : mkdir a2l_grpc
200
230
- uses : actions/download-artifact@v4
201
231
with :
202
- name : linux
232
+ name : linux_amd64
233
+ path : a2l_grpc
234
+ - uses : actions/download-artifact@v4
235
+ with :
236
+ name : linux_arm64
237
+ path : a2l_grpc
238
+ - uses : actions/download-artifact@v4
239
+ with :
240
+ name : linux_arm
203
241
path : a2l_grpc
204
242
- uses : actions/download-artifact@v4
205
243
with :
0 commit comments