Skip to content

Commit

Permalink
Adding a "build-dist" target to the Makefile
Browse files Browse the repository at this point in the history
This target is identical to the existing "source-dist" target, except that it allows for packaging and testing of the source archive. This is done by including the packaging/ and tests/ directories in the output tarball, along with specific subdirectories that are required by tests.

Signed-off-by: Kartik Ganesh <gkart@amazon.com>
(cherry picked from commit aa9e0a5)
  • Loading branch information
kartg authored and mergify[bot] committed Feb 22, 2025
1 parent 1ad06e2 commit ec45d93
Showing 1 changed file with 28 additions and 6 deletions.
34 changes: 28 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ endef
# --------------------------------------------------------------------

.PHONY: source-dist clean-source-dist
.PHONY: build-dist clean-build-dist

SOURCE_DIST_BASE ?= rabbitmq-server
SOURCE_DIST_SUFFIXES ?= tar.xz
Expand All @@ -149,6 +150,13 @@ SOURCE_DIST_FILES = $(addprefix $(SOURCE_DIST).,$(SOURCE_DIST_SUFFIXES))

.PHONY: $(SOURCE_DIST_FILES)

# Override rsync flags as a pre-requisite
build-dist: RSYNC_FLAGS = $(BUILD_DIST_RSYNC_FLAGS)
build-dist: $(SOURCE_DIST_FILES)
@:

# Override rsync flags as a pre-requisite
source-dist: RSYNC_FLAGS = $(SOURCE_DIST_RSYNC_FLAGS)
source-dist: $(SOURCE_DIST_FILES)
@:

Expand All @@ -157,7 +165,9 @@ RSYNC_V_0 =
RSYNC_V_1 = -v
RSYNC_V_2 = -v
RSYNC_V = $(RSYNC_V_$(V))
RSYNC_FLAGS += -a $(RSYNC_V) \
BASE_RSYNC_FLAGS += -a $(RSYNC_V) \
--delete \
--delete-excluded \
--exclude '.sw?' --exclude '.*.sw?' \
--exclude '*.beam' \
--exclude '*.d' \
Expand Down Expand Up @@ -188,12 +198,10 @@ RSYNC_FLAGS += -a $(RSYNC_V) \
--exclude '$(notdir $(DEPS_DIR))/' \
--exclude 'hexer*' \
--exclude 'logs/' \
--exclude 'packaging' \
--exclude 'PKG_*.md' \
--exclude '/plugins/' \
--include 'cli/plugins' \
--exclude '$(notdir $(DIST_DIR))/' \
--exclude 'test' \
--exclude '/$(notdir $(PACKAGES_DIR))/' \
--exclude '/PACKAGES/' \
--exclude '/amqp_client/doc/' \
Expand All @@ -208,9 +216,21 @@ RSYNC_FLAGS += -a $(RSYNC_V) \
--exclude '/ranch/doc/' \
--exclude '/ranch/examples/' \
--exclude '/sockjs/examples/' \
--exclude '/workflow_sources/' \
--delete \
--delete-excluded
--exclude '/workflow_sources/'

SOURCE_DIST_RSYNC_FLAGS += $(BASE_RSYNC_FLAGS) \
--exclude 'packaging' \
--exclude 'test'

# For build-dist, explicitly include folders that are needed
# for tests to execute. These are added before excludes from
# the base flags so rsync honors the first match.
BUILD_DIST_RSYNC_FLAGS += \
--include 'rabbit_shovel_test/ebin' \
--include 'rabbit_shovel_test/ebin/*' \
--include 'rabbitmq_ct_helpers/tools' \
--include 'rabbitmq_ct_helpers/tools/*' \
$(BASE_RSYNC_FLAGS)

TAR ?= tar
TAR_V_0 =
Expand Down Expand Up @@ -375,6 +395,8 @@ $(SOURCE_DIST).zip: $(SOURCE_DIST).manifest

clean:: clean-source-dist

clean-build-dist:: clean-source-dist

clean-source-dist:
$(gen_verbose) rm -rf -- $(SOURCE_DIST_BASE)-*

Expand Down

0 comments on commit ec45d93

Please sign in to comment.