Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
d0d32e9
v3 -> v4 package paths and naming
DrJosh9000 Mar 31, 2026
d31d483
Promote or delete experiments
DrJosh9000 Apr 8, 2026
dc815b5
Remove deprecated docker integration
DrJosh9000 Apr 8, 2026
d76300f
Remove deprecated CLI flags
moskyb Apr 20, 2026
e40dc7d
Promote descending-spawn-priority experiment
moskyb Apr 14, 2026
f20dd25
Print metadata from `meta-data get` with a newline after it
moskyb Apr 20, 2026
5b7cee6
Merge pull request #3834 from buildkite/remove-deprecated-flags
DrJosh9000 Apr 20, 2026
15af911
Merge pull request #3835 from buildkite/newline-after-meta-data-get
DrJosh9000 Apr 20, 2026
c745920
Remove deprecated plugin env vars
DrJosh9000 Apr 22, 2026
4fcc388
Enable release pipeline for v4 branch
DrJosh9000 Apr 20, 2026
35c3a1e
fix: Reverse ordering for post- hooks
DrJosh9000 Apr 22, 2026
bc04ca8
Merge pull request #3852 from buildkite/remove-deprecated-plugin-env-…
DrJosh9000 Apr 22, 2026
1bed5df
Merge pull request #3853 from buildkite/a-1167-agent-hook-ordering-re…
DrJosh9000 Apr 23, 2026
0077d66
Replace `cancel-grace-period` and `signal-grace-period-seconds` with …
moskyb Apr 23, 2026
4081fd1
Adjust defaults: cancel-signal-timeout 9 -> 10, cancel-cleanup-timeou…
moskyb Apr 30, 2026
f3c102e
Merge pull request #3868 from buildkite/graceless
moskyb Apr 30, 2026
35f0cd4
Rip out opentracing tracing backend
moskyb Apr 29, 2026
a85bdd9
Merge pull request #3867 from buildkite/kill-opentracing
moskyb Apr 30, 2026
479a807
Replace dogstatsd metrics with opentelemetry metrics
moskyb Apr 30, 2026
34644bf
Flatten tracing config to be a single bool flag
moskyb Apr 30, 2026
88b3225
Always enable traceparent propagation from the backend if otel tracin…
moskyb May 1, 2026
1724d75
Merge pull request #3876 from buildkite/align-tracing-metrics-flags
moskyb May 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
295 changes: 148 additions & 147 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,11 @@ steps:
- api/proto/**
- .buildkite/steps/check-protobuf-generation.sh
plugins:
- docker-compose#v4.14.0:
config: .buildkite/docker-compose.yml
cli-version: 2
mount-buildkite-agent: true
run: lint
- docker-compose#v4.14.0:
config: .buildkite/docker-compose.yml
cli-version: 2
mount-buildkite-agent: true
run: lint

- group: ":go::scientist: Tests and Coverage"
if_changed:
Expand All @@ -44,150 +44,150 @@ steps:
- "**/fixtures/**"
- .buildkite/steps/{tests,test-coverage-report}.sh
steps:
- name: ":linux: Linux AMD64 Tests"
key: test-linux-amd64
command: ".buildkite/steps/tests.sh"
parallelism: 2
artifact_paths:
- junit-*.xml
- "coverage-*/**"
plugins:
- docker-compose#v4.14.0:
config: .buildkite/docker-compose.yml
cli-version: 2
propagate-environment: true
run: agent
- test-collector#v1.11.0:
files: "junit-*.xml"
format: "junit"
tags:
- "os=linux"
- "arch=amd64"
- "race=false"
- name: ":linux: Linux AMD64 Tests"
key: test-linux-amd64
command: ".buildkite/steps/tests.sh"
parallelism: 2
artifact_paths:
- junit-*.xml
- "coverage-*/**"
plugins:
- docker-compose#v4.14.0:
config: .buildkite/docker-compose.yml
cli-version: 2
propagate-environment: true
run: agent
- test-collector#v1.11.0:
files: "junit-*.xml"
format: "junit"
tags:
- "os=linux"
- "arch=amd64"
- "race=false"

- name: ":linux: Linux ARM64 Tests"
key: test-linux-arm64
command: ".buildkite/steps/tests.sh"
parallelism: 2
artifact_paths:
- junit-*.xml
- "coverage-*/**"
agents:
queue: $AGENT_RUNNERS_LINUX_ARM64_QUEUE
plugins:
- docker-compose#v4.14.0:
config: .buildkite/docker-compose.yml
cli-version: 2
propagate-environment: true
run: agent
- test-collector#v1.11.0:
files: "junit-*.xml"
format: "junit"
tags:
- "os=linux"
- "arch=arm64"
- "race=false"
- name: ":linux: Linux ARM64 Tests"
key: test-linux-arm64
command: ".buildkite/steps/tests.sh"
parallelism: 2
artifact_paths:
- junit-*.xml
- "coverage-*/**"
agents:
queue: $AGENT_RUNNERS_LINUX_ARM64_QUEUE
plugins:
- docker-compose#v4.14.0:
config: .buildkite/docker-compose.yml
cli-version: 2
propagate-environment: true
run: agent
- test-collector#v1.11.0:
files: "junit-*.xml"
format: "junit"
tags:
- "os=linux"
- "arch=arm64"
- "race=false"

