Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
10 changes: 9 additions & 1 deletion .buildkite/pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import sys
from pathlib import Path

from buildkite_sdk import Pipeline, GroupStep
from buildkite_sdk import CommandStep, Pipeline, GroupStep

sys.path.insert(0, str(Path(__file__).parent / "tools"))
from qdb_pipeline import (
Expand Down Expand Up @@ -136,11 +136,13 @@ def generate_pipeline() -> Pipeline:
pipeline = Pipeline()
git_ref = get_git_ref()
group_steps = {}
variants = []

for p in PLATFORMS:
for bt in BUILD_TYPES:
for py in PYTHON_VERSIONS:
slug = p.slug(bt.lower(), f"py{py.replace('.', '')}")
variants.append(slug)

# We want to use Release QuasarDB binaries when building Python API (debug and release)
dependency_slug = p.slug("release")
Expand Down Expand Up @@ -187,6 +189,12 @@ def generate_pipeline() -> Pipeline:
for group, steps in group_steps.items():
group_step = GroupStep(group=group, steps=steps)
pipeline.add_step(group_step)

# Aggregate all test reports
step = load_template(STEPS_DIR / "_test_report.yml", **tvars)
step["depends_on"] = [f"build-{variant}" for variant in variants]
pipeline.add_step(CommandStep.from_dict(step))


return pipeline

Expand Down
5 changes: 5 additions & 0 deletions .buildkite/steps/_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,8 @@ plugins:
- "dist/doc.tar.gz"
base_dir: "dist"
promote: {}
- bureau14/qdb-test-report#master:
title: "Test report {slug}"
job:
variant: {slug}
junit_input_path: "tests/build/test/*.xml"
18 changes: 18 additions & 0 deletions .buildkite/steps/_test_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
agents:
queue: "default-debian-amd64"

label: ":bar_chart: Aggregate test report"
key: "full-test-report"

command: "true"

allow_dependency_failure: true

depends_on:

plugins:
- bureau14/qdb-test-report#master:
title: "Full test report"
# Volume of tests is huge - 20k test * 48 variants = ~1M test results, over 150mb html report, we report only failed tests in this case
only_failures: true
aggregate: {}
Loading