27
27
- false
28
28
zmq_version :
29
29
- 4.3.4
30
+ docker :
31
+ - " "
32
+ docker_cmd :
33
+ - " "
30
34
31
35
include :
32
36
- os : windows-2022
61
65
zmq_draft : false
62
66
zmq_version : 4.3.4
63
67
68
+ - os : ubuntu-22.04
69
+ docker : node:18-alpine
70
+ docker_cmd : apk add --no-cache pkgconfig curl tar python3 make gcc g++ cmake musl-dev && npm i -g pnpm && pnpm install && pnpm run prebuild
71
+ node_version : 18
72
+ node_arch : x64
73
+ ARCH : x64
74
+ cpp_arch : x64
75
+ zmq_draft : false
76
+ zmq_version : 4.3.4
77
+
64
78
env :
65
79
ZMQ_VERSION : ${{ matrix.zmq_version }}
66
80
ZMQ_DRAFT : ${{ matrix.zmq_draft }}
@@ -80,18 +94,20 @@ jobs:
80
94
"cache-OS:${{ matrix.os }}-arch:${{ matrix.node_arch }}-ZMQ_DRAFT:${{ matrix.zmq_draft }}-ZMQ_VERSION:${{ matrix.zmq_version }}-Node:${{ matrix.node_version }}-"
81
95
82
96
- name : Setup Cpp
97
+ if : ${{ !matrix.docker }}
83
98
uses : aminya/setup-cpp@v1
84
99
with :
85
100
vcvarsall : ${{ contains(matrix.os, 'windows') }}
86
101
cmake : true
87
- ninja : true
88
102
architecture : ${{ matrix.cpp_arch }}
89
103
90
104
105
+ if : ${{ !matrix.docker }}
91
106
with :
92
107
version : 7
93
108
94
109
- name : Install Node
110
+ if : ${{ !matrix.docker }}
95
111
uses : actions/setup-node@v3
96
112
with :
97
113
node-version : ${{ matrix.node_version }}
@@ -104,21 +120,32 @@ jobs:
104
120
brew install libsodium gnutls
105
121
106
122
- name : Install Dependencies and Build
123
+ if : ${{ !matrix.docker }}
107
124
run : pnpm install
108
125
109
126
- name : Prebuild
127
+ if : ${{ !matrix.docker }}
110
128
run : pnpm run prebuild
111
129
130
+ - name : Prebuild Docker
131
+ if : ${{ matrix.docker }}
132
+ run : |
133
+ docker login -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }} ghcr.io
134
+ docker pull ${{ matrix.docker }}
135
+ docker tag ${{ matrix.docker }} builder
136
+ docker run --volume ${{ github.workspace }}:/app --workdir /app --privileged builder sh -c "${{ matrix.docker_cmd }}"
137
+
112
138
- name : Upload artifacts
113
- uses : actions/upload-artifact@v2
139
+ uses : actions/upload-artifact@v3
114
140
with :
115
141
path : ./prebuilds
116
142
117
143
- name : Lint
118
- if : contains(matrix.os, 'ubuntu')
144
+ if : " ${{ contains(matrix.os, 'ubuntu') && !matrix.docker }} "
119
145
run : pnpm run lint-test
120
146
121
147
- name : Test (Debug)
148
+ if : ${{ !matrix.docker }}
122
149
uses : nick-fields/retry@v2
123
150
with :
124
151
timeout_minutes : 15
@@ -128,6 +155,7 @@ jobs:
128
155
pnpm run test.skip_gc_tests
129
156
130
157
- name : Tests + GC Tests (Release)
158
+ if : ${{ !matrix.docker }}
131
159
run : |
132
160
pnpm run clean
133
161
pnpm run test
0 commit comments