- name: ":windows: Windows AMD64 Tests"
key: test-windows
command: "bash .buildkite\\steps\\tests.sh"
parallelism: 2
artifact_paths:
- junit-*.xml
- "coverage-*/**"
agents:
queue: $AGENT_RUNNERS_WINDOWS_QUEUE
plugins:
- test-collector#v1.11.0:
files: "junit-*.xml"
format: "junit"
tags:
- "os=windows"
- "arch=arm64"
- "race=false"
- name: ":windows: Windows AMD64 Tests"
key: test-windows
command: "bash .buildkite\\steps\\tests.sh"
parallelism: 2
artifact_paths:
- junit-*.xml
- "coverage-*/**"
agents:
queue: $AGENT_RUNNERS_WINDOWS_QUEUE
plugins:
- test-collector#v1.11.0:
files: "junit-*.xml"
format: "junit"
tags:
- "os=windows"
- "arch=arm64"
- "race=false"

- name: ":satellite: Detect Data Races"
key: test-race-linux-arm64
command: ".buildkite/steps/tests.sh -race"
# Extra parallelism because this data race test is slow
parallelism: 3
artifact_paths:
- junit-*.xml
- "coverage-*/**"
agents:
queue: $AGENT_RUNNERS_LINUX_ARM64_QUEUE
plugins:
- docker-compose#v4.14.0:
config: .buildkite/docker-compose.yml
cli-version: 2
propagate-environment: true
run: agent
- test-collector#v1.11.0:
files: "junit-*.xml"
format: "junit"
tags:
- "os=linux"
- "arch=arm64"
- "race=true"
- name: ":satellite: Detect Data Races"
key: test-race-linux-arm64
command: ".buildkite/steps/tests.sh -race"
# Extra parallelism because this data race test is slow
parallelism: 3
artifact_paths:
- junit-*.xml
- "coverage-*/**"
agents:
queue: $AGENT_RUNNERS_LINUX_ARM64_QUEUE
plugins:
- docker-compose#v4.14.0:
config: .buildkite/docker-compose.yml
cli-version: 2
propagate-environment: true
run: agent
- test-collector#v1.11.0:
files: "junit-*.xml"
format: "junit"
tags:
- "os=linux"
- "arch=arm64"
- "race=true"

- name: ":coverage: Test coverage report Linux ARM64"
key: test-coverage-linux-arm64
command: ".buildkite/steps/test-coverage-report.sh coverage-linux-arm64"
artifact_paths:
- "cover.html"
- "cover.out"
depends_on:
- test-linux-arm64
plugins:
- docker-compose#v4.14.0:
config: .buildkite/docker-compose.yml
cli-version: 2
run: agent
- artifacts#v1.9.4:
download: "coverage-linux-arm64/**"
- name: ":coverage: Test coverage report Linux ARM64"
key: test-coverage-linux-arm64
command: ".buildkite/steps/test-coverage-report.sh coverage-linux-arm64"
artifact_paths:
- "cover.html"
- "cover.out"
depends_on:
- test-linux-arm64
plugins:
- docker-compose#v4.14.0:
config: .buildkite/docker-compose.yml
cli-version: 2
run: agent
- artifacts#v1.9.4:
download: "coverage-linux-arm64/**"

- name: ":coverage: Test coverage report Linux AMD64"
key: test-coverage-linux-amd64
command: ".buildkite/steps/test-coverage-report.sh coverage-linux-amd64"
artifact_paths:
- "cover.html"
- "cover.out"
depends_on:
- test-linux-amd64
plugins:
- docker-compose#v4.14.0:
config: .buildkite/docker-compose.yml
cli-version: 2
run: agent
- artifacts#v1.9.4:
download: "coverage-linux-amd64/**"
- name: ":coverage: Test coverage report Linux AMD64"
key: test-coverage-linux-amd64
command: ".buildkite/steps/test-coverage-report.sh coverage-linux-amd64"
artifact_paths:
- "cover.html"
- "cover.out"
depends_on:
- test-linux-amd64
plugins:
- docker-compose#v4.14.0:
config: .buildkite/docker-compose.yml
cli-version: 2
run: agent
- artifacts#v1.9.4:
download: "coverage-linux-amd64/**"

