It is not one of the command in the “prepare” stage that never finish. It is the manual job itself that is never started. And, because the job never start, the stage never finish and the next one wait for it forever. That’s our issue.
Build runs on all branches, always finishes.
Beta runs on master branch and always finishes.
Deploy is available for manual deployment but only on production branch.
I suggest you replace commands with simple echos to see which of your commands that prevents your pipeline from continuing, cause it always goes to the next thing, but only after it’s finished with the previous one.
However your manual job (“deploy”) is the last one. While my manual job (“prepare”) is a needed dependency of the “publish” job. And when “prepare” is not executed, “publish” wait for it…
I copied your pipeline setup to have a look, and now I see the complete extent of your problem.
The problem you’re experiencing stems from the implementation of DAG and the needs command that came with it.
It’s been a registered issue with Gitlab since the August 2019, and they’re still discussing it:
And it’s a little bit sad to say, but your best option is either to set job2 and 3 both as manual, or combine job2 and 3 into the same job until the resolve it, but that might take some time, as it’s a breaking change on pipeline behaviour.