mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-13 03:12:13 +00:00
build: add collect-dist target to organize build artifacts
Build artifacts are currently scattered across build/dist/$mode/redhat/, tools/python3/build/, tools/cqlsh/build/, etc. with unpredictable names. Add a new 'collect-dist' ninja target that gathers all distributable artifacts into a well-known structure: build/$mode/dist/rpm/ -- all binary RPMs (no SRPMs) build/$mode/dist/deb/ -- all .deb packages build/$mode/dist/tar/ -- relocatable tarballs (already here) The collection is done via a reusable 'collect_pkgs' ninja rule defined directly in configure.py, which knows all the source paths. No external script is needed. Fixes: SCYLLADB-75 Closes scylladb/scylladb#29475
This commit is contained in:
committed by
Botond Dénes
parent
274024a76b
commit
5694c93c12
31
configure.py
31
configure.py
@@ -2463,6 +2463,9 @@ def write_build_file(f,
|
||||
command = reloc/build_deb.sh --reloc-pkg $in --builddir $out
|
||||
rule unified
|
||||
command = unified/build_unified.sh --build-dir $builddir/$mode --unified-pkg $out
|
||||
rule collect_pkgs
|
||||
command = rm -rf $out && mkdir -p $out && cp $pkgs $out/
|
||||
description = COLLECT $out
|
||||
rule rust_header
|
||||
command = cxxbridge --include rust/cxx.h --header $in > $out
|
||||
description = RUST_HEADER $out
|
||||
@@ -2948,6 +2951,8 @@ def write_build_file(f,
|
||||
build dist-tar: phony dist-unified-tar dist-server-tar dist-python3-tar dist-cqlsh-tar
|
||||
|
||||
build dist: phony dist-unified dist-server dist-python3 dist-cqlsh
|
||||
|
||||
build collect-dist: phony {' '.join([f'collect-dist-{mode}' for mode in default_modes])}
|
||||
'''))
|
||||
|
||||
f.write(textwrap.dedent(f'''\
|
||||
@@ -2955,7 +2960,28 @@ def write_build_file(f,
|
||||
rule dist-check
|
||||
command = ./tools/testing/dist-check/dist-check.sh --mode $mode
|
||||
'''))
|
||||
deb_arch = {'x86_64': 'amd64', 'aarch64': 'arm64'}[arch]
|
||||
deb_ver = f'{scylla_version}-{scylla_release}-1'
|
||||
rpm_ver = f'{scylla_version}-{scylla_release}'
|
||||
for mode in build_modes:
|
||||
server_rpms_dir = f'$builddir/dist/{mode}/redhat/RPMS/{arch}'
|
||||
server_rpms = [f'{server_rpms_dir}/{scylla_product}{suffix}-{rpm_ver}.{arch}.rpm'
|
||||
for suffix in ['', '-server', '-server-debuginfo', '-conf', '-kernel-conf', '-node-exporter']]
|
||||
cqlsh_rpms = [f'tools/cqlsh/build/redhat/RPMS/{arch}/{scylla_product}-cqlsh-{rpm_ver}.{arch}.rpm']
|
||||
python3_rpms = [f'tools/python3/build/redhat/RPMS/{arch}/{scylla_product}-python3-{rpm_ver}.{arch}.rpm']
|
||||
all_rpms = server_rpms + cqlsh_rpms + python3_rpms
|
||||
|
||||
server_deb_dir = f'$builddir/dist/{mode}/debian'
|
||||
server_debs = [f'{server_deb_dir}/{scylla_product}{suffix}_{deb_ver}_{deb_arch}.deb'
|
||||
for suffix in ['', '-server', '-server-dbg', '-conf', '-kernel-conf', '-node-exporter']]
|
||||
server_debs += [f'{server_deb_dir}/scylla-enterprise{suffix}_{deb_ver}_all.deb'
|
||||
for suffix in ['', '-server', '-conf', '-kernel-conf', '-node-exporter']]
|
||||
cqlsh_debs = [f'tools/cqlsh/build/debian/{scylla_product}-cqlsh_{deb_ver}_{deb_arch}.deb',
|
||||
f'tools/cqlsh/build/debian/scylla-enterprise-cqlsh_{deb_ver}_all.deb']
|
||||
python3_debs = [f'tools/python3/build/debian/{scylla_product}-python3_{deb_ver}_{deb_arch}.deb',
|
||||
f'tools/python3/build/debian/scylla-enterprise-python3_{deb_ver}_all.deb']
|
||||
all_debs = server_debs + cqlsh_debs + python3_debs
|
||||
|
||||
f.write(textwrap.dedent(f'''\
|
||||
build $builddir/{mode}/dist/tar/{scylla_product}-python3-{scylla_version}-{scylla_release}.{arch}.tar.gz: copy tools/python3/build/{scylla_product}-python3-{scylla_version}-{scylla_release}.{arch}.tar.gz
|
||||
build $builddir/{mode}/dist/tar/{scylla_product}-python3-package.tar.gz: copy tools/python3/build/{scylla_product}-python3-{scylla_version}-{scylla_release}.{arch}.tar.gz
|
||||
@@ -2963,6 +2989,11 @@ def write_build_file(f,
|
||||
build $builddir/{mode}/dist/tar/{scylla_product}-cqlsh-{scylla_version}-{scylla_release}.{arch}.tar.gz: copy tools/cqlsh/build/{scylla_product}-cqlsh-{scylla_version}-{scylla_release}.{arch}.tar.gz
|
||||
build $builddir/{mode}/dist/tar/{scylla_product}-cqlsh-package.tar.gz: copy tools/cqlsh/build/{scylla_product}-cqlsh-{scylla_version}-{scylla_release}.{arch}.tar.gz
|
||||
|
||||
build $builddir/{mode}/dist/rpm: collect_pkgs | {' '.join(all_rpms)} $builddir/dist/{mode}/redhat dist-cqlsh-rpm dist-python3-rpm
|
||||
pkgs = {' '.join(all_rpms)}
|
||||
build $builddir/{mode}/dist/deb: collect_pkgs | {' '.join(all_debs)} $builddir/dist/{mode}/debian dist-cqlsh-deb dist-python3-deb
|
||||
pkgs = {' '.join(all_debs)}
|
||||
build collect-dist-{mode}: phony $builddir/{mode}/dist/rpm $builddir/{mode}/dist/deb
|
||||
build {mode}-dist: phony dist-server-{mode} dist-server-debuginfo-{mode} dist-python3-{mode} dist-unified-{mode} dist-cqlsh-{mode}
|
||||
build dist-{mode}: phony {mode}-dist
|
||||
build dist-check-{mode}: dist-check
|
||||
|
||||
68
dist/CMakeLists.txt
vendored
68
dist/CMakeLists.txt
vendored
@@ -141,4 +141,72 @@ add_dependencies(dist
|
||||
dist-python3
|
||||
dist-server)
|
||||
|
||||
set(dist_rpm_dir "${CMAKE_BINARY_DIR}/$<CONFIG>/dist/rpm")
|
||||
set(dist_deb_dir "${CMAKE_BINARY_DIR}/$<CONFIG>/dist/deb")
|
||||
|
||||
# Map system processor to Debian architecture names
|
||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
||||
set(deb_arch "amd64")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
||||
set(deb_arch "arm64")
|
||||
else()
|
||||
message(FATAL_ERROR "Unsupported architecture: ${CMAKE_SYSTEM_PROCESSOR}")
|
||||
endif()
|
||||
|
||||
set(rpm_ver "${Scylla_VERSION}-${Scylla_RELEASE}")
|
||||
set(deb_ver "${Scylla_VERSION}-${Scylla_RELEASE}-1")
|
||||
set(rpm_arch "${CMAKE_SYSTEM_PROCESSOR}")
|
||||
|
||||
set(server_rpms_dir "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/redhat/RPMS/${rpm_arch}")
|
||||
set(server_rpms
|
||||
"${server_rpms_dir}/${Scylla_PRODUCT}-${rpm_ver}.${rpm_arch}.rpm"
|
||||
"${server_rpms_dir}/${Scylla_PRODUCT}-server-${rpm_ver}.${rpm_arch}.rpm"
|
||||
"${server_rpms_dir}/${Scylla_PRODUCT}-server-debuginfo-${rpm_ver}.${rpm_arch}.rpm"
|
||||
"${server_rpms_dir}/${Scylla_PRODUCT}-conf-${rpm_ver}.${rpm_arch}.rpm"
|
||||
"${server_rpms_dir}/${Scylla_PRODUCT}-kernel-conf-${rpm_ver}.${rpm_arch}.rpm"
|
||||
"${server_rpms_dir}/${Scylla_PRODUCT}-node-exporter-${rpm_ver}.${rpm_arch}.rpm")
|
||||
set(cqlsh_rpms
|
||||
"${CMAKE_SOURCE_DIR}/tools/cqlsh/build/redhat/RPMS/${rpm_arch}/${Scylla_PRODUCT}-cqlsh-${rpm_ver}.${rpm_arch}.rpm")
|
||||
set(python3_rpms
|
||||
"${CMAKE_SOURCE_DIR}/tools/python3/build/redhat/RPMS/${rpm_arch}/${Scylla_PRODUCT}-python3-${rpm_ver}.${rpm_arch}.rpm")
|
||||
|
||||
set(server_debs_dir "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/debian")
|
||||
set(server_debs
|
||||
"${server_debs_dir}/${Scylla_PRODUCT}_${deb_ver}_${deb_arch}.deb"
|
||||
"${server_debs_dir}/${Scylla_PRODUCT}-server_${deb_ver}_${deb_arch}.deb"
|
||||
"${server_debs_dir}/${Scylla_PRODUCT}-server-dbg_${deb_ver}_${deb_arch}.deb"
|
||||
"${server_debs_dir}/${Scylla_PRODUCT}-conf_${deb_ver}_${deb_arch}.deb"
|
||||
"${server_debs_dir}/${Scylla_PRODUCT}-kernel-conf_${deb_ver}_${deb_arch}.deb"
|
||||
"${server_debs_dir}/${Scylla_PRODUCT}-node-exporter_${deb_ver}_${deb_arch}.deb"
|
||||
"${server_debs_dir}/scylla-enterprise_${deb_ver}_all.deb"
|
||||
"${server_debs_dir}/scylla-enterprise-server_${deb_ver}_all.deb"
|
||||
"${server_debs_dir}/scylla-enterprise-conf_${deb_ver}_all.deb"
|
||||
"${server_debs_dir}/scylla-enterprise-kernel-conf_${deb_ver}_all.deb"
|
||||
"${server_debs_dir}/scylla-enterprise-node-exporter_${deb_ver}_all.deb")
|
||||
set(cqlsh_debs
|
||||
"${CMAKE_SOURCE_DIR}/tools/cqlsh/build/debian/${Scylla_PRODUCT}-cqlsh_${deb_ver}_${deb_arch}.deb"
|
||||
"${CMAKE_SOURCE_DIR}/tools/cqlsh/build/debian/scylla-enterprise-cqlsh_${deb_ver}_all.deb")
|
||||
set(python3_debs
|
||||
"${CMAKE_SOURCE_DIR}/tools/python3/build/debian/${Scylla_PRODUCT}-python3_${deb_ver}_${deb_arch}.deb"
|
||||
"${CMAKE_SOURCE_DIR}/tools/python3/build/debian/scylla-enterprise-python3_${deb_ver}_all.deb")
|
||||
|
||||
add_custom_target(collect-dist-rpm
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -rf ${dist_rpm_dir}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${dist_rpm_dir}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${server_rpms} ${cqlsh_rpms} ${python3_rpms} ${dist_rpm_dir}/
|
||||
DEPENDS dist
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
COMMENT "Collecting RPMs into ${dist_rpm_dir}")
|
||||
|
||||
add_custom_target(collect-dist-deb
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -rf ${dist_deb_dir}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${dist_deb_dir}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${server_debs} ${cqlsh_debs} ${python3_debs} ${dist_deb_dir}/
|
||||
DEPENDS dist
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
COMMENT "Collecting DEBs into ${dist_deb_dir}")
|
||||
|
||||
add_custom_target(collect-dist
|
||||
DEPENDS collect-dist-rpm collect-dist-deb)
|
||||
|
||||
add_subdirectory(debuginfo)
|
||||
|
||||
Reference in New Issue
Block a user