Uploaded image for project: 'PHP Driver: Extension'
  1. PHP Driver: Extension
  2. PHPC-2233

Use separate jobs in GitHub Actions for building Windows DLLs and running integration tests

    • Type: Icon: Task Task
    • Resolution: Done
    • Priority: Icon: Unknown Unknown
    • None
    • Affects Version/s: None
    • Component/s: Tests
    • Labels:
      None

      Since the original implementation of PHPC-2143, Windows DLLs are only published after running the driver test suite.

      As discussed in actions/runner-images#5949, GitHub Actions can time out when attempting to start MongoDB as a Window service. I've yet to find a reliable workaround for this (see mongodb/mongo-php-driver#1429 for my most recent experiment).

      While this isn't a concern for most PRs, it can potentially hold up a release. The only solution is to watch GitHub Actions and regularly restart failed jobs until the entire Windows matrix completes.

      Consider splitting the Windows build process into two steps. DLLs can be published after a successful build and quick test w/o a live MongoDB server (e.g. verifying the extension loads successfully, or running a subset of tests). Then, we can trigger dependent jobs to run the entire test suite on a much smaller matrix.

      Doing so would allow us to ignore Windows service issues during a release time (assuming the DLL builds succeed) and also make better use of GitHub's CI platform, since the current matrix used for DLLs is likely overkill for our integration testing.

            Assignee:
            andreas.braun@mongodb.com Andreas Braun
            Reporter:
            jmikola@mongodb.com Jeremy Mikola
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: