This repository was archived by the owner on Jun 23, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathMakefile
More file actions
103 lines (77 loc) · 3.66 KB
/
Makefile
File metadata and controls
103 lines (77 loc) · 3.66 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
# ====================================================================================
# Setup Project
PROJECT_NAME := test
PROJECT_REPO := github.com/crossplane/$(PROJECT_NAME)
PLATFORMS ?= linux_amd64 linux_arm64
# -include will silently skip missing files, which allows us
# to load those files with a target in the Makefile. If only
# "include" was used, the make command would fail and refuse
# to run a target until the include commands succeeded.
-include build/makelib/common.mk
# Set a sane default so that the nprocs calculation below is less noisy on the initial
# loading of this file
NPROCS ?= 1
# ====================================================================================
# Setup Kubernetes tools
UP_VERSION = v0.12.2
UP_CHANNEL = stable
-include build/makelib/k8s_tools.mk
# ====================================================================================
# Setup XPKG
XPKG_REGISTRY ?= us-west1-docker.pkg.dev
XPKG_ORG ?= crossplane-playground/xp-install-test
XPKG_REPO ?= configuration
XPKG_TAG ?= $(VERSION)
# ====================================================================================
# Targets
# run `make help` to see the targets and options
# We want submodules to be set up the first time `make` is run.
# We manage the build/ folder and its Makefiles as a submodule.
# The first time `make` is run, the includes of build/*.mk files will
# all fail, and this target will be run. The next time, the default as defined
# by the includes will be run instead.
fallthrough: submodules
@echo Initial setup complete. Running make again . . .
@make
# Update the submodules, such as the common build scripts.
submodules:
@git submodule sync
@git submodule update --init --recursive
# NOTE(hasheddan): the build submodule currently overrides XDG_CACHE_HOME in
# order to force the Helm 3 to use the .work/helm directory. This causes Go on
# Linux machines to use that directory as the build cache as well. We should
# adjust this behavior in the build submodule because it is also causing Linux
# users to duplicate their build cache, but for now we just make it easier to
# identify its location in CI so that we cache between builds.
go.cachedir:
@go env GOCACHE
# NOTE(hasheddan): we ensure up is installed prior to running platform-specific
# build steps in parallel to avoid encountering an installation race condition.
build.init: $(UP)
# TODO(hasheddan): make xpkg machinery generic.
xpkg.build: $(UP)
@$(INFO) Building package xp-install-test-configuration-$(VERSION).xpkg for $(PLATFORM)
@mkdir -p $(OUTPUT_DIR)/xpkg/$(PLATFORM)
@$(UP) xpkg build \
--package-root ./packages/xp-install-test/configuration \
--output ./_output/xpkg/$(PLATFORM)/xp-install-test-configuration-$(VERSION).xpkg || $(FAIL)
@$(OK) Built package xp-install-test-configuration-$(VERSION).xpkg for $(PLATFORM)
xpkg.push: $(UP)
@$(INFO) Pushing package xp-install-test-configuration-$(VERSION).xpkg
@$(UP) xpkg push \
--package $(OUTPUT_DIR)/xpkg/linux_amd64/xp-install-test-configuration-$(VERSION).xpkg \
$(XPKG_REGISTRY)/$(XPKG_ORG)/$(XPKG_REPO):$(XPKG_TAG) || $(FAIL)
@$(OK) Pushed package xp-install-test-configuration-$(VERSION).xpkg to $(XPKG_REGISTRY)/$(XPKG_ORG)/$(XPKG_REPO):$(XPKG_TAG)
build.artifacts.platform: xpkg.build
.PHONY: submodules fallthrough
# ====================================================================================
# Special Targets
define CROSSPLANE_TEST_MAKE_HELP
Crossplane Test Targets:
submodules Update the submodules, such as the common build scripts.
endef
export CROSSPLANE_TEST_MAKE_HELP
crossplane.test.help:
@echo "$$CROSSPLANE_TEST_MAKE_HELP"
help-special: crossplane.test.help
.PHONY: crossplane.test.help help-special