You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor: simplify to "build everything, calver release per run"
- workflow_dispatch with no inputs; pick the branch in the GitHub UI.
- Always build every entry in kernel_versions.txt for amd64 and arm64
in parallel (one runner per arch).
- One release per run, tagged YYYY.MM.DD (with .N suffix on collision),
with every binary uploaded as vmlinux-<version>-<arch>.bin (plus the
legacy vmlinux-<version>.bin for amd64).
- Same binaries pushed to GCS under kernels/vmlinux-<version>/...
Drops the per-build content-hash version_name machinery and the
validate.py helper that fed it.
Copy file name to clipboardExpand all lines: README.md
+12-17Lines changed: 12 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,12 +4,6 @@
4
4
5
5
This project builds custom Linux kernels for Firecracker microVMs from the same kernel sources as the official Firecracker repo, using the configuration files (and optional patches) that live in this repo.
6
6
7
-
Each kernel build is identified by a content hash of its inputs (configs + patches), so changing a flag or adding a patch produces a new, traceable artifact:
Output: `builds/vmlinux-<version>_<hash>/<arch>/vmlinux.bin` where `<arch>` is `amd64` or `arm64` (Go/OCI convention). For x86_64 a legacy copy is also placed at `builds/vmlinux-<version>_<hash>/vmlinux.bin`.
26
+
Output: `builds/vmlinux-<version>/<arch>/vmlinux.bin` where `<arch>` is `amd64` or `arm64` (Go/OCI convention). For x86_64 a legacy copy is also placed at `builds/vmlinux-<version>/vmlinux.bin`.
33
27
34
28
## Releasing
35
29
36
-
1. Run the **Manual Build & Release** workflow (Actions → Manual Build & Release → Run workflow).
37
-
2. The workflow:
38
-
- Computes a content hash for each kernel version from its configs and patches.
39
-
- Skips arches whose artifact is already present in the matching GitHub release.
40
-
- Builds the missing arches, creates/updates the `vmlinux-<version>_<hash>` release, uploads `vmlinux-amd64.bin` / `vmlinux-arm64.bin` (and a legacy `vmlinux.bin` for amd64), and pushes the same files to GCS under `gs://$GCP_BUCKET_NAME/kernels/<version_name>/`.
30
+
1. Pick the branch and run the **Manual Build & Release** workflow (Actions → Manual Build & Release → Run workflow → branch). The workflow takes no inputs.
31
+
2. Every kernel version in `kernel_versions.txt` is built for both `amd64` and `arm64` in parallel.
32
+
3. A single GitHub release is created per run, tagged with calver `YYYY.MM.DD` (with a `.N` suffix for additional runs the same day). The release contains every binary for that commit:
41
33
42
-
### Workflow inputs
34
+
```
35
+
vmlinux-<version>-amd64.bin
36
+
vmlinux-<version>-arm64.bin
37
+
vmlinux-<version>.bin # legacy (= amd64) for backwards compat
38
+
```
43
39
44
-
-`kernel_versions` (optional): comma-separated kernel versions. Defaults to all versions in `kernel_versions.txt`.
45
-
-`build_amd64` / `build_arm64` (optional, default `true`): which architectures to build.
40
+
4. The same binaries are uploaded to GCS at `gs://$GCP_BUCKET_NAME/kernels/vmlinux-<version>/<arch>/vmlinux.bin`.
46
41
47
42
## New kernel in E2B's infra
48
43
_Note: these steps should give you a new kernel on your self-hosted E2B using https://github.com/e2b-dev/infra_
49
44
50
-
- Run the release workflow to publish the new kernel build.
51
-
- Update `DefaultKernelVersion` in [packages/api/internal/cfg/model.go](https://github.com/e2b-dev/infra/blob/main/packages/api/internal/cfg/model.go)to the new `vmlinux-<version>_<hash>` name.
45
+
- Run the release workflow on the branch with the new config/patch.
46
+
- Update `DefaultKernelVersion` in [packages/api/internal/cfg/model.go](https://github.com/e2b-dev/infra/blob/main/packages/api/internal/cfg/model.go)if you changed the kernel version.
0 commit comments