Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
2b8bdfa
feat: add azd CLI evaluation and testing framework
spboyer Mar 19, 2026
785518b
docs: add authentication and secrets section to eval README
spboyer Mar 19, 2026
dff871d
docs: add comprehensive how-to guides for creating evals, graders, an…
spboyer Mar 19, 2026
4ae4e6a
fix: resolve CI failures in eval unit tests and cspell
spboyer Mar 19, 2026
f11a00c
fix: stop command-sequencing tests from overriding AZD_CONFIG_DIR
spboyer Mar 19, 2026
faae65f
docs: expand auth section with subscription config and no-popup guara…
spboyer Mar 19, 2026
ef1ae86
refactor: address review feedback from @jongio and Copilot
spboyer Mar 19, 2026
7d8b1f8
fix: address round 2 review feedback from @jongio
spboyer Mar 20, 2026
a3a8cfb
Fix review: mock targets, env remove, CI grader tests, HTTPError hand…
spboyer Mar 26, 2026
3427eab
fix: skip waza validation when CLI not installed
spboyer Mar 26, 2026
df8d4d0
Update cli/azd/test/eval/tasks/environment/switch-env.yaml
spboyer Mar 30, 2026
aaf81d1
Update cli/azd/test/eval/README.md
spboyer Mar 30, 2026
4d4c431
fix: address remaining PR review feedback
spboyer Mar 30, 2026
f8a1a72
chore: add 40-minute timeout to eval-e2e lifecycle step
spboyer Mar 30, 2026
d9c280b
Address review feedback on eval framework
spboyer Mar 31, 2026
4f2e95e
Remove continue-on-error masking in eval-waza.yml
spboyer Mar 31, 2026
9e62163
Fix error handling in graders and cleanup step
spboyer Mar 31, 2026
bfd80fd
Address review feedback on eval framework
spboyer Mar 31, 2026
1b8d34e
Address review feedback on eval framework (round 2)
spboyer Apr 1, 2026
f7508d6
Re-trigger CI (flaky TestInitializer_PromptIfNonEmpty)
spboyer Apr 1, 2026
2ba6edf
Use tag-for-deletion pattern in eval cleanup step
spboyer Apr 2, 2026
a563585
Address review feedback: timeout, imports, pipeline command
spboyer Apr 3, 2026
5b1ed09
fix: remove always-skipped waza step from CI workflow
spboyer Apr 9, 2026
c0730ae
chore: apply go fix modernization (strings.SplitSeq)
spboyer Apr 9, 2026
27f4b28
Migrate eval CI from GitHub Actions to ADO pipelines
spboyer Apr 10, 2026
6a70702
fix: remove continueOnError from eval step in eval-e2e pipeline
spboyer Apr 10, 2026
c817f90
fix: address review feedback on eval framework PR
spboyer Apr 13, 2026
19b1688
fix: scope resource group cleanup to current build ID
spboyer Apr 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions .github/workflows/eval-unit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: "Eval: Unit Tests"

on:
pull_request:
paths:
- "cli/azd/test/eval/**"
- "cli/azd/internal/mcp/**"
- "cli/azd/cmd/mcp.go"
- "cli/azd/cmd/root.go"

Comment thread
spboyer marked this conversation as resolved.
permissions:
contents: read

jobs:
unit-tests:
runs-on: ubuntu-latest
Comment thread
spboyer marked this conversation as resolved.
timeout-minutes: 30
steps:
- uses: actions/checkout@v4

- uses: actions/setup-go@v5
with:
go-version-file: "cli/azd/go.mod"

- uses: actions/setup-node@v4
with:
node-version: "22"

- name: Build azd
working-directory: cli/azd
run: go build -o ./azd .

- name: Install eval dependencies
working-directory: cli/azd/test/eval
run: npm ci

- name: Run unit tests
working-directory: cli/azd/test/eval
run: npm run test:unit -- --ci

Comment thread
spboyer marked this conversation as resolved.
# Waza YAML validation is local-only (run `npm run waza:validate` locally).
# waza CLI is not available in CI.

- uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install grader test dependencies
run: pip install pytest

- name: Run grader tests
working-directory: cli/azd/test/eval/graders
run: python -m pytest test_graders.py -v

- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: eval-unit-results
path: cli/azd/test/eval/reports/
retention-days: 30
24 changes: 24 additions & 0 deletions cli/azd/.vscode/cspell.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -377,6 +377,8 @@ overrides:
- filename: pkg/project/project.go
words:
- copylocks
- covdata
- GOWORK
- filename: pkg/ext/models.go
words:
- unvalidated
Expand All @@ -386,6 +388,28 @@ overrides:
words:
- covdata
- GOWORK
- filename: test/eval/README.md
words:
- Waza
- waza
- urlopen
- filename: "test/eval/graders/*.py"
words:
- Waza
- waza
- hdrs
- mysite
- mydb
- filename: "test/eval/tasks/**/*.yaml"
words:
- authenticat
- idempoten
- filename: "test/eval/tests/human/*.test.ts"
words:
- compdef
- badcfg
- provison
- notacommand
ignorePaths:
- "**/*_test.go"
- "**/mock*.go"
Expand Down
2 changes: 1 addition & 1 deletion cli/azd/pkg/azdext/process_darwin.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ func findProcessByNameOS(name string) []ProcessInfo {
nameLower := strings.ToLower(name)
var results []ProcessInfo

for _, line := range strings.Split(string(output), "\n") {
for line := range strings.SplitSeq(string(output), "\n") {
Comment thread
spboyer marked this conversation as resolved.
line = strings.TrimSpace(line)
if line == "" {
continue
Expand Down
6 changes: 6 additions & 0 deletions cli/azd/test/eval/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
node_modules/
dist/
reports/*.json
reports/*.md
reports/junit.xml
!reports/.gitkeep
Loading
Loading