feat(compile): add target: job and target: stage for ADO template output#519
Conversation
🔍 Rust PR ReviewSummary: Good feature addition overall — clean architecture, proper trait implementation, and solid test coverage. Three issues worth addressing before merge. Findings🐛 Bugs / Logic Issues
|
🔍 Rust PR ReviewSummary: Solid implementation with good marker coverage and test infrastructure — two things worth addressing before merge. Findings
|
|
@copilot implement suggestions |
Implemented all suggestions from both review passes in commit 5f9e197:
Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Add two new compile targets that produce reusable ADO YAML templates for embedding agentic stages into existing pipelines: - target: job — generates a job-level template (jobs: at root) that can be included in a flat pipeline or inside a user-defined stage - target: stage — generates a stage-level template (stages: wrapping jobs) for direct inclusion in multi-stage pipelines Key design decisions: - Pool is baked in from front matter (not a template parameter) - dependsOn and condition are set natively at the ADO call site - Job names are prefixed with PascalCase agent name for uniqueness (e.g., DailyReview_Agent, DailyReview_Detection, DailyReview_Execution) - Triggers (on:) are ignored with a warning in template targets - Template parameters only include clearMemory and user-defined params New files: - src/compile/job.rs — JobCompiler implementing the Compiler trait - src/compile/stage.rs — StageCompiler implementing the Compiler trait - src/data/job-base.yml — job-level template derived from base.yml - src/data/stage-base.yml — stage-level template wrapping jobs in stage Co-authored-by: Copilot <[email protected]>
…gets Agent-Logs-Url: https://github.com/githubnext/ado-aw/sessions/fa2ca612-1703-4107-87c3-2b2ec35429b8 Co-authored-by: jamesadevine <[email protected]>
…er paths - CLI now prints 'Generated job template:' and 'Generated stage template:' instead of 'Generated job pipeline:' / 'Generated stage pipeline:' since these targets produce reusable ADO templates, not standalone pipelines. - Header comments in generated job/stage templates now reference the actual output path instead of deriving a path from the input file, fixing incorrect inclusion examples (e.g. showing ./agents/x.lock.yml when the output was at ./x.lock.yml). Co-authored-by: Copilot <[email protected]>
5f9e197 to
ab2ad71
Compare
🔍 Rust PR ReviewSummary: Clean pass — the formatting-only changes in this diff are correct and the prior review concerns are fully resolved. Findings✅ What Looks Good
|
Summary
Add two new compile targets (
target: jobandtarget: stage) that produce reusable ADO YAML templates for embedding agentic stages into existing pipelines.target: job— generates a job-level template (jobs:at root) for inclusion in a flat pipeline or inside a user-defined stage:target: stage— generates a stage-level template (stages:wrapping jobs) for direct inclusion in multi-stage pipelines, with native ADOdependsOnandconditionat the call site:Design decisions
dependsOn/conditionare set natively at the ADO call site (not template params)DailyReview_Agent,DailyReview_Detection,DailyReview_Execution)on:) are ignored with a warning in template targetsclearMemoryand user-defined params (if any)New files
src/compile/job.rs—JobCompilerimplementing theCompilertraitsrc/compile/stage.rs—StageCompilerimplementing theCompilertraitsrc/data/job-base.yml— job-level template derived frombase.ymlsrc/data/stage-base.yml— stage-level template wrapping jobs in a stage blocktests/fixtures/job-agent.mdandstage-agent.md— test fixturesTest plan
cargo build— clean compilationcargo test --bin ado-aw— 1350 tests pass, 0 failurescargo clippy --all-targets --all-features— no new warningscargo run -- compile tests/fixtures/job-agent.mdandstage-agent.md)REQUIRED_TARGETSintests/bash_lint_tests.rs