-
Notifications
You must be signed in to change notification settings - Fork 242
Expand file tree
/
Copy pathMakefile
More file actions
105 lines (83 loc) · 3.63 KB
/
Copy pathMakefile
File metadata and controls
105 lines (83 loc) · 3.63 KB
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
x86_64_ALIAS := amd64
aarch64_ALIAS := arm64
ARCHITECTURE := $(shell arch)
ARCHITECTURE_ALIAS := $($(shell echo "$(ARCHITECTURE)_ALIAS"))
ARCHITECTURE_ALIAS := $(or $(ARCHITECTURE_ALIAS),amd64) # on any other archs defaulting to amd64
# Java 8 does not support passing some args (such add --add-opens) so we need to clear them
ifeq ($(IS_JAVA_8),true)
EXTRA_LOAD_ARG := -DargLineForReflectionTestOnly=""
else
EXTRA_LOAD_ARG :=
endif
# This optional module exports MAVEN_REPO_URL, MAVEN_REPO_USERNAME and MAVEN_REPO_PASSWORD environment variables
# making it possible to publish resulting artifacts to a codeartifact maven repository
-include ric-dev-environment/codeartifact-repo.mk
.PHONY: target
target:
$(info ${HELP_MESSAGE})
@exit 0
.PHONY: test
test:
mvn test $(EXTRA_LOAD_ARG)
.PHONY: setup-codebuild-agent
setup-codebuild-agent:
docker build -t codebuild-agent \
--build-arg ARCHITECTURE=$(ARCHITECTURE_ALIAS) \
- < test/integration/codebuild-local/Dockerfile.agent
# Smoke tests are split per-architecture so CI can run each set on a native
# runner. Running the linux/arm64/v8 combos under QEMU on an x86_64 host makes
# `mvn install` recompile curl for aarch64 emulated, which takes ~30 minutes.
.PHONY: test-smoke
test-smoke: test-smoke-x86_64 test-smoke-aarch64
.PHONY: test-smoke-x86_64
test-smoke-x86_64: setup-codebuild-agent
CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_one.sh test/integration/codebuild/buildspec.os.alpine.yml alpine 3.15 corretto11 linux/amd64
CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_one.sh test/integration/codebuild/buildspec.os.amazoncorretto.yml amazoncorretto amazoncorretto 11 linux/amd64
.PHONY: test-smoke-aarch64
test-smoke-aarch64: setup-codebuild-agent
CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_one.sh test/integration/codebuild/buildspec.os.alpine.yml alpine 3.15 corretto11 linux/arm64/v8
CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_one.sh test/integration/codebuild/buildspec.os.amazoncorretto.yml amazoncorretto amazoncorretto 11 linux/arm64/v8
.PHONY: test-integ
test-integ: setup-codebuild-agent
CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_all.sh test/integration/codebuild
# Command to run everytime you make changes to verify everything works
.PHONY: dev
dev: test
# Verifications to run before sending a pull request
.PHONY: pr
pr: test test-smoke
# Per-architecture PR checks so CI can run each on a native runner (no QEMU).
.PHONY: pr-x86_64
pr-x86_64: test test-smoke-x86_64
.PHONY: pr-aarch64
pr-aarch64: test test-smoke-aarch64
.PHONY: build
build: build-x86_64 build-aarch64
.PHONY: build-x86_64
build-x86_64:
mvn clean install -DmultiArch=false $(EXTRA_LOAD_ARG)
mvn install -P linux-x86_64 $(EXTRA_LOAD_ARG)
mvn install -P linux_musl-x86_64 $(EXTRA_LOAD_ARG)
.PHONY: build-aarch64
build-aarch64:
mvn clean install -DmultiArch=false $(EXTRA_LOAD_ARG)
mvn install -P linux-aarch64 $(EXTRA_LOAD_ARG)
mvn install -P linux_musl-aarch64 $(EXTRA_LOAD_ARG)
.PHONY: publish
publish:
./ric-dev-environment/publish_snapshot.sh
.PHONY: publish
test-publish:
./ric-dev-environment/test-platform-specific-jar-snapshot.sh
.PHONY: test-rie
test-rie:
./scripts/test-rie.sh "EchoHandler::handleRequest"
define HELP_MESSAGE
Usage: $ make [TARGETS]
TARGETS
build Builds the package.
dev Run all development tests after a change.
pr Perform all checks before submitting a Pull Request.
test Run the Unit tests.
test-rie Build and test RIC locally with Lambda Runtime Interface Emulator. (Requires building the project first)
endef