Add Copilot coding agent setup steps and inner loop guidance#3099
Add Copilot coding agent setup steps and inner loop guidance#3099jstarks merged 3 commits intomicrosoft:mainfrom
Conversation
Add .github/workflows/copilot-setup-steps.yml to give the Copilot coding agent a working Rust toolchain, cargo-nextest, and restore-packages (protoc + build deps) so it can validate changes locally before pushing.
There was a problem hiding this comment.
Pull request overview
Adds a dedicated GitHub Actions workflow and accompanying repo guidance so the GitHub Copilot coding agent can provision a Rust/OpenVMM build environment and run a recommended local validation loop before pushing changes.
Changes:
- Introduces
.github/workflows/copilot-setup-steps.ymlto install Rust, cargo-nextest, and runcargo xflowey restore-packages. - Extends
.github/copilot-instructions.mdwith an “Autonomous Agent Inner Loop” checklist (check/clippy/doc/test/fmt).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| .github/workflows/copilot-setup-steps.yml | New workflow to bootstrap a Rust toolchain + nextest + OpenVMM restore-packages for the coding agent. |
| .github/copilot-instructions.md | Adds agent-specific inner-loop validation guidance intended to mirror early CI feedback locally. |
Skip downloading released OpenHCL IGVM files (used for compatibility testing) when --no-compat-igvm is passed. This avoids requiring gh CLI authentication, which is useful for Copilot coding agent setup and other contexts where gh auth is not available. Update copilot-setup-steps.yml to use the new flag.
- checkout@v5 -> @v6 to match rest of repo - Pin cargo-nextest to 0.9.101 (matches cfg_versions.rs) instead of 'latest' - Rephrase inner loop description: covers common early CI failures, not 'the same errors as CI job0'
|
Yeah, we could generate this thing with flowey, but let's not perfect be the enemy of good here. Fine for a followup if someone wants to do this the right way. |
| 3. **Clippy:** `cargo clippy --all-targets -p <package>` — lint. | ||
| 4. **Doc:** `cargo doc --no-deps -p <package>` — catch doc errors. | ||
| 5. **Unit tests:** `cargo nextest run -p <package>` — run the crate's | ||
| tests. If nextest is not installed, use `cargo test -p <package>`. |
There was a problem hiding this comment.
In a separate PR, folks said cargo test was simply broken for us. If that's true, this will lead astray.
There was a problem hiding this comment.
test works fine for all the tests the agent will be able to build (they won't be able to run vmm-tests). But this note in the instructions file is kind of dumb now that we install nextest...
|
Nice. I took a stab at this in #1662. Even tried to make it a flowey pipeline. I'm happy to take this simpler change. Couple other things:
|
Both of these are probably a good idea. But I wanted to get something in to experiment and see how copilot copes before expanding the size of the sandbox. |
…ft#3099) Add .github/workflows/copilot-setup-steps.yml to give the Copilot coding agent a working Rust toolchain, cargo-nextest, and restore-packages (protoc + build deps) so it can validate changes locally before pushing.
Add .github/workflows/copilot-setup-steps.yml to give the Copilot coding agent a working Rust toolchain, cargo-nextest, and restore-packages (protoc + build deps) so it can validate changes locally before pushing.