Skip to content
代码片段 群组 项目
提交 06c30825 编辑于 作者: Jonas Wälter's avatar Jonas Wälter 提交者: Grzegorz Bizon
浏览文件

Use FIFO as pending builds strategy for group runners

Changelog: fixed
上级 f0da3b90
No related branches found
No related tags found
无相关合并请求
...@@ -19,7 +19,11 @@ def builds_for_shared_runner ...@@ -19,7 +19,11 @@ def builds_for_shared_runner
def builds_for_group_runner def builds_for_group_runner
return new_builds.none if runner.namespace_ids.empty? return new_builds.none if runner.namespace_ids.empty?
new_builds.where('ci_pending_builds.namespace_traversal_ids && ARRAY[?]::int[]', runner.namespace_ids) new_builds_relation = new_builds.where('ci_pending_builds.namespace_traversal_ids && ARRAY[?]::int[]', runner.namespace_ids)
return order(new_builds_relation) if ::Feature.enabled?(:order_builds_for_group_runner)
new_builds_relation
end end
def builds_matching_tag_ids(relation, ids) def builds_matching_tag_ids(relation, ids)
......
---
name: order_builds_for_group_runner
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/94815
rollout_issue_url:
milestone: '15.4'
type: development
group: group::pipeline execution
default_enabled: true
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Ci::Queue::PendingBuildsStrategy do
let_it_be(:group) { create(:group) }
let_it_be(:group_runner) { create(:ci_runner, :group, groups: [group]) }
let_it_be(:project) { create(:project, group: group) }
let_it_be(:pipeline) { create(:ci_pipeline, project: project) }
let!(:build_1) { create(:ci_build, :created, pipeline: pipeline) }
let!(:build_2) { create(:ci_build, :created, pipeline: pipeline) }
let!(:build_3) { create(:ci_build, :created, pipeline: pipeline) }
let!(:pending_build_1) { create(:ci_pending_build, build: build_2, project: project) }
let!(:pending_build_2) { create(:ci_pending_build, build: build_3, project: project) }
let!(:pending_build_3) { create(:ci_pending_build, build: build_1, project: project) }
describe 'builds_for_group_runner' do
it 'returns builds ordered by build ID' do
strategy = described_class.new(group_runner)
expect(strategy.builds_for_group_runner).to eq([pending_build_3, pending_build_1, pending_build_2])
end
end
end
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册