Uploaded image for project: 'Node.js Driver'
  1. Node.js Driver
  2. NODE-6739

Cache docker images for faster and more reliable CI in native packages

    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Use Case

      As a node driver engineer,
      I want fast and reliable CI for our native packages,
      So that I can test my code quickly and reliably.

      User Experience

      n/a

      Dependencies

      n/a

      Risks/Unknowns

      • I'm not entirely sure how to accomplish this, but I believe this is possible using MongoDB's corporate artifactory.  We should be able to build docker images that contain all dependencies our native packages outside of our CI.  Then zstd's and mongodb-client-encryption's CI can simply download the correct docker image, copy our bindings in, and compile our bindings.
      • Where / when would be build the docker images?  Would we build docker images as needed, whenever we fail to pull the image?  Or perhaps have separate docker image building GHAs in our CI?  A separate repo that contains dockerfiles for all native packages we support?

      Acceptance Criteria

      Implementation Requirements

      • Add tooling that can build a docker image for each supported platform and architecture with all dependencies needed to build our FLE bindings and zstd
      • Add tooling that can upload the prebuilt images somewhere for later use
      • Update the build and test actions in zstd and mongodb-client-encryption to use the prebuilt docker images

      Testing Requirements

      • all tests pass

      Documentation Requirements

      • n/a

      Follow Up Requirements

      • n/a

            Assignee:
            Unassigned Unassigned
            Reporter:
            bailey.pearson@mongodb.com Bailey Pearson
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              None
              None
              None
              None