At the moment, we don’t support nested groups or “sections within sections”; group steps are only one level deep.
For a pipeline of your size, in addition to the grouping that you are already implementing, the best approach is to split it into multiple pipelines using trigger steps. This would let you organize your dozen testing steps into a “Testing” pipeline, your build/bundle steps into a “Build” pipeline, etc. Each would have its own build page that’s much easier to navigate, and you can use trigger steps to orchestrate between them and maintain dependencies.
For example, your main pipeline could have a structure like:
steps:
- group: "Preparation"
steps:
- label: "Setup"
command: "./setup.sh"
- wait
- trigger: "my-app-tests" # This is the slug of your testing pipeline
label: "Run all tests"
build:
commit: "${BUILDKITE_COMMIT}" # commit to build in the triggered pipeline
branch: "${BUILDKITE_BRANCH}" # branch to build in the triggered pipeline
- trigger: "my-app-build" # This is the slug of your build pipeline
label: "Build and bundle"
build:
commit: "${BUILDKITE_COMMIT}"
branch: "${BUILDKITE_BRANCH}"
meta_data:
release-version: "1.1"
Then your test and build pipelines would each have their own logical groupings. The triggered builds appear as links in the parent build, so you maintain visibility of the overall process. You can find more here: Trigger step | Buildkite Documentation
Does splitting into separate pipelines via triggers sound workable for your setup?