title: Implement Multi-project gitlab pipeline with common deploy and test stages
body: <p>I have been tasked with implementing a gitlab ci/cd pipeline for a cloud Saas solution. Our product is made up of 4 microservices, each in a separate git project. My goal is to setup a pipeline where committing a change to service A will build/unit test the service, deploy the service in our CI environment, and then trigger our End-to-End test in a separate project. Solving this for a single commit to a single service is pretty simple. I have a POC where after the deploy stage in the gitlab yml, I just use the &quot;trigger&quot; property to trigger the End-to-End test in the e2e test project. My problem is figuring out how to manage this with parallel commits to each project simultaneously.</p>
  <p>For example: if someone commits to service A and it's pipeline starts (build -&gt; deploy to CI space -&gt; trigger E2E test). Then while the pipeline is still running, someone commits to service B, triggering it's pipeline (build -&gt; deploy to CI space -&gt; E2E Test), how do I prevent deployment stage for commit to service B from running while E2E still running from commit to service A? Basically I want the deploy stage and E2E stage to hold if a similar stage is running in other pipelines.</p>
  <p>Note: there is long standing history with the services being in separate git projects, so if any solution requires reorganizing the projects it would have to be a very compelling reason.</p>