极狐GitLab 正式推出面向 GitLab 老旧版本(12.x、13.x、14.x、15.x 等)免费用户的专业升级服务,点击查看详情

返回列表 发布新帖

请问gitlab流水线是如何将jobs分配给各gitlab runner的?

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×

本帖最后由 来自火星的小伙伴 于 2025-8-19 20:02 编辑

本帖最后由 来自火星的小伙伴 于 2025-8-19 20:02 编辑

本帖最后由 来自火星的小伙伴 于 2025-8-19 20:01 编辑

本帖最后由 来自火星的小伙伴 于 2025-8-19 20:00 编辑

本帖最后由 来自火星的小伙伴 于 2025-8-19 20:00 编辑

我们使用的是GitLab社区版v17.11.5版本。在A、B两台机器上分别部署了一个gitlab runner,在C机器上部署了两个gitlab runner,所以一共有四个gitlab runner。希望是可以并行运行四个流水线,每个流水线的作业顺序执行。每个流水线包括两个作业,分别是编译和测试。但是测试发现运行五个流水线的时候,最早运行的第一个流水线的第一个作业,即编译作业结束后,第二个作业测试作业并没有立即运行,而是运行了第五个流水线的编译作业,请问各位专家是什么原因?或者应该如何实现?谢谢。简化版的.gitlab-ci.yml如下所示:

variables:

GIT_STRATEGY: none # 禁止自动拉取 RUNNER_PATH: D:/gitlab-runner PYTHON_PATH: D:/Program Files/Python312/python.exe

stages:

PB_build

PB_test

PB_build_job: stage: PB_build script:

echo "Building on runner ${CI_RUNNER_ID}..."

sleep 60

rules:

if: CI_PIPELINE_SOURCE == 'web' && (RUN_JOBS == 'all' || $RUN_JOBS == 'only_build') when: always

tags:minio

allow_failure: false interruptible: false

PB_test_job: stage: PB_test script:

echo "testing on runner ${CI_RUNNER_ID}..."

sleep 60 rules:

if: $CI_PIPELINE_SOURCE == 'web' &&RUN_JOBS == 'all' when: always needs: ["PB_build_job"] tags:minio

allow_failure: false interruptible: false

我们当前创建的是项目级runner,请问项目级runner是FIFO的吗?

回复

使用道具 举报

意见建议

Email:forum@gitlab.cn
  • 关注公众号
  • 添加专业顾问
Copyright © 2001-2025 极狐GitLab论坛 版权所有 All Rights Reserved. 鄂ICP备2021008419号-1|鄂公网安备42018502006137号
关灯 快速发帖
扫一扫添加专业顾问
返回顶部
快速回复 返回顶部 返回列表