blob: ee080a3e461271e24cbad8d9dca41affb13191e7 [file] [log] [blame]
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +04001repo_name ?= giolekva
2podman ?= docker
gio2446de02025-04-11 11:20:39 +04003docker_flags=--provenance=false --sbom=false
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +04004ifeq ($(podman), podman)
5manifest_dest=docker://docker.io/$(repo_name)/headscale-api:latest
6endif
7
Giorgi Lekveishvili52814d92023-06-15 19:30:32 +04008clean:
9 rm -f server_*
10
11build_arm64: export CGO_ENABLED=0
12build_arm64: export GO111MODULE=on
13build_arm64: export GOOS=linux
14build_arm64: export GOARCH=arm64
15build_arm64:
16 go build -o server_arm64 *.go
17
18build_amd64: export CGO_ENABLED=0
19build_amd64: export GO111MODULE=on
20build_amd64: export GOOS=linux
21build_amd64: export GOARCH=amd64
22build_amd64:
23 go build -o server_amd64 *.go
24
Giorgi Lekveishvilia1e77902023-11-06 14:48:27 +040025push_arm64: clean build_arm64
gio2446de02025-04-11 11:20:39 +040026 $(podman) build --platform linux/arm64 --tag=$(repo_name)/headscale-api:arm64 $(docker_flags) .
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +040027 $(podman) push $(repo_name)/headscale-api:arm64
Giorgi Lekveishvilia1e77902023-11-06 14:48:27 +040028
29push_amd64: clean build_amd64
gio2446de02025-04-11 11:20:39 +040030 $(podman) build --platform linux/amd64 --tag=$(repo_name)/headscale-api:amd64 $(docker_flags) .
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +040031 $(podman) push $(repo_name)/headscale-api:amd64
Giorgi Lekveishvilia1e77902023-11-06 14:48:27 +040032
33
34push: push_arm64 push_amd64
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +040035 $(podman) manifest create $(repo_name)/headscale-api:latest $(repo_name)/headscale-api:arm64 $(repo_name)/headscale-api:amd64
gio2446de02025-04-11 11:20:39 +040036 $(podman) manifest push --purge $(repo_name)/headscale-api:latest $(manifest_dest)