Skip to content

Conversation

@ValentaTomas
Copy link
Member

@ValentaTomas ValentaTomas commented Dec 10, 2025

Note

Builds Firecracker from a custom repository across specified versions and publishes per-version artifacts/tags/releases, with uploads to GCS on main.

  • CI/CD:
    • Reusable build workflow (.github/workflows/build.yml): parses firecracker_versions.txt, runs matrix builds, uploads artifacts per version.
    • Main workflow updates (.github/workflows/fc-versions.yml): adds concurrency; invokes reusable build; downloads merged artifacts; uploads to GCS on main; creates git tags and GitHub releases per built version, attaching the binary.
  • Build script (build.sh):
    • Switches to custom repo e2b-dev/firecracker and supports tag_shorthash version format with ancestry validation.
    • Builds only the firecracker binary (release) and outputs to builds/<version>/firecracker.
    • Accepts versions via args or reads from firecracker_versions.txt.
  • Docs (README.md): rename to fc-versions; update build instructions and artifact paths.
  • Configs: update firecracker_versions.txt with additional versions, including tag_shorthash entries.

Written by Cursor Bugbot for commit dba0c82. This will update automatically on new commits. Configure here.

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Filename mismatch: workflow expects vmlinux.bin but gets firecracker

The build.sh script copies the built binary as firecracker to the builds directory, but the "Prepare release assets" step in the workflow attempts to copy vmlinux.bin from each build directory. This filename mismatch will cause the release preparation to fail when running on the main branch, as the expected file does not exist.

.github/workflows/fc-versions.yml#L99-L100

name=$(basename "$dir")
cp "$dir/vmlinux.bin" "release-assets/${name}.bin"

build.sh#L49-L50

fc-versions/build.sh

Lines 49 to 50 in d3dc8af

mkdir -p "../builds/${version_name}"
cp build/cargo_target/x86_64-unknown-linux-musl/release/firecracker "../builds/${version_name}/firecracker"

Fix in Cursor Fix in Web


Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Build outputs firecracker but workflow expects vmlinux.bin

The build.sh script copies the built binary as firecracker into the builds directory, but the "Prepare release assets" step in the workflow attempts to copy vmlinux.bin which doesn't exist. This mismatch will cause the release process to fail on main branch when trying to create release assets because $dir/vmlinux.bin will not be found.

.github/workflows/fc-versions.yml#L99-L100

name=$(basename "$dir")
cp "$dir/vmlinux.bin" "release-assets/${name}.bin"

build.sh#L50-L51

fc-versions/build.sh

Lines 50 to 51 in 7adc7fb

mkdir -p "../builds/${version_name}"
cp build/cargo_target/x86_64-unknown-linux-musl/release/firecracker "../builds/${version_name}/firecracker"

Fix in Cursor Fix in Web


Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Release step references non-existent file vmlinux.bin

The "Prepare release assets" step tries to copy vmlinux.bin from each build directory, but build.sh now produces a file named firecracker instead. The build outputs ../builds/${version_name}/firecracker while the workflow expects $dir/vmlinux.bin. This mismatch will cause the release preparation to fail on the main branch when trying to copy files that don't exist.

.github/workflows/fc-versions.yml#L99-L100

name=$(basename "$dir")
cp "$dir/vmlinux.bin" "release-assets/${name}.bin"

build.sh#L50-L51

fc-versions/build.sh

Lines 50 to 51 in 9dcfada

mkdir -p "../builds/${version_name}"
cp build/cargo_target/x86_64-unknown-linux-musl/release/firecracker "../builds/${version_name}/firecracker"

Fix in Cursor Fix in Web


@ValentaTomas ValentaTomas marked this pull request as draft December 11, 2025 00:14
@ValentaTomas ValentaTomas changed the base branch from main to refactor December 11, 2025 00:16
@ValentaTomas ValentaTomas changed the title Switch to custom FC repo; Add build versions for direct memory access Build custom FC for direct memory access Dec 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants