summaryrefslogtreecommitdiff
path: root/scripts/release/mule/Makefile.mule
blob: 627e7fe21553ca0e5332da171330b3b4b71924e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# This file is imported into go-algorand/Makefile.

PKG_DIR = $(SRCPATH)/tmp/node_pkgs/$(OS_TYPE)/$(ARCH)

.PHONY: ci-clean ci-setup ci-build

ci-clean:
	rm -rf tmp

ci-setup:
	mkdir -p $(PKG_DIR)

ci-test:
ifeq ($(ARCH), amd64)
	RACE=-race
else
	RACE=
endif
	for PACKAGE_DIRECTORY in $(UNIT_TEST_SOURCES) ; do \
		go test $(GOTAGS) -timeout 2000s $(RACE) $$PACKAGE_DIRECTORY; \
	done

ci-integration:
	NODEBINDIR=/bin \
	PATH=$(PKG_DIR)/bin:$$PATH \
	PATH=$(PKG_DIR)/tools:$$PATH \
	PATH=$(PKG_DIR)/test-utils:$$PATH \
	SRCROOT=$(SRCPATH) \
	test/scripts/e2e.sh -c $(CHANNEL) -n

ci-build: buildsrc gen ci-setup
	CHANNEL=$(CHANNEL) PKG_ROOT=$(PKG_DIR) NO_BUILD=True VARIATIONS=$(OS_TYPE)-$(ARCH) \
	scripts/build_packages.sh $(OS_TYPE)/$(ARCH) && \
	mkdir -p $(PKG_DIR)/data && \
	cp installer/genesis/devnet/genesis.json $(PKG_DIR)/data

# Builds targets from the sub-directories of ./scripts/release/mule/, such as `mule-package`, `mule-sign`, `mule-test`.
# https://scene-si.org/2019/12/04/make-dynamic-makefile-targets/
mule = $(shell ls -d scripts/release/mule/*/ | awk 'BEGIN { FS="/" ; OFS="-" } { print $$3, $$4 }')

mule-deploy-%: PKG_TYPE=$*
mule-deploy-%:
	scripts/release/mule/deploy/$(PKG_TYPE)/deploy.sh

mule-docker:
	scripts/release/mule/deploy/docker/docker.sh

mule-package-%: PKG_TYPE=$*
mule-package-%:
	echo Building algorand package $(PKG_TYPE)...
	scripts/release/mule/package/$(PKG_TYPE)/package.sh algorand
	echo Building algorand-devtools package $(PKG_TYPE)...
	scripts/release/mule/package/$(PKG_TYPE)/package.sh algorand-devtools

mule-releases-page:
	echo Generating the releases page...
	scripts/release/mule/deploy/releases_page/generate_releases_page.sh

mule-sign:
	scripts/release/mule/sign/sign.sh

mule-test-%: PKG_TYPE=$*
mule-test-%:
	scripts/release/mule/test/test.sh $(PKG_TYPE)