[v9.2.x] CI: Split release test pipelines (#56670)

* CI: Split release test pipelines (#56655)

* Split test release pipelines

* Add missing dependencies

* Add release branch case when naming pipeline

(cherry picked from commit 75c5845749)

* Add clone-enterprise and init-enterprise steps (#56662)

(cherry picked from commit eb077db2b0)

* Add dependencies (#56666)

(cherry picked from commit 811f6054c8)

* Fix release test pipelines dependencies (#56671)

(cherry picked from commit 668cb25b82)

* Remove build-frontend-packages step from docs pipelines (#56686)

(cherry picked from commit efc8f985cb)

* Remove grabpl dependency from yarn-install (#56692)

* Sign drone
This commit is contained in:
Dimitris Sotirakis
2022-10-12 09:44:12 +03:00
committed by GitHub
parent d02b7fc0ba
commit 0cf8f9fab6
6 changed files with 681 additions and 417 deletions
+604 -343
View File
File diff suppressed because it is too large Load Diff
+22 -39
View File
@@ -61,6 +61,16 @@ load(
'drone_change_template',
)
load(
'scripts/drone/pipelines/test_frontend.star',
'test_frontend',
)
load(
'scripts/drone/pipelines/test_backend.star',
'test_backend',
)
load('scripts/drone/vault.star', 'from_secret', 'github_token', 'pull_secret', 'drone_token', 'prerelease_bucket')
def store_npm_packages_step():
@@ -113,7 +123,7 @@ def release_npm_packages_step():
}
def get_oss_pipelines(trigger, ver_mode):
environment = {'EDITION': 'OSS'}
environment = {'EDITION': 'oss'}
edition = 'oss'
services = integration_test_services(edition=edition)
volumes = integration_test_services_volumes()
@@ -130,16 +140,6 @@ def get_oss_pipelines(trigger, ver_mode):
compile_build_cmd(),
]
test_steps = []
test_steps.extend([
lint_backend_step(edition=edition),
lint_frontend_step(),
test_backend_step(edition=edition),
test_backend_integration_step(edition=edition),
test_frontend_step(),
])
build_steps = [
build_backend_step(edition=edition, ver_mode=ver_mode),
build_frontend_step(edition=edition, ver_mode=ver_mode),
@@ -202,11 +202,8 @@ def get_oss_pipelines(trigger, ver_mode):
]
if not disable_tests:
pipelines.extend([
pipeline(
name='{}-oss-test'.format(ver_mode), edition=edition, trigger=trigger, services=[],
steps=init_steps + test_steps,
environment=environment, volumes=[],
),
test_frontend(trigger, ver_mode),
test_backend(trigger, ver_mode),
pipeline(
name='{}-oss-integration-tests'.format(ver_mode), edition=edition, trigger=trigger, services=services,
steps=[download_grabpl_step(), identify_runner_step(), verify_gen_cue_step(edition), wire_install_step(), ] + integration_test_steps,
@@ -216,7 +213,8 @@ def get_oss_pipelines(trigger, ver_mode):
deps = {
'depends_on': [
'{}-oss-build{}-publish'.format(ver_mode, get_e2e_suffix()),
'{}-oss-test'.format(ver_mode),
'{}-oss-test-frontend'.format(ver_mode),
'{}-oss-test-backend'.format(ver_mode),
'{}-oss-integration-tests'.format(ver_mode)
]
}
@@ -226,7 +224,7 @@ def get_oss_pipelines(trigger, ver_mode):
return pipelines
def get_enterprise_pipelines(trigger, ver_mode):
environment = {'EDITION': 'ENTERPRISE'}
environment = {'EDITION': 'enterprise'}
edition = 'enterprise'
services = integration_test_services(edition=edition)
volumes = integration_test_services_volumes()
@@ -244,16 +242,6 @@ def get_enterprise_pipelines(trigger, ver_mode):
compile_build_cmd(edition),
]
test_steps = []
test_steps.extend([
lint_backend_step(edition=edition),
lint_frontend_step(),
test_backend_step(edition=edition),
test_backend_integration_step(edition=edition),
test_frontend_step(),
])
build_steps = [
build_backend_step(edition=edition, ver_mode=ver_mode),
build_frontend_step(edition=edition, ver_mode=ver_mode),
@@ -267,10 +255,6 @@ def get_enterprise_pipelines(trigger, ver_mode):
]
if include_enterprise:
test_steps.extend([
lint_backend_step(edition=edition2),
test_backend_step(edition=edition2),
])
build_steps.extend([
build_backend_step(edition=edition2, ver_mode=ver_mode, variants=['linux-amd64']),
])
@@ -324,7 +308,7 @@ def get_enterprise_pipelines(trigger, ver_mode):
]
}
for step in [wire_install_step(), yarn_install_step(), verify_gen_cue_step(edition)]:
for step in [wire_install_step(), yarn_install_step(edition), verify_gen_cue_step(edition)]:
step.update(deps_on_clone_enterprise_step)
init_steps.extend([step])
@@ -344,11 +328,9 @@ def get_enterprise_pipelines(trigger, ver_mode):
]
if not disable_tests:
pipelines.extend([
pipeline(
name='{}-enterprise-test'.format(ver_mode), edition=edition, trigger=trigger, services=[],
steps=init_steps + test_steps, environment=environment,
volumes=[],
),
test_frontend(trigger, ver_mode, edition),
test_backend(trigger, ver_mode, edition),
test_backend(trigger, ver_mode, edition2),
pipeline(
name='{}-enterprise-integration-tests'.format(ver_mode), edition=edition, trigger=trigger, services=services,
steps=[download_grabpl_step(), identify_runner_step(), clone_enterprise_step(ver_mode), init_enterprise_step(ver_mode), verify_gen_cue_step(edition), wire_install_step()] + integration_test_steps + [redis_integration_tests_step(), memcached_integration_tests_step()],
@@ -358,7 +340,8 @@ def get_enterprise_pipelines(trigger, ver_mode):
deps = {
'depends_on': [
'{}-enterprise-build{}-publish'.format(ver_mode, get_e2e_suffix()),
'{}-enterprise-test'.format(ver_mode),
'{}-enterprise-test-frontend'.format(ver_mode),
'{}-enterprise-test-backend'.format(ver_mode),
'{}-enterprise-integration-tests'.format(ver_mode)
]
}
-4
View File
@@ -8,9 +8,7 @@ load(
'codespell_step',
'test_frontend_step',
'build_storybook_step',
'build_frontend_package_step',
'build_docs_website_step',
'compile_build_cmd',
)
load(
@@ -40,9 +38,7 @@ def docs_pipelines(edition, ver_mode, trigger):
yarn_install_step(),
codespell_step(),
lint_docs(),
build_frontend_package_step(edition=edition, ver_mode=ver_mode),
build_docs_website_step(),
compile_build_cmd(),
]
return pipeline(
+18 -8
View File
@@ -1,11 +1,14 @@
load(
'scripts/drone/steps/lib.star',
'identify_runner_step',
'download_grabpl_step',
'wire_install_step',
'test_backend_step',
'test_backend_integration_step',
'verify_gen_cue_step',
'compile_build_cmd',
'clone_enterprise_step',
'init_enterprise_step',
)
load(
@@ -13,18 +16,25 @@ load(
'pipeline',
)
def test_backend(trigger, ver_mode):
init_steps = [
def test_backend(trigger, ver_mode, edition="oss"):
environment = {'EDITION': edition}
init_steps = []
if edition != 'oss':
init_steps.extend([clone_enterprise_step(ver_mode), download_grabpl_step(), init_enterprise_step(ver_mode),])
init_steps.extend([
identify_runner_step(),
compile_build_cmd(),
verify_gen_cue_step(edition="oss"),
compile_build_cmd(edition),
verify_gen_cue_step(edition),
wire_install_step(),
]
])
test_steps = [
test_backend_step(edition="oss"),
test_backend_integration_step(edition="oss"),
test_backend_step(edition),
test_backend_integration_step(edition),
]
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='{}-test-backend'.format(ver_mode), edition="oss", trigger=trigger, services=[], steps=init_steps + test_steps,
name=pipeline_name, edition=edition, trigger=trigger, services=[], steps=init_steps + test_steps, environment=environment
)
+16 -9
View File
@@ -1,11 +1,12 @@
load(
'scripts/drone/steps/lib.star',
'identify_runner_step',
'clone_enterprise_step',
'init_enterprise_step',
'download_grabpl_step',
'yarn_install_step',
'betterer_frontend_step',
'test_frontend_step',
'compile_build_cmd',
)
load(
@@ -13,17 +14,23 @@ load(
'pipeline',
)
def test_frontend(trigger, ver_mode):
init_steps = [
def test_frontend(trigger, ver_mode, edition="oss"):
environment = {'EDITION': edition}
init_steps = []
if edition != 'oss':
init_steps.extend([clone_enterprise_step(ver_mode), init_enterprise_step(ver_mode),])
init_steps.extend([
identify_runner_step(),
download_grabpl_step(),
yarn_install_step(),
compile_build_cmd(),
]
yarn_install_step(edition),
])
test_steps = [
betterer_frontend_step(),
test_frontend_step(),
betterer_frontend_step(edition),
test_frontend_step(edition),
]
pipeline_name = '{}-test-frontend'.format(ver_mode)
if ver_mode in ("release-branch", "release"):
pipeline_name = '{}-{}-test-frontend'.format(ver_mode, edition)
return pipeline(
name='{}-test-frontend'.format(ver_mode), edition="oss", trigger=trigger, services=[], steps=init_steps + test_steps,
name=pipeline_name, edition=edition, trigger=trigger, services=[], steps=init_steps + test_steps,
)
+21 -14
View File
@@ -36,16 +36,17 @@ def slack_step(channel, template, secret):
},
}
def yarn_install_step():
def yarn_install_step(edition="oss"):
deps = []
if edition == 'enterprise':
deps = ['init-enterprise']
return {
'name': 'yarn-install',
'image': build_image,
'commands': [
'yarn install --immutable',
],
'depends_on': [
'grabpl',
],
'depends_on': deps,
}
@@ -449,6 +450,7 @@ def build_frontend_package_step(edition, ver_mode):
'NODE_OPTIONS': '--max_old_space_size=8192',
},
'depends_on': [
'compile-build-cmd',
'yarn-install',
],
'commands': cmds,
@@ -467,6 +469,7 @@ def build_plugins_step(edition, ver_mode):
'image': build_image,
'environment': env,
'depends_on': [
'compile-build-cmd',
'yarn-install',
],
'commands': [
@@ -514,13 +517,15 @@ def test_backend_integration_step(edition):
],
}
def betterer_frontend_step():
def betterer_frontend_step(edition="oss"):
deps = []
if edition == "enterprise":
deps.extend(['init-enterprise'])
deps.extend(['yarn-install'])
return {
'name': 'betterer-frontend',
'image': build_image,
'depends_on': [
'yarn-install',
],
'depends_on': deps,
'commands': [
'yarn betterer ci',
],
@@ -529,16 +534,18 @@ def betterer_frontend_step():
def test_frontend_step():
def test_frontend_step(edition="oss"):
deps = []
if edition == "enterprise":
deps.extend(['init-enterprise'])
deps.extend(['yarn-install'])
return {
'name': 'test-frontend',
'image': build_image,
'environment': {
'TEST_MAX_WORKERS': '50%',
},
'depends_on': [
'yarn-install',
],
'depends_on': deps,
'commands': [
'yarn run ci:test-frontend',
],
@@ -1180,7 +1187,7 @@ def get_windows_steps(edition, ver_mode):
def verify_gen_cue_step(edition):
deps = []
if edition == "enterprise":
if edition in ('enterprise', 'enterprise2'):
deps.extend(['init-enterprise'])
return {
'name': 'verify-gen-cue',
@@ -1253,7 +1260,7 @@ def end_to_end_tests_deps(edition):
def compile_build_cmd(edition='oss'):
dependencies = []
if edition == 'enterprise':
if edition in ('enterprise', 'enterprise2'):
dependencies = ['init-enterprise',]
return {
'name': 'compile-build-cmd',