Skip to content

feat(ci): Add uv and Python package sync to copilot-setup-steps #888

@WilliamBerryiii

Description

@WilliamBerryiii

Summary

The Copilot Coding Agent runs in a cloud-based GitHub Actions environment configured by copilot-setup-steps.yml. This workflow pre-installs tools to match devcontainer capabilities. It currently lacks uv installation and Python dependency resolution, meaning the Coding Agent cannot run Python linting or testing commands.

Context

Issue #388 (closed) established the copilot-setup-steps.yml pattern for tool parity between local and agent environments. Issue #514 (closed, v3.0.0) addressed specific parity gaps between the devcontainer and copilot-setup-steps. The copilot-instructions.md documents an explicit Environment Synchronization section stating that when adding tools to either environment, both should be evaluated for the same change.

With PR #868 introducing Python skills and #887 adding uv to the devcontainer, this workflow must be updated to maintain parity. The Copilot Agent environment already has Python 3.11 available (documented in copilot-instructions.md), but needs uv for package management and dependency resolution.

Changes Required

File Change
.github/workflows/copilot-setup-steps.yml Add uv installation step
.github/workflows/copilot-setup-steps.yml Add uv sync step for Python dependency resolution using dynamic discovery
.github/copilot-instructions.md Update Pre-installed Tools section to document uv availability

The uv installation should use a pinned version and verified download method consistent with the devcontainer approach (#887). The uv sync step should discover and iterate over all pyproject.toml files under .github/skills/ using the same pattern as the devcontainer:

find .github/skills -name pyproject.toml -execdir uv sync \;

This ensures parity with the devcontainer (#887) and automatically resolves dependencies for new Python skills without workflow modifications.

Acceptance Criteria

  • uv is installed and available on PATH in the Copilot Agent environment
  • uv sync resolves Python dependencies for all pyproject.toml files found under .github/skills/
  • npm run lint:py and npm run test:py work in the Copilot Agent environment
  • copilot-instructions.md Pre-installed Tools section lists uv
  • Environment Synchronization section reflects Python tooling additions
  • Adding a new Python skill with pyproject.toml is automatically resolved without workflow changes
  • The workflow continues to complete within reasonable time bounds

Dependencies

Related

Metadata

Metadata

Labels

infrastructureRepository infrastructure and tooling

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions