poc: Use a unified mechanism for build, test, packaging, and release#2205
Draft
krishicks wants to merge 5 commits into
Draft
poc: Use a unified mechanism for build, test, packaging, and release#2205krishicks wants to merge 5 commits into
krishicks wants to merge 5 commits into
Conversation
Add a rust-native-build Dagger function that builds and stages Linux amd64 and arm64 CLI binaries using the existing CI toolchain and workflow-equivalent build steps. Signed-off-by: Kris Hicks <khicks@nvidia.com>
Add a cargo xtask facade with mise fallback and migrate the Rust formatting check as the first native task. This partial implementation sets the stage for replacing mise with Nix-managed tools and native xtasks. Signed-off-by: Kris Hicks <khicks@nvidia.com>
Add a Dagger function that assembles a Debian package using a Dagger-built CLI binary and provided gateway and VM driver binaries, mirroring the existing GitHub Actions packaging flow. Signed-off-by: Kris Hicks <khicks@nvidia.com>
Add a cargo xtask release-smoke-test command that accepts a provided .deb package, provisions a Lima VM with rootless Podman, installs the artifact, starts the packaged gateway, creates a sandbox, and verifies that curl is denied without policy. Signed-off-by: Kris Hicks <khicks@nvidia.com>
Add an Ubuntu rootless Podman release canary job that downloads the deb-linux-amd64 artifact from the triggering Release Dev run and runs cargo xtask release-smoke-test against it in a Lima VM. Signed-off-by: Kris Hicks <khicks@nvidia.com>
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Today, OpenShell has several overlapping sources of build and validation behavior:
misedefines both developer tooling (Rust and Python versions, etc), and task entry points such asmise run rust:format:check.This POC starts moving those responsibilities into shared, locally runnable entry points.
The direction is:
nix develop, and eventually as the source of tools installed in the CI image.cargo xtaskas the task runner that replacesmise runover time.This PR is an incremental slice of that migration. It does not remove
miseyet. Instead, it adds the first shared entry points:cargo xtask release-smoke-testcommand that accepts a provided.deb, installs it in a Lima VM, starts the packaged gateway, creates a sandbox, and verifies that undeclared network egress is denied.deb-linux-amd64artifact from the triggering Release Dev run and invokes the same xtask smoke test used locally.The intent is that GitHub Actions increasingly orchestrates the same build and validation graph developers can run themselves, rather than being the only place that knowledge exists.
Related Issue
This is a POC implementation of #2204.
Changes
Testing
mise run pre-commitpassesChecklist