CI: Split oss and enterprise steps for release pipelines (#55157)

* s/include_enterprise2/include_enterprise

* Get rid of get_steps def - include steps in separate defs
This commit is contained in:
Dimitris Sotirakis 2022-09-14 16:47:02 +03:00 committed by GitHub
parent 0571d98bba
commit 5a1ba20856
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 104 additions and 48 deletions

View File

@ -2548,17 +2548,6 @@ steps:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.3
name: upload-packages
- commands:
- ./bin/grabpl artifacts npm store --tag ${DRONE_TAG}
depends_on:
- build-frontend-packages
environment:
GCP_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/build-container:1.6.2
name: store-npm-packages
- commands:
- ./bin/grabpl package --jobs 8 --edition enterprise2 --sign ${DRONE_TAG}
depends_on:
@ -2589,6 +2578,17 @@ steps:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.3
name: upload-cdn-assets-enterprise2
- commands:
- ./bin/grabpl artifacts npm store --tag ${DRONE_TAG}
depends_on:
- build-frontend-packages
environment:
GCP_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/build-container:1.6.2
name: store-npm-packages
- commands:
- ./bin/grabpl upload-packages --edition enterprise2
depends_on:
@ -5055,6 +5055,6 @@ kind: secret
name: packages_secret_access_key
---
kind: signature
hmac: 5ddbaf0b3a60ffec387d728b2141c59a4875d72108a71b2ee0baf278d2b4e939
hmac: e21a281dc63df0317ad1082113a224b53fb5ef2f62d74eb2d7b6d11d80f0f079
...

View File

@ -151,13 +151,14 @@ def publish_image_pipelines(mode):
name='publish-docker-enterprise-{}'.format(mode), trigger=trigger, steps=publish_image_steps(version='enterprise', mode=mode, docker_repo='grafana-enterprise'), edition=""
),]
def get_steps(edition, ver_mode):
def get_oss_pipelines(trigger, ver_mode):
edition = 'oss'
services = integration_test_services(edition=edition)
volumes = integration_test_services_volumes()
package_steps = []
publish_steps = []
should_publish = ver_mode == 'release'
should_upload = should_publish or ver_mode in ('release-branch',)
include_enterprise2 = edition == 'enterprise'
edition2 = 'enterprise2'
init_steps = [
identify_runner_step(),
download_grabpl_step(),
@ -189,18 +190,9 @@ def get_steps(edition, ver_mode):
mysql_integration_tests_step(edition=edition, ver_mode=ver_mode),
]
if include_enterprise2:
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']),
])
# Insert remaining steps
build_steps.extend([
package_step(edition=edition, ver_mode=ver_mode, include_enterprise2=include_enterprise2),
package_step(edition=edition, ver_mode=ver_mode),
copy_packages_for_docker_step(),
build_docker_images_step(edition=edition, ver_mode=ver_mode, publish=True),
build_docker_images_step(edition=edition, ver_mode=ver_mode, ubuntu=True, publish=True),
@ -232,23 +224,6 @@ def get_steps(edition, ver_mode):
publish_steps.append(store_npm_step)
windows_package_steps = get_windows_steps(edition=edition, ver_mode=ver_mode)
if include_enterprise2:
publish_steps.extend([
package_step(edition=edition2, ver_mode=ver_mode, include_enterprise2=include_enterprise2, variants=['linux-amd64']),
upload_cdn_step(edition=edition2, ver_mode=ver_mode),
])
if should_upload:
step = upload_packages_step(edition=edition2, ver_mode=ver_mode)
if step:
publish_steps.append(step)
return init_steps, test_steps, build_steps, integration_test_steps, package_steps, windows_package_steps, publish_steps
def get_oss_pipelines(trigger, ver_mode):
edition = 'oss'
services = integration_test_services(edition=edition)
volumes = integration_test_services_volumes()
init_steps, test_steps, build_steps, integration_test_steps, package_steps, windows_package_steps, publish_steps = get_steps(edition=edition, ver_mode=ver_mode)
windows_pipeline = pipeline(
name='{}-oss-windows'.format(ver_mode), edition=edition, trigger=trigger,
steps=[identify_runner_step('windows')] + windows_package_steps,
@ -292,12 +267,12 @@ def get_enterprise_pipelines(trigger, ver_mode):
edition = 'enterprise'
services = integration_test_services(edition=edition)
volumes = integration_test_services_volumes()
deps_on_clone_enterprise_step = {
'depends_on': [
'init-enterprise',
]
}
_, test_steps, build_steps, integration_test_steps, package_steps, windows_package_steps, publish_steps = get_steps(edition=edition, ver_mode=ver_mode)
package_steps = []
publish_steps = []
should_publish = ver_mode == 'release'
should_upload = should_publish or ver_mode in ('release-branch',)
include_enterprise = edition == 'enterprise'
edition2 = 'enterprise2'
init_steps = [
download_grabpl_step(),
identify_runner_step(),
@ -305,6 +280,87 @@ def get_enterprise_pipelines(trigger, ver_mode):
init_enterprise_step(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),
build_frontend_package_step(edition=edition, ver_mode=ver_mode),
build_plugins_step(edition=edition, ver_mode=ver_mode),
]
integration_test_steps = [
postgres_integration_tests_step(edition=edition, ver_mode=ver_mode),
mysql_integration_tests_step(edition=edition, ver_mode=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']),
])
# Insert remaining steps
build_steps.extend([
package_step(edition=edition, ver_mode=ver_mode, include_enterprise2=include_enterprise),
copy_packages_for_docker_step(),
build_docker_images_step(edition=edition, ver_mode=ver_mode, publish=True),
build_docker_images_step(edition=edition, ver_mode=ver_mode, ubuntu=True, publish=True),
grafana_server_step(edition=edition),
])
if not disable_tests:
build_steps.extend([
e2e_tests_step('dashboards-suite', edition=edition, tries=3),
e2e_tests_step('smoke-tests-suite', edition=edition, tries=3),
e2e_tests_step('panels-suite', edition=edition, tries=3),
e2e_tests_step('various-suite', edition=edition, tries=3),
e2e_tests_artifacts(edition=edition),
])
build_storybook = build_storybook_step(edition=edition, ver_mode=ver_mode)
if build_storybook:
build_steps.append(build_storybook)
if should_upload:
publish_steps.extend([
upload_cdn_step(edition=edition, ver_mode=ver_mode, trigger=trigger_oss),
upload_packages_step(edition=edition, ver_mode=ver_mode, trigger=trigger_oss),
package_step(edition=edition2, ver_mode=ver_mode, include_enterprise2=include_enterprise, variants=['linux-amd64']),
upload_cdn_step(edition=edition2, ver_mode=ver_mode),
])
if should_publish:
publish_step = store_storybook_step(edition=edition, ver_mode=ver_mode)
store_npm_step = store_npm_packages_step()
if publish_step:
publish_steps.append(publish_step)
if store_npm_step:
publish_steps.append(store_npm_step)
windows_package_steps = get_windows_steps(edition=edition, ver_mode=ver_mode)
if should_upload:
step = upload_packages_step(edition=edition2, ver_mode=ver_mode)
if step:
publish_steps.append(step)
deps_on_clone_enterprise_step = {
'depends_on': [
'init-enterprise',
]
}
for step in [wire_install_step(), yarn_install_step(), verify_gen_cue_step(edition)]:
step.update(deps_on_clone_enterprise_step)
init_steps.extend([step])