Environment specific branch deployment

Hi All

I have 2(3) environments (with specific runners taged on those two servers) dev and qa (and prod).
I have specific branches for dev and prod.
I know how to restrict script execution depending on which branch i changed using (only:).
Next option is to allow passing variables before I run a job which I can using only: web
and I run job from my Pipelines screen
I select branch provide variable (admin password for my app) and run.
BUT that starts jobs both on dev and qa.
How do I configure .yml so when invoking manually I can select brach and depending on selected branch job will know which environment should be picked?

Regards
Alek Jachowicz