-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
63 lines (47 loc) · 1.68 KB
/
Makefile
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
.SILENT:
DOCKER_USER = 41772ki
IMAGE_NAME = swift-mint
LATEST_SWIFT_VERSION = 6.0
build: $(addprefix build-, $(LATEST_SWIFT_VERSION))
build-npm: $(addprefix build-npm-, $(LATEST_SWIFT_VERSION))
build-npm-%:
cat .github/matrix.json \
| jq -r '.mint_revision["${@:build-npm-%=%}"]' \
| xargs -I {} docker build \
--build-arg SWIFT_VERSION=${@:build-npm-%=%} \
--build-arg MINT_REVISION={} \
--target npm \
-t $(DOCKER_USER)/$(IMAGE_NAME):${@:build-npm-%=%}-npm \
.
build-%:
cat .github/matrix.json \
| jq -r '.mint_revision["${@:build-%=%}"]' \
| xargs -I {} docker build \
--build-arg SWIFT_VERSION=${@:build-%=%} \
--build-arg MINT_REVISION={} \
--target base \
-t $(DOCKER_USER)/$(IMAGE_NAME):${@:build-%=%} \
.
swift-version: $(addprefix swift-version-, $(LATEST_SWIFT_VERSION))
swift-version-%: build-%
docker run --rm $(DOCKER_USER)/$(IMAGE_NAME):${@:swift-version-%=%} swift --version
mint-version: $(addprefix mint-version-, $(LATEST_SWIFT_VERSION))
mint-version-%: build-%
docker run --rm $(DOCKER_USER)/$(IMAGE_NAME):${@:mint-version-%=%} mint version
run: $(addprefix run-, $(LATEST_SWIFT_VERSION))
run-%: build-%
docker run --rm -it $(DOCKER_USER)/$(IMAGE_NAME):${@:run-%=%}
clean: $(addprefix clean-, $(LATEST_SWIFT_VERSION))
clean-%:
docker rmi $(DOCKER_USER)/$(IMAGE_NAME):${@:clean-%=%}
buildx:
docker buildx build \
--push \
--platform linux/arm64,linux/amd64 \
--tag $(DOCKER_USER)/$(IMAGE_NAME):latest \
--tag $(DOCKER_USER)/$(IMAGE_NAME):$(LATEST_SWIFT_VERSION) \
.
arm64:
@scripts/build_and_push_arm64_image.sh $(DOCKER_USER) $(IMAGE_NAME)
arm64-%:
@scripts/build_and_push_arm64_image.sh -s ${@:clean-%=%} -f $(DOCKER_USER) $(IMAGE_NAME)