Commit 4e87067
authored
[Maintenance] Upgrade development container to Debian 12, add Amazon Linux 2023 Support (#55)
* Stabilize and automate the dev container build
This commit resolves a series of build and runtime errors to create a stable,
portable, and fully automated dev container environment that works on both
`arm64` and `x86_64` architectures out-of-the-box.
- Stabilize Dockerfile Build:
- Upgrades the base image from `bullseye` to `bookworm`.
- Consolidates all `apt-get` dependencies into a single, correctly ordered
layer, installing necessary tools for cross-compilation
(`gcc-x86-64-linux-gnu`, `libc6-dev-amd64-cross`).
- Fixes `rustup` permission errors by installing the toolchain as `root`
and granting ownership to the `vscode` user.
- Adds `--break-system-packages` to the `pip install` command to comply
with Debian `bookworm`'s package management policies.
- Improve Architecture Portability:
- Makes the `bin/build` and `bin/test` scripts architecture-aware, allowing
them to run seamlessly on both `arm64` and `x86_64` hosts without manual
configuration.
- Fixes a bug that caused inconsistent naming of the shared library (`.so`)
file between build and test runs.
- Fix Container Startup on ARM64:
- Centralizes QEMU and `binfmt` setup within the `Dockerfile` build,
creating an architecture-aware initialization process.
- This allows for the removal of legacy, conflicting setup methods that
caused startup failures on `arm64` hosts:
- Removes the privileged `docker run` command for `qemu-user-static`
from the `postCreate` script.
- Disables the redundant QEMU setup in the `docker-in-docker` feature
by configuring `install-qemu: false` for the feature.
* Refactor to improve portability and robustness
This commit implements a small refactor to make the dev container setup
more resilient and truly multi-platform.
- Installs `aarch64` cross-compilation packages (`gcc-aarch64-linux-gnu`,
`libc6-dev-arm64-cross`) in the `Dockerfile` to enable building for
ARM64 on x86_64 hosts.
- Updates `bin/build-arch` to use the correct `strip` binary (native or
cross-compile) by checking both the host and target architectures.
- Adds a 30-second timeout to the `postCreate` script to prevent it from
hanging if the Docker daemon fails to start.
- Adds a comment to `bin/test` clarifying why language runtime tests are
now enabled for all architectures.
- Merges the `update-alternatives` command into the main `RUN` layer,
reducing the total number of image layers.
* Update `Test` workflow to use newer ubuntu runner image
* Modernize Test workflow and Dockerfile images
This commit updates the CI configuration to resolve build failures
and align the test environments with modern, supported versions.
- Replaces deprecated `ubuntu-20.04` runners with `ubuntu-22.04`
in the GitHub Actions workflow, fixing the hanging jobs.
- Adds QEMU and Docker Buildx to `arm64` jobs to enable cross-platform
image builds.
- Upgrades the Debian test environment from a Bullseye-based image
to a Bookworm-based one, and updates Node.js from v18 to v22 (LTS).
- Updates the Python 2.7 test environment to use an `ubuntu:22.04`
base image and installs Python 2.7 via the `deadsnakes` PPA.
* Add test environment for Amazon Linux 2023
* Fix permissions/dependencies in tests
* Downgrade py27 Ubuntu, fix amzn2023 WORKDIR
* Attempt fixes for amzn2023 in Test workflow
* Fix py27 in Test workflow
* Use absolute path instead of tilde
* Set WORKDIR for amzn2023, zip for py27
* Add WORKDIR to amzn2023, util-linux to py27
* Add nodejs to amzn2023, revert py27 for debug
* Fix wrapt to v1 for py27
* Use rust:1-1 not rust:2-11 parent 1d0afd4 commit 4e87067
File tree
20 files changed
+363
-56
lines changed- .devcontainer
- .github/workflows
- amzn2023
- bin
- debian
- py27
- python/crypteia
20 files changed
+363
-56
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
20 | 12 | | |
21 | | - | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
22 | 41 | | |
23 | | - | |
24 | | - | |
| 42 | + | |
| 43 | + | |
25 | 44 | | |
26 | | - | |
27 | | - | |
| 45 | + | |
| 46 | + | |
28 | 47 | | |
29 | 48 | | |
30 | | - | |
| 49 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
9 | 11 | | |
10 | 12 | | |
11 | 13 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
42 | 46 | | |
43 | 47 | | |
44 | 48 | | |
| |||
49 | 53 | | |
50 | 54 | | |
51 | 55 | | |
52 | | - | |
| 56 | + | |
53 | 57 | | |
54 | 58 | | |
55 | 59 | | |
| |||
64 | 68 | | |
65 | 69 | | |
66 | 70 | | |
67 | | - | |
| 71 | + | |
68 | 72 | | |
69 | 73 | | |
70 | 74 | | |
71 | 75 | | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
72 | 80 | | |
73 | 81 | | |
74 | 82 | | |
| |||
79 | 87 | | |
80 | 88 | | |
81 | 89 | | |
82 | | - | |
| 90 | + | |
83 | 91 | | |
84 | 92 | | |
85 | 93 | | |
| |||
92 | 100 | | |
93 | 101 | | |
94 | 102 | | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
0 commit comments