|
7 | 7 | import sys |
8 | 8 |
|
9 | 9 | rust_version = "1.48.0" |
10 | | -rustup_version = "1.22.1" |
| 10 | +rustup_version = "1.23.0" |
11 | 11 |
|
12 | 12 | DebianArch = namedtuple("DebianArch", ["bashbrew", "dpkg", "rust"]) |
13 | 13 |
|
|
24 | 24 |
|
25 | 25 | default_debian_variant = "buster" |
26 | 26 |
|
| 27 | +AlpineArch = namedtuple("AlpineArch", ["bashbrew", "apk", "rust"]) |
| 28 | + |
| 29 | +alpine_arches = [ |
| 30 | + AlpineArch("amd64", "x86_64", "x86_64-unknown-linux-musl"), |
| 31 | + AlpineArch("arm64v8", "aarch64", "aarch64-unknown-linux-musl"), |
| 32 | +] |
| 33 | + |
27 | 34 | alpine_versions = [ |
28 | 35 | "3.11", |
29 | 36 | "3.12", |
@@ -75,14 +82,22 @@ def update_debian(): |
75 | 82 | write_file(f"{rust_version}/{variant}/slim/Dockerfile", rendered) |
76 | 83 |
|
77 | 84 | def update_alpine(): |
| 85 | + arch_case = 'apkArch="$(apk --print-arch)"; \\\n' |
| 86 | + arch_case += ' case "$apkArch" in \\\n' |
| 87 | + for arch in alpine_arches: |
| 88 | + hash = rustup_hash(arch.rust) |
| 89 | + arch_case += f" {arch.apk}) rustArch='{arch.rust}'; rustupSha256='{hash}' ;; \\\n" |
| 90 | + arch_case += ' *) echo >&2 "unsupported architecture: $apkArch"; exit 1 ;; \\\n' |
| 91 | + arch_case += ' esac' |
| 92 | + |
78 | 93 | template = read_file("Dockerfile-alpine.template") |
79 | 94 |
|
80 | 95 | for version in alpine_versions: |
81 | 96 | rendered = template \ |
82 | 97 | .replace("%%RUST-VERSION%%", rust_version) \ |
83 | 98 | .replace("%%RUSTUP-VERSION%%", rustup_version) \ |
84 | 99 | .replace("%%TAG%%", version) \ |
85 | | - .replace("%%RUSTUP-SHA256%%", rustup_hash("x86_64-unknown-linux-musl")) |
| 100 | + .replace("%%ARCH-CASE%%", arch_case) |
86 | 101 | write_file(f"{rust_version}/alpine{version}/Dockerfile", rendered) |
87 | 102 |
|
88 | 103 | def update_travis(): |
@@ -176,7 +191,7 @@ def generate_stackbrew_library(): |
176 | 191 |
|
177 | 192 | library += single_library( |
178 | 193 | tags, |
179 | | - ["amd64"], |
| 194 | + map(lambda a: a.bashbrew, alpine_arches), |
180 | 195 | os.path.join(rust_version, f"alpine{version}")) |
181 | 196 |
|
182 | 197 | print(library) |
|
0 commit comments