mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
CI: Move release integration pipeline to standalone promotion pipeline (#65787)
This commit is contained in:
@@ -196,6 +196,12 @@ def oss_pipelines(ver_mode = ver_mode, trigger = release_trigger):
|
||||
mysql_integration_tests_step(),
|
||||
]
|
||||
|
||||
# We don't need to run integration tests at release time since they have
|
||||
# been run multiple times before:
|
||||
if ver_mode in ("release"):
|
||||
integration_test_steps = []
|
||||
volumes = []
|
||||
|
||||
windows_pipeline = pipeline(
|
||||
name = "{}-oss-windows".format(ver_mode),
|
||||
edition = "oss",
|
||||
@@ -203,11 +209,9 @@ def oss_pipelines(ver_mode = ver_mode, trigger = release_trigger):
|
||||
steps = get_windows_steps(edition = "oss", ver_mode = ver_mode),
|
||||
platform = "windows",
|
||||
depends_on = [
|
||||
# 'oss-build-e2e-publish-{}'.format(ver_mode),
|
||||
"{}-oss-build-e2e-publish".format(ver_mode),
|
||||
"{}-oss-test-frontend".format(ver_mode),
|
||||
"{}-oss-test-backend".format(ver_mode),
|
||||
"{}-oss-integration-tests".format(ver_mode),
|
||||
],
|
||||
environment = environment,
|
||||
)
|
||||
@@ -224,7 +228,10 @@ def oss_pipelines(ver_mode = ver_mode, trigger = release_trigger):
|
||||
),
|
||||
test_frontend(trigger, ver_mode),
|
||||
test_backend(trigger, ver_mode),
|
||||
pipeline(
|
||||
]
|
||||
|
||||
if ver_mode not in ("release"):
|
||||
pipelines.append(pipeline(
|
||||
name = "{}-oss-integration-tests".format(ver_mode),
|
||||
edition = "oss",
|
||||
trigger = trigger,
|
||||
@@ -239,9 +246,9 @@ def oss_pipelines(ver_mode = ver_mode, trigger = release_trigger):
|
||||
integration_test_steps,
|
||||
environment = environment,
|
||||
volumes = volumes,
|
||||
),
|
||||
windows_pipeline,
|
||||
]
|
||||
))
|
||||
|
||||
pipelines.append(windows_pipeline)
|
||||
|
||||
return pipelines
|
||||
|
||||
@@ -338,8 +345,16 @@ def enterprise_pipelines(ver_mode = ver_mode, trigger = release_trigger):
|
||||
integration_test_steps = [
|
||||
postgres_integration_tests_step(),
|
||||
mysql_integration_tests_step(),
|
||||
redis_integration_tests_step(),
|
||||
memcached_integration_tests_step(),
|
||||
]
|
||||
|
||||
# We don't need to run integration tests at release time since they have
|
||||
# been run multiple times before:
|
||||
if ver_mode in ("release"):
|
||||
integration_test_steps = []
|
||||
volumes = []
|
||||
|
||||
windows_pipeline = pipeline(
|
||||
name = "{}-enterprise-windows".format(ver_mode),
|
||||
edition = "enterprise",
|
||||
@@ -347,11 +362,9 @@ def enterprise_pipelines(ver_mode = ver_mode, trigger = release_trigger):
|
||||
steps = get_windows_steps(edition = "enterprise", ver_mode = ver_mode),
|
||||
platform = "windows",
|
||||
depends_on = [
|
||||
# 'enterprise-build-e2e-publish-{}'.format(ver_mode),
|
||||
"{}-enterprise-build-e2e-publish".format(ver_mode),
|
||||
"{}-enterprise-test-frontend".format(ver_mode),
|
||||
"{}-enterprise-test-backend".format(ver_mode),
|
||||
"{}-enterprise-integration-tests".format(ver_mode),
|
||||
],
|
||||
environment = environment,
|
||||
)
|
||||
@@ -368,7 +381,10 @@ def enterprise_pipelines(ver_mode = ver_mode, trigger = release_trigger):
|
||||
),
|
||||
test_frontend_enterprise(trigger, ver_mode, source = source),
|
||||
test_backend_enterprise(trigger, ver_mode, source = source),
|
||||
pipeline(
|
||||
]
|
||||
|
||||
if ver_mode not in ("release"):
|
||||
pipelines.append(pipeline(
|
||||
name = "{}-enterprise-integration-tests".format(ver_mode),
|
||||
edition = "enterprise",
|
||||
trigger = trigger,
|
||||
@@ -391,16 +407,12 @@ def enterprise_pipelines(ver_mode = ver_mode, trigger = release_trigger):
|
||||
[
|
||||
wire_install_step(),
|
||||
] +
|
||||
integration_test_steps +
|
||||
[
|
||||
redis_integration_tests_step(),
|
||||
memcached_integration_tests_step(),
|
||||
],
|
||||
integration_test_steps,
|
||||
environment = environment,
|
||||
volumes = volumes,
|
||||
),
|
||||
windows_pipeline,
|
||||
]
|
||||
))
|
||||
|
||||
pipelines.append(windows_pipeline)
|
||||
|
||||
return pipelines
|
||||
|
||||
@@ -655,3 +667,77 @@ def artifacts_page_pipeline():
|
||||
environment = {"EDITION": "enterprise"},
|
||||
),
|
||||
]
|
||||
|
||||
def integration_test_pipelines():
|
||||
"""
|
||||
Trigger integration tests on release builds
|
||||
|
||||
These pipelines should be triggered when we have a release that does a lot of
|
||||
cherry-picking and we still want to have all the integration tests run on that
|
||||
particular build.
|
||||
|
||||
Returns:
|
||||
List of Drone pipelines (one for enterprise and one for oss integration tests)
|
||||
"""
|
||||
trigger = {
|
||||
"event": ["promote"],
|
||||
"target": "integration-tests",
|
||||
}
|
||||
pipelines = []
|
||||
volumes = integration_test_services_volumes()
|
||||
oss_integration_test_steps = [
|
||||
postgres_integration_tests_step(),
|
||||
mysql_integration_tests_step(),
|
||||
]
|
||||
enterprise_integration_test_steps = oss_integration_test_steps + [
|
||||
redis_integration_tests_step(),
|
||||
memcached_integration_tests_step(),
|
||||
]
|
||||
source = "${DRONE_TAG}"
|
||||
|
||||
pipelines.append(pipeline(
|
||||
name = "integration-tests-oss",
|
||||
edition = "oss",
|
||||
trigger = trigger,
|
||||
services = integration_test_services(edition = "oss"),
|
||||
steps = [
|
||||
download_grabpl_step(),
|
||||
identify_runner_step(),
|
||||
verify_gen_cue_step(),
|
||||
verify_gen_jsonnet_step(),
|
||||
wire_install_step(),
|
||||
] +
|
||||
oss_integration_test_steps,
|
||||
environment = {"EDITION": "oss"},
|
||||
volumes = volumes,
|
||||
))
|
||||
|
||||
pipelines.append(pipeline(
|
||||
name = "integration-tests-enterprise",
|
||||
edition = "enterprise",
|
||||
trigger = trigger,
|
||||
services = integration_test_services(edition = "enterprise"),
|
||||
steps = [
|
||||
download_grabpl_step(),
|
||||
identify_runner_step(),
|
||||
clone_enterprise_step(source = source),
|
||||
init_enterprise_step(ver_mode),
|
||||
] +
|
||||
with_deps(
|
||||
[
|
||||
verify_gen_cue_step(),
|
||||
verify_gen_jsonnet_step(),
|
||||
],
|
||||
[
|
||||
"init-enterprise",
|
||||
],
|
||||
) +
|
||||
[
|
||||
wire_install_step(),
|
||||
] +
|
||||
enterprise_integration_test_steps,
|
||||
environment = {"EDITION": "enterprise"},
|
||||
volumes = volumes,
|
||||
))
|
||||
|
||||
return pipelines
|
||||
|
||||
Reference in New Issue
Block a user