diff --git a/scripts/drone/pipelines/release.star b/scripts/drone/pipelines/release.star index 7fff007420f..3940fe73bce 100644 --- a/scripts/drone/pipelines/release.star +++ b/scripts/drone/pipelines/release.star @@ -77,11 +77,15 @@ def release_npm_packages_step(edition, ver_mode): } def get_steps(edition, ver_mode): + build_steps = [] + package_steps = [] + windows_package_steps = [] + publish_steps = [] should_publish = ver_mode in ('release', 'test-release',) should_upload = should_publish or ver_mode in ('release-branch',) include_enterprise2 = edition == 'enterprise' - steps = [ + build_steps = [ codespell_step(), shellcheck_step(), lint_backend_step(edition=edition), @@ -100,7 +104,7 @@ def get_steps(edition, ver_mode): edition2 = 'enterprise2' if include_enterprise2: - steps.extend([ + build_steps.extend([ lint_backend_step(edition=edition2), test_backend_step(edition=edition2), test_backend_integration_step(edition=edition2), @@ -108,7 +112,7 @@ def get_steps(edition, ver_mode): ]) # Insert remaining steps - steps.extend([ + build_steps.extend([ package_step(edition=edition, ver_mode=ver_mode, include_enterprise2=include_enterprise2), e2e_tests_server_step(edition=edition), e2e_tests_step(edition=edition, tries=3), @@ -119,26 +123,26 @@ def get_steps(edition, ver_mode): build_storybook = build_storybook_step(edition=edition, ver_mode=ver_mode) if build_storybook: - steps.append(build_storybook) + build_steps.append(build_storybook) if include_enterprise2: - steps.extend([redis_integration_tests_step(edition=edition2), memcached_integration_tests_step(edition=edition2)]) + build_steps.extend([redis_integration_tests_step(edition=edition2), memcached_integration_tests_step(edition=edition2)]) if should_upload: - steps.append(upload_cdn_step(edition=edition)) - steps.append(upload_packages_step(edition=edition, ver_mode=ver_mode)) + publish_steps.append(upload_cdn_step(edition=edition)) + publish_steps.append(upload_packages_step(edition=edition, ver_mode=ver_mode)) if should_publish: publish_step = publish_storybook_step(edition=edition, ver_mode=ver_mode) release_npm_step = release_npm_packages_step(edition=edition, ver_mode=ver_mode) if publish_step: - steps.append(publish_step) + publish_steps.append(publish_step) if release_npm_step: - steps.append(release_npm_step) - windows_steps = get_windows_steps(edition=edition, ver_mode=ver_mode) + publish_steps.append(release_npm_step) + windows_package_steps = get_windows_steps(edition=edition, ver_mode=ver_mode) if include_enterprise2: edition2 = 'enterprise2' - steps.extend([ + publish_steps.extend([ package_step(edition=edition2, ver_mode=ver_mode, include_enterprise2=include_enterprise2, variants=['linux-x64']), e2e_tests_server_step(edition=edition2, port=3002), e2e_tests_step(edition=edition2, port=3002, tries=3), @@ -147,22 +151,23 @@ def get_steps(edition, ver_mode): if should_upload: step = upload_packages_step(edition=edition2, ver_mode=ver_mode) if step: - steps.append(step) + publish_steps.append(step) - return steps, windows_steps + return build_steps, package_steps, windows_package_steps, publish_steps def get_oss_pipelines(trigger, ver_mode): edition = 'oss' services = integration_test_services(edition=edition) - steps, windows_steps = get_steps(edition=edition, ver_mode=ver_mode) + build_steps, package_steps, windows_package_steps, publish_steps = get_steps(edition=edition, ver_mode=ver_mode) return [ pipeline( name='oss-build-{}'.format(ver_mode), edition=edition, trigger=trigger, services=services, - steps=[download_grabpl_step()] + initialize_step(edition, platform='linux', ver_mode=ver_mode) + steps, + steps=[download_grabpl_step()] + initialize_step(edition, platform='linux', ver_mode=ver_mode) + + build_steps + package_steps + publish_steps, ), pipeline( name='oss-windows-{}'.format(ver_mode), edition=edition, trigger=trigger, - steps=[download_grabpl_step()] + initialize_step(edition, platform='windows', ver_mode=ver_mode) + windows_steps, + steps=[download_grabpl_step()] + initialize_step(edition, platform='windows', ver_mode=ver_mode) + windows_package_steps, platform='windows', depends_on=['oss-build-{}'.format(ver_mode)], ), ] @@ -170,15 +175,16 @@ def get_oss_pipelines(trigger, ver_mode): def get_enterprise_pipelines(trigger, ver_mode): edition = 'enterprise' services = integration_test_services(edition=edition) - steps, windows_steps = get_steps(edition=edition, ver_mode=ver_mode) + build_steps, package_steps, windows_package_steps, publish_steps = get_steps(edition=edition, ver_mode=ver_mode) return [ pipeline( name='enterprise-build-{}'.format(ver_mode), edition=edition, trigger=trigger, services=services, - steps=[download_grabpl_step()] + initialize_step(edition, platform='linux', ver_mode=ver_mode) + steps, + steps=[download_grabpl_step()] + initialize_step(edition, platform='linux', ver_mode=ver_mode) + + build_steps + package_steps + publish_steps, ), pipeline( name='enterprise-windows-{}'.format(ver_mode), edition=edition, trigger=trigger, - steps=[download_grabpl_step()] + initialize_step(edition, platform='windows', ver_mode=ver_mode) + windows_steps, + steps=[download_grabpl_step()] + initialize_step(edition, platform='windows', ver_mode=ver_mode) + windows_package_steps, platform='windows', depends_on=['enterprise-build-{}'.format(ver_mode)], ), ]