@@ -112,26 +112,85 @@ jobs:
112112 - name : Init builder
113113 run : docker buildx create --name builder --bootstrap --use
114114
115- - name : Run Buildx
115+ - name : Build base image
116116 run : |
117117 ARCH=${{ matrix.linux_arch == 'arm64' && 'arm64v8' || matrix.linux_arch }}
118118 NODE_VERSION=${{ steps.get_nodejs_version.outputs.version }}
119119 TAG=$ARCH-alpine-lib-base-node-$NODE_VERSION
120120 docker --debug buildx build --progress=plain --no-cache \
121121 --platform linux/${{ matrix.linux_arch }} \
122122 --build-arg="ARCH=$ARCH" \
123- --build-arg="NODE_VERSION=${{ steps.get_nodejs_version.outputs.version }} " \
123+ --build-arg="NODE_VERSION=$NODE_VERSION " \
124124 --output type=oci,dest=alpine-node-base,platform-split=false \
125125 -f ./.github/docker/Dockerfile.musl \
126126 -t $ARCH-alpine-lib-base-node-$NODE_VERSION \
127127 .
128128
129- - id : upload
130- name : Upload prebuild
129+ - id : upload-base-image
130+ name : Upload base image
131131 uses : actions/upload-artifact@v4
132132 with :
133- name : ${{ matrix.linux_arch == 'arm64' && 'arm64v8' || matrix.linux_arch }}-alpine-lib- base-node-${{ steps.get_nodejs_version.outputs.version }}
133+ name : ${{ matrix.linux_arch == 'arm64' && 'arm64v8' || matrix.linux_arch }}-alpine-base-node-${{ steps.get_nodejs_version.outputs.version }}
134134 path : alpine-node-base
135135 if-no-files-found : ' error'
136136 retention-days : 30
137- compression-level : 0
137+ compression-level : 0
138+
139+ - name : Build libmongocrypt
140+ run : |
141+ docker load --input alpine-node-base
142+ ARCH=${{ matrix.linux_arch == 'arm64' && 'arm64v8' || matrix.linux_arch }}
143+ NODE_VERSION=${{ steps.get_nodejs_version.outputs.version }}
144+ TAG=$ARCH-alpine-libmongocrypt-base-node-$NODE_VERSION
145+ docker --debug buildx build --progress=plain --no-cache \
146+ --platform linux/${{ matrix.linux_arch }} \
147+ --build-arg="ARCH=$ARCH" \
148+ --build-arg="NODE_VERSION=$NODE_VERSION" \
149+ --output type=oci,dest=alpine-libmongocrypt-base,platform-split=false \
150+ -f ./.github/docker/AddLibmongocrypt.musl \
151+ -t $ARCH-alpine-libmongocrypt-node-$NODE_VERSION \
152+ .
153+
154+ - id : upload-image-with-libmongocrypt
155+ name : Upload libmongocrypt
156+ uses : actions/upload-artifact@v4
157+ with :
158+ name : ${{ matrix.linux_arch == 'arm64' && 'arm64v8' || matrix.linux_arch }}-alpine-libmongocrypt-node-${{ steps.get_nodejs_version.outputs.version }}
159+ path : alpine-libmongocrypt-base
160+ if-no-files-found : ' error'
161+ retention-days : 30
162+ compression-level : 0
163+
164+ - name : Build Prebuilds
165+ run : |
166+ docker load --input alpine-libmongocrypt-base
167+ ARCH=${{ matrix.linux_arch == 'arm64' && 'arm64v8' || matrix.linux_arch }}
168+ NODE_VERSION=${{ steps.get_nodejs_version.outputs.version }}
169+ TAG=$ARCH-alpine-prebuilds-base-node-$NODE_VERSION
170+ docker --debug buildx build --progress=plain --no-cache \
171+ --platform linux/${{ matrix.linux_arch }} \
172+ --build-arg="ARCH=$ARCH" \
173+ --build-arg="NODE_VERSION=$NODE_VERSION" \
174+ --output type=oci,dest=alpine-prebuilds-base,platform-split=false \
175+ -f ./.github/docker/Prebuilds.musl \
176+ -t $ARCH-alpine-prebuilds-node-$NODE_VERSION \
177+ .
178+
179+ - id : upload-images-with-prebuilds
180+ name : Upload libmongocrypt
181+ uses : actions/upload-artifact@v4
182+ with :
183+ name : ${{ matrix.linux_arch == 'arm64' && 'arm64v8' || matrix.linux_arch }}-alpine-prebuilds-node-${{ steps.get_nodejs_version.outputs.version }}
184+ path : alpine-prebuilds-base
185+ if-no-files-found : ' error'
186+ retention-days : 30
187+ compression-level : 0
188+
189+ # - name: Test
190+ # run: |
191+ # docker load --input alpine-prebuilds-base
192+ # ARCH=${{ matrix.linux_arch == 'arm64' && 'arm64v8' || matrix.linux_arch }}
193+ # NODE_VERSION=${{ steps.get_nodejs_version.outputs.version }}
194+ # TAG=$ARCH-alpine-prebuilds-base-node-$NODE_VERSION
195+ # docker run --platform linux/${{ matrix.linux_arch }} $ARCH-alpine-prebuilds-node-$NODE_VERSION bash -C "npm test"
196+
0 commit comments