Skip to content

Commit e97e7c9

Browse files
committed
feat: add automatic clang update
1 parent dc8a127 commit e97e7c9

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

docker/Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ ARG PREPEND_PATH=/usr/local/bin:${DEVTOOLSET_ROOTPATH}/usr/bin:
88
ARG MANYLINUX_BUILDARCH=${BUILDARCH}
99
ARG MANYLINUX_DISABLE_CLANG=0
1010
ARG MANYLINUX_DISABLE_CLANG_FOR_CPYTHON=0
11+
ARG MANYLINUX_CLANG_VERSION=21.1.4.0
1112

1213

1314
FROM $BASEIMAGE AS runtime_base_packages
@@ -48,7 +49,7 @@ COPY build_scripts/build_utils.sh /build_scripts/
4849

4950

5051
# prepare cross-compilation support
51-
FROM --platform=linux/${MANYLINUX_BUILDARCH} ghcr.io/mayeut/static-clang:21.1.4.0 AS static_clang_bin
52+
FROM --platform=linux/${MANYLINUX_BUILDARCH} ghcr.io/mayeut/static-clang:${MANYLINUX_CLANG_VERSION} AS static_clang_bin
5253
FROM runtime_base_packages AS static_clang_prepare
5354
ARG MANYLINUX_DISABLE_CLANG
5455
COPY build_scripts/install-clang-static.sh /build_scripts/

tools/update_native_dependencies.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,10 +219,30 @@ def _update_git_lfs(dry_run):
219219
break
220220

221221

222+
def _update_clang(dry_run):
223+
lines = DOCKERFILE.read_text().splitlines()
224+
re_ = re.compile(r"^ARG MANYLINUX_CLANG_VERSION=(?P<version>\S+)$")
225+
for i in range(len(lines)):
226+
match = re_.match(lines[i])
227+
if match is None:
228+
continue
229+
current_version = Version(match["version"])
230+
latest_version = latest("mayeut/static-clang-images")
231+
if latest_version > current_version:
232+
lines[i] = f"ARG MANYLINUX_CLANG_VERSION={latest_version}"
233+
message = f"Bump static-clang {current_version}{latest_version}"
234+
print(message)
235+
if not dry_run:
236+
DOCKERFILE.write_text("\n".join(lines) + "\n")
237+
subprocess.check_call(["git", "commit", "-am", message])
238+
break
239+
240+
222241
def main():
223242
parser = argparse.ArgumentParser()
224243
parser.add_argument("--dry-run", dest="dry_run", action="store_true", help="dry run")
225244
args = parser.parse_args()
245+
_update_clang(args.dry_run)
226246
_update_cpython(args.dry_run)
227247
_update_git_lfs(args.dry_run)
228248
_update_sqlite(args.dry_run)

0 commit comments

Comments
 (0)