Conditionally execute build workflow with path-filtering


I have a monorepo consisting two projects, server and client, as the following -

├── .circleci
│   ├── config.yml
│   └── continue_config.yml
├── server
├── client
├── tests

In the config.yaml I use the path-filtering orb in order to determine whether the CI needs to run the server or client tests in the continue_config.yml based on the changed files.

After running the tests, if all passed successfully or skipped because the project files haven’t changed, I want to run a build and deploy step that creates a docker image and push to Artifactory.

Before I used the path-filtering feature it was easy enough to do these steps as different jobs and use ‘requires’ clause as the following -

      - test-server
      - build-and-test-client
      - build-and-test-integration
      - build-and-upload-docker:
              only: develop
            - test-server
            - build-and-test-client
            - build-and-test-integration

Now as I’m using the path-filtering I need to separate these jobs in to different workflows to be able to use the ‘when’ clause with a different parameters, one for the server tests job (test-server and build-and-test-integration) and the client job (build-and-test-client).

The issue is when I’m using different workflows, the method that I used to ensure that all the tests have passed successfully with the ‘requires’ clause before building and deploying the docker image is not available from what I read on workflow level.

The question is how could I do both, use the path-filtering on different workflows and then trigger a third workflow that will only run when the first two passed before hand.

I will appreciate any solution or suggestion,