Extract shared uv+just CI setup into a reusable drivers-github-tools action

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Infrastructure
    • None
    • Python Drivers
    • Not Needed
    • None
    • None
    • None
    • None
    • None
    • None

      Context

      Describe the background behind the problem.

      PyMongo's test workflow repeats the same uv/just installation and dependency-install steps across most of its CI jobs, with no way to share that logic with other MongoDB driver repos. drivers-github-tools already hosts reusable CI building blocks for other drivers, but nothing equivalent exists for Python's uv/just tooling. A follow-up ticket will cover rolling the new action out to other Python team repos once it lands here.

      Design: https://gist.github.com/blink1073/d1621c6d0f08765be66185b3bb9c9c60

      Definition of done

      What must be done to consider the task complete?

      A new shared action exists in mongodb-labs/drivers-github-tools that installs uv and just, and can optionally install project dependencies when supported. mongo-python-driver's CI workflow is updated to consume it in place of the duplicated steps, with no change in test behavior or coverage.  We should use setup-python with the desired python-version and let uv use that python version: https://github.com/astral-sh/setup-uv#do-i-still-need-actionssetup-python-alongside-setup-uv.

      Pitfalls

      What should the implementer watch out for? What are the risks?

      • Not every CI job needs the dependency-install step, so it must be skippable rather than forced.
      • The action needs to stay generic enough for other python driver repos to adopt, not just PyMongo.
      • Third-party action versions/pins must follow this repo's existing security/ref-pinning policy.

            Assignee:
            Unassigned
            Reporter:
            Steve Silvester
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: