# Multiple gitlab-runners

**URL:** <https://forum.gitlab.com/t/multiple-gitlab-runners/104389>\
**Category:** How to Use GitLab\
**Tags:** ci, cicd, runner, pipelines\
**Created:** [May 12, 2024, 12:11pm UTC](https://forum.gitlab.com/t/multiple-gitlab-runners/104389 "2024-05-12T12:11:52Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![farhad8463](https://sea2.discourse-cdn.com/gitlab/user_avatar/forum.gitlab.com/farhad8463/32/34692_2.png) [@farhad8463](https://forum.gitlab.com/u/farhad8463)\
**Post date:** [May 12, 2024, 12:11pm UTC](https://forum.gitlab.com/t/multiple-gitlab-runners/104389/1 "2024-05-12T12:11:52Z")

</div>

Dear All  
I have one question about Multiple gitlab-runners.  
I have gitlab server with 2 gitlab-runner , one runner Executor is shell and another runner Executor is docker.  
both runner doesn’t have Tags (Tags : None)  
how runners pickup right gitlab-ci pipeline for execute?

---

<div class="post-metadata">

**Author:** ![iwalker](https://sea2.discourse-cdn.com/gitlab/user_avatar/forum.gitlab.com/iwalker/32/28805_2.png) [@iwalker](https://forum.gitlab.com/u/iwalker)\
**Post date:** [May 12, 2024, 4:11pm UTC](https://forum.gitlab.com/t/multiple-gitlab-runners/104389/2 "2024-05-12T16:11:09Z")

</div>

See this response on the forum when this question was asked before:

> [@How does gitlab choose which identical runner to use?](https://forum.gitlab.com/t/how-does-gitlab-choose-which-identical-runner-to-use/85176/2):
>
> As such GitLab doesn’t choose. All of the active runners check regularly (I don’t remember the interval, but it’s less than one minute by default) if there are jobs they should handle (by tags mostly), and if there is, they pick up the job. If you’re not happy with how jobs are distributed among your runners, the most direct way to change allocation is to tags jobs, and configure runners to only run jobs with a specific tag (and/or untagged jobs). A couple of less direct ways (I haven’t tried …

---

<div class="post-metadata">

**Author:** ![farhad8463](https://sea2.discourse-cdn.com/gitlab/user_avatar/forum.gitlab.com/farhad8463/32/34692_2.png) [@farhad8463](https://forum.gitlab.com/u/farhad8463)\
**Post date:** [May 12, 2024, 4:27pm UTC](https://forum.gitlab.com/t/multiple-gitlab-runners/104389/3 "2024-05-12T16:27:25Z")

</div>

Thanks for your respond  
i have one gitlab-ci that has 3 stage  
i want stage 2 , use shell executer runner and stage 3 use docker executer runner !  
how handle this senario ? could you please write sample gitlab-ci for this senario??

---

<div class="post-metadata">

**Author:** ![paula.kokic](https://sea2.discourse-cdn.com/gitlab/user_avatar/forum.gitlab.com/paula.kokic/32/31535_2.png) [@paula.kokic](https://forum.gitlab.com/u/paula.kokic)\
**Post date:** [May 12, 2024, 5:18pm UTC](https://forum.gitlab.com/t/multiple-gitlab-runners/104389/4 "2024-05-12T17:18:03Z")

</div>

You cannot add tags to stages, just to specific jobs. E.g.

```auto
job1:
  stage: stage2
  tags:
    - shell

job2:
  stage: stage3
  tags:
    - docker

```

---

<div class="post-metadata">

**Author:** ![farhad8463](https://sea2.discourse-cdn.com/gitlab/user_avatar/forum.gitlab.com/farhad8463/32/34692_2.png) [@farhad8463](https://forum.gitlab.com/u/farhad8463)\
**Post date:** [May 12, 2024, 5:32pm UTC](https://forum.gitlab.com/t/multiple-gitlab-runners/104389/5 "2024-05-12T17:32:27Z")

</div>

Many Thanks 🙏
