Artifact
3dc582496d9e7a159cee3e9e1c56a0744223aadacdac7d886d3de14c6af71e09 :
File
speedtest-cli/Makefile
— part of check-in
[698a49b9b6]
at
2023-12-14 02:25:01
on branch trunk
— Moved definition of URIBASE from the Dockerfile into the Makefile,
simplifying things slightly by putting all uses of VERSION in the
Makefile alone.
(user:
tangent
size: 1583)
0000: 23 20 43 6f 6e 74 61 69 6e 65 72 20 62 61 73 65 # Container base
0010: 20 6e 61 6d 65 0a 4e 41 4d 45 20 3a 3d 20 73 70 name.NAME := sp
0020: 65 65 64 74 65 73 74 2d 63 6c 69 0a 54 41 52 42 eedtest-cli.TARB
0030: 41 4c 4c 20 3a 3d 20 24 28 4e 41 4d 45 29 2e 74 ALL := $(NAME).t
0040: 61 72 0a 0a 23 20 55 70 73 74 72 65 61 6d 20 76 ar..# Upstream v
0050: 65 72 73 69 6f 6e 20 74 6f 20 62 61 73 65 20 74 ersion to base t
0060: 68 69 73 20 69 6d 61 67 65 20 6f 6e 2e 20 20 46 his image on. F
0070: 69 6e 64 20 6e 65 77 20 76 65 72 73 69 6f 6e 73 ind new versions
0080: 20 68 65 72 65 3a 0a 23 20 68 74 74 70 73 3a 2f here:.# https:/
0090: 2f 77 77 77 2e 73 70 65 65 64 74 65 73 74 2e 6e /www.speedtest.n
00a0: 65 74 2f 61 70 70 73 2f 63 6c 69 0a 56 45 52 53 et/apps/cli.VERS
00b0: 49 4f 4e 20 3a 3d 20 31 2e 32 2e 30 0a 55 52 49 ION := 1.2.0.URI
00c0: 42 41 53 45 20 3a 3d 20 68 74 74 70 73 3a 2f 2f BASE := https://
00d0: 69 6e 73 74 61 6c 6c 2e 73 70 65 65 64 74 65 73 install.speedtes
00e0: 74 2e 6e 65 74 2f 61 70 70 2f 63 6c 69 2f 6f 6f t.net/app/cli/oo
00f0: 6b 6c 61 2d 73 70 65 65 64 74 65 73 74 2d 24 28 kla-speedtest-$(
0100: 56 45 52 53 49 4f 4e 29 2d 6c 69 6e 75 78 0a 0a VERSION)-linux..
0110: 23 20 49 6d 61 67 65 20 72 65 70 6f 20 70 72 65 # Image repo pre
0120: 66 69 78 20 74 6f 20 75 73 65 20 66 6f 72 20 22 fix to use for "
0130: 70 75 73 68 22 0a 49 4d 47 52 45 50 4f 20 3a 3d push".IMGREPO :=
0140: 20 74 61 6e 67 65 6e 74 73 6f 66 74 0a 0a 23 20 tangentsoft..#
0150: 56 65 72 73 69 6f 6e 65 64 20 6e 61 6d 65 73 20 Versioned names
0160: 74 6f 20 73 68 6f 72 74 65 6e 20 63 6f 6d 6d 61 to shorten comma
0170: 6e 64 73 20 62 65 6c 6f 77 0a 56 44 4e 41 4d 45 nds below.VDNAME
0180: 20 20 3a 3d 20 24 28 4e 41 4d 45 29 2d 24 28 56 := $(NAME)-$(V
0190: 45 52 53 49 4f 4e 29 0a 4c 56 49 4e 41 4d 45 20 ERSION).LVINAME
01a0: 3a 3d 20 24 28 4e 41 4d 45 29 3a 24 28 56 45 52 := $(NAME):$(VER
01b0: 53 49 4f 4e 29 0a 52 56 49 4e 41 4d 45 20 3a 3d SION).RVINAME :=
01c0: 20 24 28 49 4d 47 52 45 50 4f 29 2f 24 28 4c 56 $(IMGREPO)/$(LV
01d0: 49 4e 41 4d 45 29 0a 52 4e 49 4e 41 4d 45 20 3a INAME).RNINAME :
01e0: 3d 20 24 28 49 4d 47 52 45 50 4f 29 2f 24 28 4e = $(IMGREPO)/$(N
01f0: 41 4d 45 29 3a 6c 61 74 65 73 74 0a 4d 41 43 48 AME):latest.MACH
0200: 49 4e 45 20 3a 3d 20 24 28 73 68 65 6c 6c 20 75 INE := $(shell u
0210: 6e 61 6d 65 20 2d 6d 29 0a 0a 23 20 43 6f 6e 74 name -m)..# Cont
0220: 61 69 6e 65 72 20 65 6e 67 69 6e 65 20 74 6f 20 ainer engine to
0230: 75 73 65 3b 20 22 70 6f 64 6d 61 6e 22 20 61 6c use; "podman" al
0240: 73 6f 20 77 6f 72 6b 73 20 68 65 72 65 2e 0a 43 so works here..C
0250: 45 4e 47 49 4e 45 20 3a 3d 20 64 6f 63 6b 65 72 ENGINE := docker
0260: 0a 0a 23 20 54 68 65 20 6c 69 73 74 20 6f 66 20 ..# The list of
0270: 70 6c 61 74 66 6f 72 6d 73 20 77 65 20 62 75 69 platforms we bui
0280: 6c 64 20 74 68 65 20 63 6f 6e 74 61 69 6e 65 72 ld the container
0290: 20 66 6f 72 2e 20 20 49 74 20 73 68 6f 75 6c 64 for. It should
02a0: 20 63 6f 76 65 72 20 39 39 25 0a 23 20 6f 66 20 cover 99%.# of
02b0: 61 6c 6c 20 70 72 61 63 74 69 63 61 6c 20 75 73 all practical us
02c0: 65 20 63 61 73 65 73 2e 20 20 53 65 65 20 61 72 e cases. See ar
02d0: 63 68 6d 61 70 20 66 6f 72 20 74 68 65 20 74 72 chmap for the tr
02e0: 61 6e 73 6c 61 74 69 6f 6e 20 74 6f 20 74 68 65 anslation to the
02f0: 0a 23 20 70 6c 61 74 66 6f 72 6d 20 6e 61 6d 65 .# platform name
0300: 73 20 4f 6f 6b 6c 61 20 75 73 65 73 20 69 6e 20 s Ookla uses in
0310: 74 68 65 69 72 20 74 61 72 62 61 6c 6c 73 2e 0a their tarballs..
0320: 50 4c 41 54 46 4f 52 4d 53 20 3a 3d 20 6c 69 6e PLATFORMS := lin
0330: 75 78 2f 78 38 36 5f 36 34 2c 6c 69 6e 75 78 2f ux/x86_64,linux/
0340: 69 33 38 36 2c 6c 69 6e 75 78 2f 61 72 6d 2f 76 i386,linux/arm/v
0350: 37 2c 6c 69 6e 75 78 2f 61 72 6d 36 34 0a 0a 23 7,linux/arm64..#
0360: 20 43 72 65 61 74 65 20 4f 43 49 20 69 6d 61 67 Create OCI imag
0370: 65 20 69 6e 20 62 75 69 6c 64 20 63 61 63 68 65 e in build cache
0380: 0a 24 28 54 41 52 42 41 4c 4c 29 3a 20 44 6f 63 .$(TARBALL): Doc
0390: 6b 65 72 66 69 6c 65 20 4d 61 6b 65 66 69 6c 65 kerfile Makefile
03a0: 0a 09 24 28 43 45 4e 47 49 4e 45 29 20 62 75 69 ..$(CENGINE) bui
03b0: 6c 64 20 5c 0a 09 09 2d 2d 62 75 69 6c 64 2d 61 ld \...--build-a
03c0: 72 67 20 55 52 49 42 41 53 45 3d 24 28 55 52 49 rg URIBASE=$(URI
03d0: 42 41 53 45 29 20 5c 0a 09 09 2d 2d 70 6c 61 74 BASE) \...--plat
03e0: 66 6f 72 6d 20 24 28 50 4c 41 54 46 4f 52 4d 53 form $(PLATFORMS
03f0: 29 20 5c 0a 09 09 2d 2d 74 61 67 20 24 28 4e 41 ) \...--tag $(NA
0400: 4d 45 29 3a 6c 61 74 65 73 74 20 5c 0a 09 09 2d ME):latest \...-
0410: 2d 74 61 67 20 24 28 4c 56 49 4e 41 4d 45 29 20 -tag $(LVINAME)
0420: 5c 0a 09 09 2d 2d 74 61 67 20 24 28 52 4e 49 4e \...--tag $(RNIN
0430: 41 4d 45 29 20 5c 0a 09 09 2d 2d 74 61 67 20 24 AME) \...--tag $
0440: 28 52 56 49 4e 41 4d 45 29 20 5c 0a 09 09 24 28 (RVINAME) \...$(
0450: 44 42 46 4c 41 47 53 29 20 2e 0a 09 24 28 43 45 DBFLAGS) ...$(CE
0460: 4e 47 49 4e 45 29 20 69 6d 61 67 65 20 73 61 76 NGINE) image sav
0470: 65 20 24 28 4c 56 49 4e 41 4d 45 29 20 3e 20 24 e $(LVINAME) > $
0480: 40 0a 0a 23 20 52 65 6d 6f 76 65 20 62 75 69 6c @..# Remove buil
0490: 64 20 6f 75 74 70 75 74 73 0a 63 6c 65 61 6e 3a d outputs.clean:
04a0: 0a 09 72 6d 20 2d 66 20 24 28 54 41 52 42 41 4c ..rm -f $(TARBAL
04b0: 4c 29 0a 09 2d 24 28 43 45 4e 47 49 4e 45 29 20 L)..-$(CENGINE)
04c0: 69 6d 61 67 65 20 72 6d 20 24 28 4c 56 49 4e 41 image rm $(LVINA
04d0: 4d 45 29 0a 09 2d 24 28 43 45 4e 47 49 4e 45 29 ME)..-$(CENGINE)
04e0: 20 69 6d 61 67 65 20 72 6d 20 24 28 4e 41 4d 45 image rm $(NAME
04f0: 29 3a 6c 61 74 65 73 74 0a 0a 6c 6f 67 69 6e 3a ):latest..login:
0500: 0a 09 24 28 43 45 4e 47 49 4e 45 29 20 6c 6f 67 ..$(CENGINE) log
0510: 69 6e 0a 0a 23 20 50 75 73 68 20 74 68 65 20 62 in..# Push the b
0520: 75 69 6c 74 20 63 6f 6e 74 61 69 6e 65 72 20 62 uilt container b
0530: 75 6e 64 6c 65 0a 70 75 73 68 3a 20 24 28 54 41 undle.push: $(TA
0540: 52 42 41 4c 4c 29 0a 09 24 28 43 45 4e 47 49 4e RBALL)..$(CENGIN
0550: 45 29 20 70 75 73 68 20 24 28 52 4e 49 4e 41 4d E) push $(RNINAM
0560: 45 29 0a 09 24 28 43 45 4e 47 49 4e 45 29 20 70 E)..$(CENGINE) p
0570: 75 73 68 20 24 28 52 56 49 4e 41 4d 45 29 0a 0a ush $(RVINAME)..
0580: 23 20 52 75 6e 20 74 68 65 20 6e 61 74 69 76 65 # Run the native
0590: 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 version of the
05a0: 62 75 69 6c 74 20 63 6f 6e 74 61 69 6e 65 72 20 built container
05b0: 6c 6f 63 61 6c 6c 79 2c 20 66 6f 72 20 74 65 73 locally, for tes
05c0: 74 69 6e 67 0a 72 75 6e 3a 20 24 28 54 41 52 42 ting.run: $(TARB
05d0: 41 4c 4c 29 0a 09 24 28 43 45 4e 47 49 4e 45 29 ALL)..$(CENGINE)
05e0: 20 72 75 6e 20 24 28 44 52 46 4c 41 47 53 29 20 run $(DRFLAGS)
05f0: 5c 0a 09 09 2d 2d 72 6d 20 5c 0a 09 09 2d 2d 74 \...--rm \...--t
0600: 74 79 20 5c 0a 09 09 2d 2d 69 6e 74 65 72 61 63 ty \...--interac
0610: 74 69 76 65 20 5c 0a 09 09 24 28 4c 56 49 4e 41 tive \...$(LVINA
0620: 4d 45 29 20 24 28 45 50 46 4c 41 47 53 29 0a ME) $(EPFLAGS).