From fab89eeae970d9544f5ce2726f6850d91498822e Mon Sep 17 00:00:00 2001 From: "kevin.new" Date: Wed, 25 Feb 2026 00:09:50 +0000 Subject: [PATCH 1/3] feat(queueconfig): Add a BuildRunner to the queueconfig --- entity/queue_config.go | 20 ++++++-------------- entity/queue_config_test.go | 11 +++++++++-- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/entity/queue_config.go b/entity/queue_config.go index 9e042921..bdc6c999 100644 --- a/entity/queue_config.go +++ b/entity/queue_config.go @@ -26,19 +26,11 @@ type QueueConfig struct { // - Perforce: stream or depot path (e.g., "//depot/main/...") // - SVN: repository path (e.g., "trunk/") Target string -} -// NewQueueConfig creates a new QueueConfig with the given parameters. -func NewQueueConfig( - name string, - vcsType string, - vcsAddress string, - target string, -) QueueConfig { - return QueueConfig{ - Name: name, - VCSType: vcsType, - VCSAddress: vcsAddress, - Target: target, - } + // BuildRunner identifies the CI pipeline or job that runs builds for this queue. + // Opaque to the system; meaningful only to the build extension implementation. + // Examples: + // - Buildkite: "uber/submitqueue/ci" + // - Jenkins: "https://jenkins.example.com/job/submitqueue-verify" + BuildRunner string } diff --git a/entity/queue_config_test.go b/entity/queue_config_test.go index 3e181656..7569f14d 100644 --- a/entity/queue_config_test.go +++ b/entity/queue_config_test.go @@ -6,11 +6,18 @@ import ( "github.com/stretchr/testify/assert" ) -func TestNewQueueConfig(t *testing.T) { - cfg := NewQueueConfig("uber/submitqueue/main", "git", "git@github.com:uber/submitqueue.git", "main") +func TestQueueConfig(t *testing.T) { + cfg := QueueConfig{ + Name: "uber/submitqueue/main", + VCSType: "git", + VCSAddress: "git@github.com:uber/submitqueue.git", + Target: "main", + BuildRunner: "uber/submitqueue/ci", + } assert.Equal(t, "uber/submitqueue/main", cfg.Name) assert.Equal(t, "git", cfg.VCSType) assert.Equal(t, "git@github.com:uber/submitqueue.git", cfg.VCSAddress) assert.Equal(t, "main", cfg.Target) + assert.Equal(t, "uber/submitqueue/ci", cfg.BuildRunner) } From 2a511370abc0cee7c86d5e7f1054b123392d6885 Mon Sep 17 00:00:00 2001 From: "kevin.new" Date: Wed, 25 Feb 2026 00:23:41 +0000 Subject: [PATCH 2/3] better examples in docs and tests --- entity/queue_config.go | 4 ++-- entity/queue_config_test.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/entity/queue_config.go b/entity/queue_config.go index bdc6c999..51b581a7 100644 --- a/entity/queue_config.go +++ b/entity/queue_config.go @@ -30,7 +30,7 @@ type QueueConfig struct { // BuildRunner identifies the CI pipeline or job that runs builds for this queue. // Opaque to the system; meaningful only to the build extension implementation. // Examples: - // - Buildkite: "uber/submitqueue/ci" - // - Jenkins: "https://jenkins.example.com/job/submitqueue-verify" + // - Buildkite: "buildkite.com/uber/submitqueue-ci" + // - Jenkins: "jenkins.example.com/job/submitqueue-verify" BuildRunner string } diff --git a/entity/queue_config_test.go b/entity/queue_config_test.go index 7569f14d..98a71f37 100644 --- a/entity/queue_config_test.go +++ b/entity/queue_config_test.go @@ -12,12 +12,12 @@ func TestQueueConfig(t *testing.T) { VCSType: "git", VCSAddress: "git@github.com:uber/submitqueue.git", Target: "main", - BuildRunner: "uber/submitqueue/ci", + BuildRunner: "buildkite.com/uber/submitqueue-ci", } assert.Equal(t, "uber/submitqueue/main", cfg.Name) assert.Equal(t, "git", cfg.VCSType) assert.Equal(t, "git@github.com:uber/submitqueue.git", cfg.VCSAddress) assert.Equal(t, "main", cfg.Target) - assert.Equal(t, "uber/submitqueue/ci", cfg.BuildRunner) + assert.Equal(t, "buildkite.com/uber/submitqueue-ci", cfg.BuildRunner) } From a891df653238d7ec95d8ecc87c520f5d0dec598a Mon Sep 17 00:00:00 2001 From: "kevin.new" Date: Wed, 25 Feb 2026 00:29:01 +0000 Subject: [PATCH 3/3] adding yaml and json tags for queue config --- entity/queue_config.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/entity/queue_config.go b/entity/queue_config.go index 51b581a7..2d00f5fd 100644 --- a/entity/queue_config.go +++ b/entity/queue_config.go @@ -7,30 +7,30 @@ package entity type QueueConfig struct { // Name uniquely identifies this queue within the system. // Referenced by Request.Queue. - Name string + Name string `json:"name" yaml:"name"` // VCSType identifies the version control system (e.g., "git", "svn", "perforce"). // A queue operates on exactly one VCS. - VCSType string + VCSType string `json:"vcs_type" yaml:"vcs_type"` // VCSAddress identifies the repository in the version control system. // The format is VCS-specific: // - Git: remote URL (e.g., "git@github.com:uber/submitqueue.git") // - Perforce: depot path (e.g., "//depot/project") // - SVN: repository URL (e.g., "https://svn.example.com/repos/project") - VCSAddress string + VCSAddress string `json:"vcs_address" yaml:"vcs_address"` // Target is the landing target where changes are merged. // The format is VCS-specific: // - Git: branch ref (e.g., "main", "release/v2") // - Perforce: stream or depot path (e.g., "//depot/main/...") // - SVN: repository path (e.g., "trunk/") - Target string + Target string `json:"target" yaml:"target"` // BuildRunner identifies the CI pipeline or job that runs builds for this queue. // Opaque to the system; meaningful only to the build extension implementation. // Examples: // - Buildkite: "buildkite.com/uber/submitqueue-ci" // - Jenkins: "jenkins.example.com/job/submitqueue-verify" - BuildRunner string + BuildRunner string `json:"build_runner" yaml:"build_runner"` }