Skip to content
Draft

V4 #3807

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
b9e6442
v3 -> v4 package paths and naming
DrJosh9000 Mar 31, 2026
f100c40
Promote or delete experiments
DrJosh9000 Apr 8, 2026
f36e1a0
Remove deprecated docker integration
DrJosh9000 Apr 8, 2026
1201cfd
Remove deprecated CLI flags
moskyb Apr 20, 2026
79b1af4
Promote descending-spawn-priority experiment
moskyb Apr 14, 2026
789cdd1
Print metadata from `meta-data get` with a newline after it
moskyb Apr 20, 2026
0308be2
Merge pull request #3834 from buildkite/remove-deprecated-flags
DrJosh9000 Apr 20, 2026
bde34dd
Merge pull request #3835 from buildkite/newline-after-meta-data-get
DrJosh9000 Apr 20, 2026
697641f
Remove deprecated plugin env vars
DrJosh9000 Apr 22, 2026
6d49a06
Enable release pipeline for v4 branch
DrJosh9000 Apr 20, 2026
f09a648
fix: Reverse ordering for post- hooks
DrJosh9000 Apr 22, 2026
8171f7a
Merge pull request #3852 from buildkite/remove-deprecated-plugin-env-…
DrJosh9000 Apr 22, 2026
a4ea083
Merge pull request #3853 from buildkite/a-1167-agent-hook-ordering-re…
DrJosh9000 Apr 23, 2026
823f454
Replace `cancel-grace-period` and `signal-grace-period-seconds` with …
moskyb Apr 23, 2026
e95b50a
Adjust defaults: cancel-signal-timeout 9 -> 10, cancel-cleanup-timeou…
moskyb Apr 30, 2026
515c5f1
Rip out opentracing tracing backend
moskyb Apr 29, 2026
0c4abd3
Merge pull request #3868 from buildkite/graceless
moskyb Apr 30, 2026
b02c989
Make pipeline secret redaction default behaviour
moskyb Mar 23, 2022
41ebb3f
Merge pull request #3896 from buildkite/kill-opentracing-take-2
DrJosh9000 May 5, 2026
92a2644
Bump changelog and VERSION for v4.0.0-beta.2
DrJosh9000 May 6, 2026
57a5aed
Merge pull request #3897 from buildkite/enforce-pipeline-reaction-mk-ii
DrJosh9000 May 6, 2026
dccaacc
Merge pull request #3898 from buildkite/release-v4.0.0-beta.2
DrJosh9000 May 6, 2026
d9c7e26
Remove header times
DrJosh9000 May 7, 2026
cf39df6
ANSI timestamps only and always
DrJosh9000 May 7, 2026
d13ebba
Merge pull request #3899 from buildkite/remove-header-times
DrJosh9000 May 7, 2026
6eba9a1
Upgrade to urfave/cli/v3
DrJosh9000 May 7, 2026
f5b28cf
Merge pull request #3904 from buildkite/urfave-cli-v3
DrJosh9000 May 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
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
35 changes: 35 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,25 @@ 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.2](https://github.com/buildkite/agent/tree/v4.0.0-beta.2) (2026-05-06)

### Changed since beta 1
- Make pipeline secret redaction default behaviour [#3897](https://github.com/buildkite/agent/pull/3897) (@moskyb, @DrJosh9000)
- Rip out opentracing tracing backend (take 2) [#3896](https://github.com/buildkite/agent/pull/3896) (@moskyb, @DrJosh9000)
- Replace `cancel-grace-period` and `signal-grace-period-seconds` with `cancel-signal-timeout` and `cancel-cleanup-timeout` [#3868](https://github.com/buildkite/agent/pull/3868) (@moskyb)
- fix: Reverse ordering for post- hooks [#3853](https://github.com/buildkite/agent/pull/3853) (@DrJosh9000)

### Changed since v3.125.0
- build(deps): bump github.com/buildkite/go-buildkite/v4 from 4.19.0 to 4.21.0 [#3860](https://github.com/buildkite/agent/pull/3860) (@dependabot[bot])
- build(deps): bump the cloud-providers group across 1 directory with 5 updates [#3879](https://github.com/buildkite/agent/pull/3879) (@dependabot[bot])
- build(deps): bump github.com/klauspost/compress from 1.18.5 to 1.18.6 [#3885](https://github.com/buildkite/agent/pull/3885) (@dependabot[bot])
- build(deps): bump the container-images group across 1 directory with 3 updates [#3888](https://github.com/buildkite/agent/pull/3888) (@dependabot[bot])
- build(deps): bump the container-images group across 2 directories with 1 update [#3895](https://github.com/buildkite/agent/pull/3895) (@dependabot[bot])
- build(deps): bump the container-images group across 4 directories with 1 update [#3886](https://github.com/buildkite/agent/pull/3886) (@dependabot[bot])
- build(deps): bump the container-images group across 2 directories with 1 update [#3890](https://github.com/buildkite/agent/pull/3890) (@dependabot[bot])
- build(deps): bump the container-images group across 3 directories with 1 update [#3891](https://github.com/buildkite/agent/pull/3891) (@dependabot[bot])
- docs: mention BUILDKITE_S3_PROFILE in artifact upload help [#3869](https://github.com/buildkite/agent/pull/3869) (@mastermanas805)

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

Expand All @@ -25,6 +44,22 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Remove and prevent use of assert libraries (testify) [#3858](https://github.com/buildkite/agent/pull/3858) (@DrJosh9000)
- Bump go-pipeline to v0.17.0 [#3865](https://github.com/buildkite/agent/pull/3865) (@CerealBoy)

## [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