I might be misunderstanding something or doing something incorrectly. I thought a manual job would block all the jobs in the subsequent stages as well.
I have this pipeline:
build: image: busybox:latest stage: build script: echo Build manual: stage: test when: manual script: - echo Manual - sleep 60 deploy: stage: deploy script: echo Deploy
GitLab CI executed the build stage and the deploy stage even though the test stage is still waiting for my manual intervention to start the job.