- name: ":coverage: Test coverage report Linux ARM64 Race"
key: test-coverage-linux-arm64-race
command: ".buildkite/steps/test-coverage-report.sh coverage-linux-arm64-race"
artifact_paths:
- "cover.html"
- "cover.out"
depends_on:
- test-race-linux-arm64
plugins:
- docker-compose#v4.14.0:
config: .buildkite/docker-compose.yml
cli-version: 2
run: agent
- artifacts#v1.9.4:
download: "coverage-linux-arm64-race/**"
- name: ":coverage: Test coverage report Linux ARM64 Race"
key: test-coverage-linux-arm64-race
command: ".buildkite/steps/test-coverage-report.sh coverage-linux-arm64-race"
artifact_paths:
- "cover.html"
- "cover.out"
depends_on:
- test-race-linux-arm64
plugins:
- docker-compose#v4.14.0:
config: .buildkite/docker-compose.yml
cli-version: 2
run: agent
- artifacts#v1.9.4:
download: "coverage-linux-arm64-race/**"

- label: ":writing_hand: Annotate with Test Failures"
depends_on:
- test-linux-amd64
- test-race-linux-arm64
- test-linux-arm64
- test-windows
allow_dependency_failure: true
plugins:
- junit-annotate#v1.6.0:
artifacts: junit-*.xml
- label: ":writing_hand: Annotate with Test Failures"
depends_on:
- test-linux-amd64
- test-race-linux-arm64
- test-linux-arm64
- test-windows
allow_dependency_failure: true
plugins:
- junit-annotate#v1.6.0:
artifacts: junit-*.xml

# --- end Tests and Coverage ---

Expand Down Expand Up @@ -418,14 +418,15 @@ steps:
- name: ":pipeline: Upload Release Pipeline"
key: upload-release-steps
depends_on:
- build-debian-packages
- build-github-release
- build-rpm-packages
- check-code-committed
- check-version-string
- test-windows
- e2e-tests
- test-bk-cli
- test-docker-amd64
- test-docker-arm64
- build-rpm-packages
- build-debian-packages
- build-github-release
- test-windows
command: ".buildkite/steps/upload-release-steps.sh"
if: build.env("DRY_RUN") == "true" || build.branch =~ /^(main|.*-.*-stable)$$/
if: build.env("DRY_RUN") == "true" || build.branch =~ /^(main|.*-.*-stable|v\d+)$$/
2 changes: 1 addition & 1 deletion .buildkite/steps/check-protobuf-generation.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ buf generate
if ! git diff --no-ext-diff --exit-code; then
echo ^^^ +++
echo "Generated protobuf files are out of sync with the source code"
echo "Please run \`buf generate\` in the internal/proto directory locally, and commit the result."
echo "Please run \`buf generate\` in the api/proto directory locally, and commit the result."
exit 1
fi
10 changes: 7 additions & 3 deletions .buildkite/steps/upload-release-steps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,13 @@ YAML
edge_steps_yaml() {
echo "steps:"

trigger_step \
"edge ${agent_version}.${build_version}" \
"agent-release-edge"
# Don't create edge releases for beta/RC in this branch
# TODO(v4 cleanup): Re-enable edge releases here
if [[ ! "$agent_version" =~ (beta|rc) ]] ; then
trigger_step \
"edge ${agent_version}.${build_version}" \
"agent-release-edge"
fi
}

output_steps_yaml() {
Expand Down
4 changes: 2 additions & 2 deletions BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
load("@gazelle//:def.bzl", "gazelle")
load("@rules_go//go:def.bzl", "go_binary", "go_library")

# gazelle:prefix github.com/buildkite/agent/v3
# gazelle:prefix github.com/buildkite/agent/v4
gazelle(name = "gazelle")

go_binary(
Expand All @@ -14,7 +14,7 @@ go_binary(
go_library(
name = "agent_lib",
srcs = ["main.go"],
importpath = "github.com/buildkite/agent/v3",
importpath = "github.com/buildkite/agent/v4",
visibility = ["//visibility:private"],
deps = [
"//clicommand",
Expand Down
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [v4.0.0-beta.1](https://github.com/buildkite/agent/tree/v4.0.0-beta.1) (2026-04-22)
[Full Changelog](https://github.com/buildkite/agent/compare/v3.123.1...v4.0.0-beta.1)

### Changed
- The following experiments are now default behaviour (promoted):
- `normalised-upload-paths`
- `override-zero-exit-on-cancel`
- `resolve-commit-after-checkout`
- `propagate-agent-config-vars`
- Remove `allow-artifact-path-traversal` experiment
- Remove deprecated Docker support
- `spawn-with-priority` is now a string, removing the `descending-spawn-priority` experiment [#3821](https://github.com/buildkite/agent/pull/3821) (@moskyb)
- Newline after meta data get [#3835](https://github.com/buildkite/agent/pull/3835) (@moskyb)
- Remove deprecated CLI flags [#3834](https://github.com/buildkite/agent/pull/3834) (@moskyb)
- Remove deprecated plugin env vars [#3852](https://github.com/buildkite/agent/pull/3852) (@DrJosh9000)

## [v3.124.0](https://github.com/buildkite/agent/tree/v3.124.0) (2026-04-28)
[Full Changelog](https://github.com/buildkite/agent/compare/v3.123.1...v3.124.0)

Expand Down
Loading