1919 - x64
2020 cpp_arch :
2121 - x64
22- docker :
23- - " "
24- docker_cmd :
22+ dockerfile :
2523 - " "
2624
2725 include :
4442
4543 # Alpine
4644 - os : ubuntu-22.04
47- docker : node:18-alpine
48- docker_cmd :
49- apk add --no-cache bash build-base curl git g++ make ninja-build
50- pkgconfig unzip zip python3 tar cmake ninja musl-dev && cp
51- /usr/lib/ninja-build/bin/ninja /usr/bin/ninja && npm i -g pnpm &&
52- pnpm install && pnpm run build
45+ dockerfile : docker/alpine.dockerfile
5346 node_arch : x64
5447 cpp_arch : x64
5548
8275 shell : bash
8376
8477 - name : Setup Cpp
85- if : ${{ !matrix.docker }}
78+ if : ${{ !matrix.dockerfile }}
8679 uses : aminya/setup-cpp@v1
8780 with :
8881 vcvarsall : ${{ contains(matrix.os, 'windows') }}
@@ -98,34 +91,34 @@ jobs:
9891 brew install gnutls autoconf automake libtool
9992
10093 - uses : pnpm/action-setup@v4
101- if : ${{ !matrix.docker }}
94+ if : ${{ !matrix.dockerfile }}
10295 with :
10396 version : 9
10497
10598 - name : Install Node 20
106- if : ${{ !matrix.docker }}
99+ if : ${{ !matrix.dockerfile }}
107100 uses : actions/setup-node@v4
108101 with :
109102 node-version : 20
110103 architecture : ${{ env.setup_node_arch }}
111104
112105 - name : Install and Build Native
113- if : ${{ !matrix.docker }}
106+ if : ${{ !matrix.dockerfile }}
114107 run : pnpm install
115108
116109 - name : Build JavaScript
117- if : ${{ !matrix.docker }}
110+ if : ${{ !matrix.dockerfile }}
118111 run : pnpm run build.js
119112
120113 - name : Install Node 10
121- if : ${{ !matrix.docker && matrix.os != 'macos-14' }}
114+ if : ${{ !matrix.dockerfile && matrix.os != 'macos-14' }}
122115 uses : actions/setup-node@v4
123116 with :
124117 node-version : 10
125118 architecture : ${{ env.setup_node_arch }}
126119
127120 - name : Build Native
128- if : ${{ !matrix.docker && matrix.node_arch != 'ia32' }}
121+ if : ${{ !matrix.dockerfile && matrix.node_arch != 'ia32' }}
129122 run : npm run build.native
130123
131124 - name : Build Native Windows 32
@@ -135,19 +128,19 @@ jobs:
135128 windows-x86
136129
137130 - name : Use Node 20
138- if : ${{ !matrix.docker }}
131+ if : ${{ !matrix.dockerfile }}
139132 uses : actions/setup-node@v4
140133 with :
141134 node-version : 20
142135 architecture : ${{ env.setup_node_arch }}
143136
144137 - name : Prebuild Docker
145- if : ${{ matrix.docker }}
138+ if : ${{ matrix.dockerfile }}
146139 run : |
147- docker login -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }} ghcr.io
148- docker pull ${{ matrix.docker }}
149- docker tag ${{ matrix.docker }} builder
150- docker run --volume ${{ github.workspace }}:/app --workdir /app --privileged builder sh -c "${{ matrix.docker_cmd }}"
140+ docker build -t zeromq -f ${{ matrix.dockerfile }} .
141+ docker create --name zeromq-temp zeromq
142+ docker cp zeromq-temp:/app/build ./build
143+ docker rm -f zeromq-temp
151144
152145 - name : Upload build
153146 uses : actions/upload-artifact@v4
@@ -157,11 +150,11 @@ jobs:
157150 overwrite : true
158151
159152 - name : Lint
160- if : " ${{ contains(matrix.os, 'ubuntu') && !matrix.docker }}"
153+ if : " ${{ contains(matrix.os, 'ubuntu') && !matrix.dockerfile }}"
161154 run : pnpm run lint-test
162155
163156 - name : Test
164- if : ${{ !matrix.docker }}
157+ if : ${{ !matrix.dockerfile }}
165158 uses : nick-fields/retry@v3
166159 with :
167160 timeout_minutes : 5
@@ -175,7 +168,7 @@ jobs:
175168 shell : bash
176169
177170 - name : Test Compatibility
178- if : ${{ !matrix.docker }}
171+ if : ${{ !matrix.dockerfile }}
179172 uses : nick-fields/retry@v3
180173 with :
181174 timeout_minutes : 5
@@ -189,7 +182,7 @@ jobs:
189182 shell : bash
190183
191184 - name : Test Electron Windows/MacOS
192- if : " ${{ !matrix.docker }}"
185+ if : " ${{ !matrix.dockerfile }}"
193186 uses : nick-fields/retry@v3
194187 with :
195188 timeout_minutes : 5
@@ -199,7 +192,7 @@ jobs:
199192 continue-on-error : true
200193
201194 - name : Test Electron Linux
202- if : " ${{ contains(matrix.os, 'ubuntu') && !matrix.docker }}"
195+ if : " ${{ contains(matrix.os, 'ubuntu') && !matrix.dockerfile }}"
203196 uses : nick-fields/retry@v3
204197 with :
205198 timeout_minutes : 5
0 commit comments