Multiple manual jobs trigger, multiple tests independently without having to wait for all previous jobs to complete

Using self-hosted starter edition here:

I need a simple solution to a very simple problem that seems very difficult to solve with the job model in gitlab.

I have Three stages in gitlab with the following order and jobs:

Stage build with jobs:

deploy stage with manual jobs:
deploy_dev, deploy_si and deploy_production

test stage with with jobs that are dependent on the deploy stage respectively
test_dev, test_si and test_production

My problem is that I need the test_dev job to run only if deploy_dev passes and test_si when deploy_si passes and so on, I don’t want all the previous jobs to finish to be able to trigger next one.

Also my problem is that I can only trigger these based on the same branch because we are doing TBD, not gitlab flow, so all of these jobs can be triggered with master, but we only manually select to run whatever deploy we want.

I understand I could separate them into more stages, but then my problem would be that if I only want to run deploy_si and test_si I would be still be forced to run all the previous stages for dev and production which I wouldn’t want to do

Is there any elegant way to solve this without having to merge tests into deploy? Maybe having a way to specify that a job is only dependent on such and such previous job?

To clarify, when I run a deploy job I only want the pertinent test job to run afterwards, not having to wait for all manual jobs to complete, and not having to run all test jobs at once.

I’ve been scouring the web but I can’t find anything, possibly cause I am not entirely sure what to google for to get the same case as mine, any help would be appreciated.