MikroTik Solutions

Hex Artifact Content
Login

Hex Artifact Content

Artifact 3dc582496d9e7a159cee3e9e1c56a0744223aadacdac7d886d3de14c6af71e09:


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).