Skip to content

AIR CLI: always upload requirements.yaml on the run submit path#6031

Open
riddhibhagwat-db wants to merge 1 commit into
air-clifrom
air-run-requirements-fix
Open

AIR CLI: always upload requirements.yaml on the run submit path#6031
riddhibhagwat-db wants to merge 1 commit into
air-clifrom
air-run-requirements-fix

Conversation

@riddhibhagwat-db

Copy link
Copy Markdown
Contributor

Changes & Why

The AI Runtime launcher reads <func_dir>/requirements.yaml for every run. The Go CLI only uploaded it when a requirements file or inline dependencies were declared, so a run with no dependencies (e.g. a plain command) shipped no requirements.yaml and failed at launch with RUN_EXECUTION_ERROR. Jobs then retried, and the retries surfaced an unrelated PrincipalContext propagation error, masking the real cause.

Always upload requirements.yaml: the declared file, a synthesized doc from inline dependencies, or an empty doc when neither is set. This matches the Python CLI, which synthesizes an empty requirements.yaml for the AI Runtime path.

Tests

  • added 3 unit tests in experimental/air/cmd/runupload_test.go for each of the three branches as described above
  • Manual verification: see screenshot below; was able to acquire gpu and run with same quickstart payload
Screenshot 2026-07-22 at 11 29 13 AM

The AI Runtime launcher reads <func_dir>/requirements.yaml for every run. The Go
CLI only uploaded it when a requirements file or inline dependencies were
declared, so a run with no dependencies (e.g. a plain command) shipped no
requirements.yaml and failed at launch with RUN_EXECUTION_ERROR. Jobs then
retried, and the retries surfaced an unrelated PrincipalContext propagation
error, masking the real cause.

Always upload requirements.yaml: the declared file, a synthesized doc from inline
dependencies, or an empty doc when neither is set. This matches the Python CLI,
which synthesizes an empty requirements.yaml for the AI Runtime path.

Co-authored-by: Isaac
@github-actions

Copy link
Copy Markdown
Contributor

Waiting for approval

Could not determine reviewers from git history.
Round-robin suggestion: @apeforest

Eligible reviewers: @apeforest, @ben-hansen-db, @bfontain, @lu-wang-dl, @maggiewang-db, @panchalhp-db, @pardis-beikzadeh-db, @vinchenzo-db

Suggestions based on git history. See OWNERS for ownership rules.

@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 7525d79

Run: 29947004049

Env 🟨​KNOWN 💚​RECOVERED 🙈​SKIP ✅​pass 🙈​skip Time
💚​ aws-cli-is linux 4 4 314 1038 6:31
💚​ aws-cli-is windows 4 4 316 1036 7:55
💚​ azure-cli-is linux 4 4 314 1037 5:17
💚​ azure-cli-is windows 4 4 316 1035 7:34
🟨​ gcp-cli-is linux 3 1 4 313 1039 9:16
🟨​ gcp-cli-is windows 3 1 4 315 1037 12:18
8 interesting tests: 4 SKIP, 3 KNOWN, 1 RECOVERED
Test Name aws-cli-is linux aws-cli-is windows azure-cli-is linux azure-cli-is windows gcp-cli-is linux gcp-cli-is windows
💚​ TestAccept 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
🙈​ TestAccept/bundle/invariant/no_drift 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/bundle/resources/vector_search_endpoints/drift/recreated_same_name 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/ssh/connection 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🟨​ TestFetchRepositoryInfoAPI_FromRepo 💚​R 💚​R 💚​R 💚​R 🟨​K 🟨​K
🟨​ TestFetchRepositoryInfoAPI_FromRepo/root 💚​R 💚​R 💚​R 💚​R 🟨​K 🟨​K
🟨​ TestFetchRepositoryInfoAPI_FromRepo/subdir 💚​R 💚​R 💚​R 💚​R 🟨​K 🟨​K
Top 6 slowest tests (at least 2 minutes):
duration env testname
7:06 gcp-cli-is windows TestAccept
6:24 aws-cli-is windows TestAccept
6:23 azure-cli-is windows TestAccept
2:55 aws-cli-is linux TestAccept
2:54 azure-cli-is linux TestAccept
2:50 gcp-cli-is linux TestAccept

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.

2 participants