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

XMLWordPrintableJSON

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

      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?

      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?
    • 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:
            Steve Silvester
            Reporter:
            Steve Silvester
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: