forked from goccy/bigquery-emulator
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
65 lines (55 loc) · 2.28 KB
/
Makefile
File metadata and controls
65 lines (55 loc) · 2.28 KB
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
64
65
SHELL=/bin/bash
registry_port=5000
VERSION ?= latest
REVISION := $(shell git rev-parse --short HEAD)
UNAME_OS := $(shell uname -s)
ifneq ($(UNAME_OS),Darwin)
STATIC_LINK_FLAG := -linkmode external -extldflags "-static"
endif
.PHONY: emulator/build
emulator/build:
CGO_ENABLED=1 \
CXX=clang++ \
CGO_CFLAGS="-fno-PIC" CGO_CPPFLAGS="-fno-PIC" CGO_CXXFLAGS="-fno-PIC" \
go build -o bigquery-emulator \
-ldflags='-s -w -X main.version=${VERSION} -X main.revision=${REVISION} ${STATIC_LINK_FLAG}' \
./cmd/bigquery-emulator
# Copy environment variable definitions from GitHub Actions build so we don't
# need to duplicate them here for a local build:
env.mk: .github/workflows/build.yml $(MAKEFILE_LIST)
cat $< \
| yq -o json .env \
| jq -r 'to_entries|.[]|(.key+" ?= "+(.value|tostring))' \
> $@
-include env.mk
azul_docker_registry := "localhost:$(registry_port)/"
.PHONY: docker/build
docker/build:
docker build \
--progress=plain \
--build-arg azul_docker_bigquery_emulator_base_image_tag=$(azul_docker_bigquery_emulator_base_image_tag) \
--build-arg azul_docker_bigquery_emulator_upstream_version=$(azul_docker_bigquery_emulator_upstream_version) \
--build-arg azul_docker_bigquery_emulator_internal_version=$(azul_docker_bigquery_emulator_internal_version) \
--build-arg azul_docker_go_zetasql_image=$(azul_docker_go_zetasql_image) \
--build-arg azul_docker_go_zetasql_upstream_version=$(azul_docker_go_zetasql_upstream_version) \
--build-arg azul_docker_go_zetasql_internal_version=$(azul_docker_go_zetasql_internal_version) \
--tag $(azul_docker_registry)$(azul_docker_bigquery_emulator_image):$(azul_docker_bigquery_emulator_upstream_version)-$(azul_docker_bigquery_emulator_internal_version) \
.
.PHONY: start_registry
start_registry:
docker run \
--rm \
--detach \
--publish $(registry_port):5000 \
--name registry \
registry:2.7
.PHONY: check_registry
check_registry:
@curl --fail http://localhost:$(registry_port)/ \
|| { echo "Run 'make start_registry' first" ; false ; }
.PHONY: images
images: check_registry docker/build
docker push $(azul_docker_registry)$(azul_docker_bigquery_emulator_image):$(azul_docker_bigquery_emulator_upstream_version)-$(azul_docker_bigquery_emulator_internal_version)
.PHONY: stop_registry
stop_registry:
docker stop registry