mirror of
https://github.com/grafana/grafana.git
synced 2025-02-15 10:03:33 -06:00
* Add steps in the pipeline for cloning enterprise when running PR tests. * Removed enterprise-check from the github action workflows, and removed it from the codeowners file.
122 lines
3.3 KiB
Plaintext
122 lines
3.3 KiB
Plaintext
"""
|
|
This module returns the pipeline used for testing backend code.
|
|
"""
|
|
|
|
load(
|
|
"scripts/drone/steps/lib.star",
|
|
"clone_enterprise_step",
|
|
"compile_build_cmd",
|
|
"download_grabpl_step",
|
|
"enterprise_setup_step",
|
|
"identify_runner_step",
|
|
"init_enterprise_step",
|
|
"test_backend_integration_step",
|
|
"test_backend_step",
|
|
"verify_gen_cue_step",
|
|
"verify_gen_jsonnet_step",
|
|
"wire_install_step",
|
|
)
|
|
load(
|
|
"scripts/drone/utils/utils.star",
|
|
"pipeline",
|
|
"with_deps",
|
|
)
|
|
|
|
def test_backend(trigger, ver_mode):
|
|
"""Generates the pipeline used for testing OSS backend code.
|
|
|
|
Args:
|
|
trigger: a Drone trigger for the pipeline.
|
|
ver_mode: affects the pipeline name.
|
|
|
|
Returns:
|
|
Drone pipeline.
|
|
"""
|
|
environment = {"EDITION": "oss"}
|
|
|
|
steps = []
|
|
|
|
verify_step = verify_gen_cue_step()
|
|
verify_jsonnet_step = verify_gen_jsonnet_step()
|
|
|
|
if ver_mode == "pr":
|
|
# In pull requests, attempt to clone grafana enterprise.
|
|
steps.append(enterprise_setup_step())
|
|
|
|
# Ensure that verif_gen_cue happens after we clone enterprise
|
|
# At the time of writing this, very_gen_cue is depended on by the wire step which is what everything else depends on.
|
|
verify_step["depends_on"].append("clone-enterprise")
|
|
verify_jsonnet_step["depends_on"].append("clone-enterprise")
|
|
|
|
steps += [
|
|
identify_runner_step(),
|
|
compile_build_cmd(edition = "oss"),
|
|
verify_step,
|
|
verify_jsonnet_step,
|
|
wire_install_step(),
|
|
test_backend_step(),
|
|
test_backend_integration_step(),
|
|
]
|
|
|
|
pipeline_name = "{}-test-backend".format(ver_mode)
|
|
if ver_mode in ("release-branch", "release"):
|
|
pipeline_name = "{}-{}-test-backend".format(ver_mode, "oss")
|
|
|
|
return pipeline(
|
|
name = pipeline_name,
|
|
edition = "oss",
|
|
trigger = trigger,
|
|
steps = steps,
|
|
environment = environment,
|
|
)
|
|
|
|
def test_backend_enterprise(trigger, ver_mode, source, edition = "enterprise"):
|
|
"""Generates the pipeline used for testing backend enterprise code.
|
|
|
|
Args:
|
|
trigger: a Drone trigger for the pipeline.
|
|
ver_mode: affects the pipeline name.
|
|
source: controls what revision of enterprise code to test with. The source of the PR, usually.
|
|
edition: affects the clone step in the pipeline and also affects the pipeline name.
|
|
|
|
Returns:
|
|
Drone pipeline.
|
|
"""
|
|
environment = {"EDITION": edition}
|
|
|
|
steps = (
|
|
[
|
|
clone_enterprise_step(source),
|
|
download_grabpl_step(),
|
|
init_enterprise_step(ver_mode),
|
|
identify_runner_step(),
|
|
compile_build_cmd(edition),
|
|
] +
|
|
with_deps(
|
|
[
|
|
verify_gen_cue_step(),
|
|
verify_gen_jsonnet_step(),
|
|
],
|
|
[
|
|
"init-enterprise",
|
|
],
|
|
) +
|
|
[
|
|
wire_install_step(),
|
|
test_backend_step(),
|
|
test_backend_integration_step(),
|
|
]
|
|
)
|
|
|
|
pipeline_name = "{}-test-backend".format(ver_mode)
|
|
if ver_mode in ("release-branch", "release"):
|
|
pipeline_name = "{}-{}-test-backend".format(ver_mode, edition)
|
|
|
|
return pipeline(
|
|
name = pipeline_name,
|
|
edition = edition,
|
|
trigger = trigger,
|
|
steps = steps,
|
|
environment = environment,
|
|
)
|