Skip to content

Commit e271bbe

Browse files
committed
Split per platform logic
1 parent 14fb3fc commit e271bbe

File tree

132 files changed

+1442
-264
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

132 files changed

+1442
-264
lines changed

.automation/build.py

+12
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,8 @@ def build_dockerfile(
293293
is_docker_build_platform_other_run = False
294294
has_npm_copy = False
295295
venv_builddeps_command = []
296+
venv_builddeps_arm_command = []
297+
venv_builddeps_amd_command = []
296298
venv_apk_builddeps = ["gcc", "libffi-dev", "musl-dev", "make", "curl", "openssl-dev"]
297299
# Manage docker
298300
if requires_docker is True:
@@ -455,6 +457,10 @@ def build_dockerfile(
455457
venv_apk_builddeps += item["install"]["pip_apk"]
456458
if "pip_builddep" in item["install"]:
457459
venv_builddeps_command += item["install"]["pip_builddep"]
460+
if "pip_builddep_arm" in item["install"]:
461+
venv_builddeps_arm_command += item["install"]["pip_builddep_arm"]
462+
if "pip_builddep_amd" in item["install"]:
463+
venv_builddeps_amd_command += item["install"]["pip_builddep_amd"]
458464
if "build_platform_apk" in item["install"]:
459465
apk_build_platform_packages += item["install"]["build_platform_apk"]
460466
if "npm_apk" in item["install"]:
@@ -666,6 +672,12 @@ def build_dockerfile(
666672
replace_in_file(
667673
dockerfile, "#PIPVENV_BUILDDEPS__START", "#PIPVENV_BUILDDEPS__END", "\\n".join(venv_builddeps_command)
668674
)
675+
replace_in_file(
676+
dockerfile, "#PIPVENV_BUILDDEPS_AMD__START", "#PIPVENV_BUILDDEPS_AMD__END", "\\n".join(venv_builddeps_amd_command)
677+
)
678+
replace_in_file(
679+
dockerfile, "#PIPVENV_BUILDDEPS_ARM__START", "#PIPVENV_BUILDDEPS_ARM__END", "\\n".join(venv_builddeps_arm_command)
680+
)
669681
replace_in_file(
670682
dockerfile, "#PIPVENV_PATH__START", "#PIPVENV_PATH__END", pipenv_path_command
671683
)

Dockerfile

+10-2
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ COPY --link --from=cargo /bin/* /usr/bin/
225225
#COPY__END
226226

227227
FROM --platform=$TARGETPLATFORM python:3.11.3-alpine3.17 AS target-python
228-
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv
228+
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv-base
229229

230230

231231
#############################################################################################
@@ -269,14 +269,22 @@ RUN apk add --update --no-cache \
269269
openssl-dev \
270270
g++ \
271271
cmake
272-
ENV CFLAGS=-mno-outline-atomics
273272
#PIPVENV_BUILDDEPS__END
274273

275274
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-toolchain stable
276275
ENV PATH=${PATH}:/root/.cargo/bin
277276

278277
RUN mkdir /venvs
279278

279+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-amd64
280+
#PIPVENV_BUILDDEPS_AMD__START
281+
282+
#PIPVENV_BUILDDEPS_AMD__END
283+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-arm64
284+
#PIPVENV_BUILDDEPS_ARM__START
285+
ENV CFLAGS=-mno-outline-atomics
286+
#PIPVENV_BUILDDEPS_ARM__END
287+
FROM --platform=$BUILDPLATFORM python-venv-${TARGETPLATFORM} AS python-venv-arm64
280288
ARG TARGETPLATFORM
281289
COPY --link --from=target-python /usr/local/bin/python3 /usr/local/bin/target-python3
282290

flavors/ci_light/Dockerfile

+11-2
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ COPY --link --from=cargo /bin/* /usr/bin/
134134
#COPY__END
135135

136136
FROM --platform=$TARGETPLATFORM python:3.11.3-alpine3.17 AS target-python
137-
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv
137+
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv-base
138138

139139

140140
#############################################################################################
@@ -147,7 +147,6 @@ RUN PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir --upgrade pip crossenv
147147

148148
#PIPVENV_DOWNLOAD__END
149149

150-
#RUN apk add --update --no-cache cmake g++
151150
#PIPVENV_BUILDDEPS__START
152151
RUN apk add --update --no-cache \
153152
gcc \
@@ -157,11 +156,21 @@ RUN apk add --update --no-cache \
157156
curl \
158157
openssl-dev
159158
#PIPVENV_BUILDDEPS__END
159+
160160
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-toolchain stable
161161
ENV PATH=${PATH}:/root/.cargo/bin
162162

163163
RUN mkdir /venvs
164164

165+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-amd64
166+
#PIPVENV_BUILDDEPS_AMD__START
167+
168+
#PIPVENV_BUILDDEPS_AMD__END
169+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-arm64
170+
#PIPVENV_BUILDDEPS_ARM__START
171+
172+
#PIPVENV_BUILDDEPS_ARM__END
173+
FROM --platform=$BUILDPLATFORM python-venv-${TARGETPLATFORM} AS python-venv-arm64
165174
ARG TARGETPLATFORM
166175
COPY --link --from=target-python /usr/local/bin/python3 /usr/local/bin/target-python3
167176

flavors/cupcake/Dockerfile

+11-3
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ COPY --link --from=cargo /bin/* /usr/bin/
204204
#COPY__END
205205

206206
FROM --platform=$TARGETPLATFORM python:3.11.3-alpine3.17 AS target-python
207-
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv
207+
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv-base
208208

209209

210210
#############################################################################################
@@ -235,7 +235,6 @@ RUN PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir --upgrade pip crossenv
235235

236236
#PIPVENV_DOWNLOAD__END
237237

238-
#RUN apk add --update --no-cache cmake g++
239238
#PIPVENV_BUILDDEPS__START
240239
RUN apk add --update --no-cache \
241240
gcc \
@@ -246,13 +245,22 @@ RUN apk add --update --no-cache \
246245
openssl-dev \
247246
g++ \
248247
cmake
249-
ENV CFLAGS=-mno-outline-atomics
250248
#PIPVENV_BUILDDEPS__END
249+
251250
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-toolchain stable
252251
ENV PATH=${PATH}:/root/.cargo/bin
253252

254253
RUN mkdir /venvs
255254

255+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-amd64
256+
#PIPVENV_BUILDDEPS_AMD__START
257+
258+
#PIPVENV_BUILDDEPS_AMD__END
259+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-arm64
260+
#PIPVENV_BUILDDEPS_ARM__START
261+
ENV CFLAGS=-mno-outline-atomics
262+
#PIPVENV_BUILDDEPS_ARM__END
263+
FROM --platform=$BUILDPLATFORM python-venv-${TARGETPLATFORM} AS python-venv-arm64
256264
ARG TARGETPLATFORM
257265
COPY --link --from=target-python /usr/local/bin/python3 /usr/local/bin/target-python3
258266

flavors/documentation/Dockerfile

+11-2
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ COPY --link --from=cargo /bin/* /usr/bin/
167167
#COPY__END
168168

169169
FROM --platform=$TARGETPLATFORM python:3.11.3-alpine3.17 AS target-python
170-
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv
170+
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv-base
171171

172172

173173
#############################################################################################
@@ -188,7 +188,6 @@ RUN PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir --upgrade pip crossenv
188188

189189
#PIPVENV_DOWNLOAD__END
190190

191-
#RUN apk add --update --no-cache cmake g++
192191
#PIPVENV_BUILDDEPS__START
193192
RUN apk add --update --no-cache \
194193
gcc \
@@ -200,11 +199,21 @@ RUN apk add --update --no-cache \
200199
g++ \
201200
cmake
202201
#PIPVENV_BUILDDEPS__END
202+
203203
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-toolchain stable
204204
ENV PATH=${PATH}:/root/.cargo/bin
205205

206206
RUN mkdir /venvs
207207

208+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-amd64
209+
#PIPVENV_BUILDDEPS_AMD__START
210+
211+
#PIPVENV_BUILDDEPS_AMD__END
212+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-arm64
213+
#PIPVENV_BUILDDEPS_ARM__START
214+
215+
#PIPVENV_BUILDDEPS_ARM__END
216+
FROM --platform=$BUILDPLATFORM python-venv-${TARGETPLATFORM} AS python-venv-arm64
208217
ARG TARGETPLATFORM
209218
COPY --link --from=target-python /usr/local/bin/python3 /usr/local/bin/target-python3
210219

flavors/dotnet/Dockerfile

+11-2
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ COPY --link --from=cargo /bin/* /usr/bin/
170170
#COPY__END
171171

172172
FROM --platform=$TARGETPLATFORM python:3.11.3-alpine3.17 AS target-python
173-
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv
173+
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv-base
174174

175175

176176
#############################################################################################
@@ -192,7 +192,6 @@ RUN PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir --upgrade pip crossenv
192192

193193
#PIPVENV_DOWNLOAD__END
194194

195-
#RUN apk add --update --no-cache cmake g++
196195
#PIPVENV_BUILDDEPS__START
197196
RUN apk add --update --no-cache \
198197
gcc \
@@ -204,11 +203,21 @@ RUN apk add --update --no-cache \
204203
g++ \
205204
cmake
206205
#PIPVENV_BUILDDEPS__END
206+
207207
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-toolchain stable
208208
ENV PATH=${PATH}:/root/.cargo/bin
209209

210210
RUN mkdir /venvs
211211

212+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-amd64
213+
#PIPVENV_BUILDDEPS_AMD__START
214+
215+
#PIPVENV_BUILDDEPS_AMD__END
216+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-arm64
217+
#PIPVENV_BUILDDEPS_ARM__START
218+
219+
#PIPVENV_BUILDDEPS_ARM__END
220+
FROM --platform=$BUILDPLATFORM python-venv-${TARGETPLATFORM} AS python-venv-arm64
212221
ARG TARGETPLATFORM
213222
COPY --link --from=target-python /usr/local/bin/python3 /usr/local/bin/target-python3
214223

flavors/go/Dockerfile

+11-2
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ COPY --link --from=cargo /bin/* /usr/bin/
174174
#COPY__END
175175

176176
FROM --platform=$TARGETPLATFORM python:3.11.3-alpine3.17 AS target-python
177-
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv
177+
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv-base
178178

179179

180180
#############################################################################################
@@ -195,7 +195,6 @@ RUN PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir --upgrade pip crossenv
195195

196196
#PIPVENV_DOWNLOAD__END
197197

198-
#RUN apk add --update --no-cache cmake g++
199198
#PIPVENV_BUILDDEPS__START
200199
RUN apk add --update --no-cache \
201200
gcc \
@@ -207,11 +206,21 @@ RUN apk add --update --no-cache \
207206
g++ \
208207
cmake
209208
#PIPVENV_BUILDDEPS__END
209+
210210
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-toolchain stable
211211
ENV PATH=${PATH}:/root/.cargo/bin
212212

213213
RUN mkdir /venvs
214214

215+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-amd64
216+
#PIPVENV_BUILDDEPS_AMD__START
217+
218+
#PIPVENV_BUILDDEPS_AMD__END
219+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-arm64
220+
#PIPVENV_BUILDDEPS_ARM__START
221+
222+
#PIPVENV_BUILDDEPS_ARM__END
223+
FROM --platform=$BUILDPLATFORM python-venv-${TARGETPLATFORM} AS python-venv-arm64
215224
ARG TARGETPLATFORM
216225
COPY --link --from=target-python /usr/local/bin/python3 /usr/local/bin/target-python3
217226

flavors/java/Dockerfile

+11-2
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ COPY --link --from=cargo /bin/* /usr/bin/
167167
#COPY__END
168168

169169
FROM --platform=$TARGETPLATFORM python:3.11.3-alpine3.17 AS target-python
170-
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv
170+
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv-base
171171

172172

173173
#############################################################################################
@@ -188,7 +188,6 @@ RUN PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir --upgrade pip crossenv
188188

189189
#PIPVENV_DOWNLOAD__END
190190

191-
#RUN apk add --update --no-cache cmake g++
192191
#PIPVENV_BUILDDEPS__START
193192
RUN apk add --update --no-cache \
194193
gcc \
@@ -200,11 +199,21 @@ RUN apk add --update --no-cache \
200199
g++ \
201200
cmake
202201
#PIPVENV_BUILDDEPS__END
202+
203203
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-toolchain stable
204204
ENV PATH=${PATH}:/root/.cargo/bin
205205

206206
RUN mkdir /venvs
207207

208+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-amd64
209+
#PIPVENV_BUILDDEPS_AMD__START
210+
211+
#PIPVENV_BUILDDEPS_AMD__END
212+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-arm64
213+
#PIPVENV_BUILDDEPS_ARM__START
214+
215+
#PIPVENV_BUILDDEPS_ARM__END
216+
FROM --platform=$BUILDPLATFORM python-venv-${TARGETPLATFORM} AS python-venv-arm64
208217
ARG TARGETPLATFORM
209218
COPY --link --from=target-python /usr/local/bin/python3 /usr/local/bin/target-python3
210219

flavors/javascript/Dockerfile

+11-2
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ COPY --link --from=cargo /bin/* /usr/bin/
186186
#COPY__END
187187

188188
FROM --platform=$TARGETPLATFORM python:3.11.3-alpine3.17 AS target-python
189-
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv
189+
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv-base
190190

191191

192192
#############################################################################################
@@ -207,7 +207,6 @@ RUN PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir --upgrade pip crossenv
207207

208208
#PIPVENV_DOWNLOAD__END
209209

210-
#RUN apk add --update --no-cache cmake g++
211210
#PIPVENV_BUILDDEPS__START
212211
RUN apk add --update --no-cache \
213212
gcc \
@@ -219,11 +218,21 @@ RUN apk add --update --no-cache \
219218
g++ \
220219
cmake
221220
#PIPVENV_BUILDDEPS__END
221+
222222
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-toolchain stable
223223
ENV PATH=${PATH}:/root/.cargo/bin
224224

225225
RUN mkdir /venvs
226226

227+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-amd64
228+
#PIPVENV_BUILDDEPS_AMD__START
229+
230+
#PIPVENV_BUILDDEPS_AMD__END
231+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-arm64
232+
#PIPVENV_BUILDDEPS_ARM__START
233+
234+
#PIPVENV_BUILDDEPS_ARM__END
235+
FROM --platform=$BUILDPLATFORM python-venv-${TARGETPLATFORM} AS python-venv-arm64
227236
ARG TARGETPLATFORM
228237
COPY --link --from=target-python /usr/local/bin/python3 /usr/local/bin/target-python3
229238

flavors/php/Dockerfile

+11-2
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ COPY --link --from=cargo /bin/* /usr/bin/
167167
#COPY__END
168168

169169
FROM --platform=$TARGETPLATFORM python:3.11.3-alpine3.17 AS target-python
170-
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv
170+
FROM --platform=$BUILDPLATFORM python:3.11.3-alpine3.17 AS python-venv-base
171171

172172

173173
#############################################################################################
@@ -188,7 +188,6 @@ RUN PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir --upgrade pip crossenv
188188

189189
#PIPVENV_DOWNLOAD__END
190190

191-
#RUN apk add --update --no-cache cmake g++
192191
#PIPVENV_BUILDDEPS__START
193192
RUN apk add --update --no-cache \
194193
gcc \
@@ -200,11 +199,21 @@ RUN apk add --update --no-cache \
200199
g++ \
201200
cmake
202201
#PIPVENV_BUILDDEPS__END
202+
203203
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-toolchain stable
204204
ENV PATH=${PATH}:/root/.cargo/bin
205205

206206
RUN mkdir /venvs
207207

208+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-amd64
209+
#PIPVENV_BUILDDEPS_AMD__START
210+
211+
#PIPVENV_BUILDDEPS_AMD__END
212+
FROM --platform=$BUILDPLATFORM python-venv-base AS python-venv-arm64
213+
#PIPVENV_BUILDDEPS_ARM__START
214+
215+
#PIPVENV_BUILDDEPS_ARM__END
216+
FROM --platform=$BUILDPLATFORM python-venv-${TARGETPLATFORM} AS python-venv-arm64
208217
ARG TARGETPLATFORM
209218
COPY --link --from=target-python /usr/local/bin/python3 /usr/local/bin/target-python3
210219

0 commit comments

Comments
 (0)