1+ # Disable all the default make stuff
2+ MAKEFLAGS += --no-builtin-rules
3+ .SUFFIXES :
4+
5+ # # Display a list of the documented make targets
6+ .PHONY : help
7+ help :
8+ @echo Documented Make targets:
9+ @perl -e ' undef $$/; while (<>) { while ($$_ =~ /## (.*?)(?:\n# .*)*\n.PHONY:\s+(\S+).*/mg) { printf "\033[36m%-30s\033[0m %s\n", $$2, $$1 } }' $(MAKEFILE_LIST ) | sort
10+
11+ .PHONY : .FORCE
12+ .FORCE :
13+
14+ .score-compose/state.yaml :
15+ score-compose init \
16+ --no-sample \
17+ --provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/service/score-compose/10-service.provisioners.yaml
18+
19+ compose.yaml : order/score.yaml product/score.yaml store-front/score.yaml store-admin/score.yaml makeline/score.yaml .score-compose/state.yaml Makefile
20+ score-compose generate \
21+ order/score.yaml \
22+ product/score.yaml \
23+ store-front/score.yaml \
24+ store-admin/score.yaml \
25+ makeline/score.yaml
26+
27+ # # Generate a compose.yaml file from the score specs and launch it.
28+ .PHONY : compose-up
29+ compose-up : compose.yaml
30+ docker compose up --build -d --remove-orphans
31+ sleep 5
32+
33+ # # Generate a compose.yaml file from the score spec, launch it and test (curl) the exposed container.
34+ .PHONY : compose-test
35+ compose-test : compose-up
36+ curl $$(score-compose resources get-outputs 'dns.default#store-front.dns' --format '{{ .host }}:8080' )
37+
38+ # # Delete the containers running via compose down.
39+ .PHONY : compose-down
40+ compose-down :
41+ docker compose down -v --remove-orphans || true
42+
43+ .score-k8s/state.yaml :
44+ score-k8s init \
45+ --no-sample \
46+ --provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/service/score-k8s/10-service.provisioners.yaml
47+
48+ manifests.yaml : makeline/score.yaml order/score.yaml product/score.yaml store-admin/score.yaml store-front/score.yaml .score-k8s/state.yaml Makefile
49+ score-k8s generate \
50+ makeline/score.yaml \
51+ order/score.yaml \
52+ product/score.yaml \
53+ store-admin/score.yaml \
54+ store-front/score.yaml
55+
56+ # # Create a local Kind cluster.
57+ .PHONY : kind-create-cluster
58+ kind-create-cluster :
59+ ./scripts/setup-kind-cluster.sh
60+
61+ NAMESPACE ?= default
62+ # # Generate a manifests.yaml file from the score spec and apply it in Kubernetes.
63+ .PHONY : k8s-up
64+ k8s-up : manifests.yaml
65+ kubectl apply \
66+ -f manifests.yaml \
67+ -n ${NAMESPACE}
68+ kubectl wait deployments/store-front \
69+ -n ${NAMESPACE} \
70+ --for condition=Available \
71+ --timeout=90s
72+ kubectl wait pods \
73+ -n ${NAMESPACE} \
74+ -l app.kubernetes.io/name=store-front \
75+ --for condition=Ready \
76+ --timeout=90s
77+ sleep 5
78+ kubectl get pods -n ${NAMESPACE}
79+
80+ # # Expose the container deployed in Kubernetes via port-forward.
81+ .PHONY : k8s-test
82+ k8s-test : k8s-up
83+ curl $$(score-k8s resources get-outputs dns.default#store-front.dns --format '{{ .host }}' )
84+
85+ # # Delete the deployment of the local container in Kubernetes.
86+ .PHONY : k8s-down
87+ k8s-down :
88+ kubectl delete \
89+ -f manifests.yaml \
90+ -n ${NAMESPACE}
91+ sleep 5
0 commit comments