2019-10-27 16:24:54 +03:00
|
|
|
# Copyright 2019 The Vitess Authors.
|
2019-04-25 21:03:33 +03:00
|
|
|
#
|
2017-05-06 02:21:12 +03:00
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
# you may not use this file except in compliance with the License.
|
|
|
|
# You may obtain a copy of the License at
|
2019-04-25 21:03:33 +03:00
|
|
|
#
|
2017-05-06 02:21:12 +03:00
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
2019-04-25 21:03:33 +03:00
|
|
|
#
|
2017-05-06 02:21:12 +03:00
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
2012-11-01 02:29:41 +04:00
|
|
|
|
|
|
|
MAKEFLAGS = -s
|
|
|
|
|
2019-12-07 22:11:06 +03:00
|
|
|
export GOBIN=$(PWD)/bin
|
2019-11-28 23:40:33 +03:00
|
|
|
export GO111MODULE=on
|
2019-12-09 23:58:08 +03:00
|
|
|
export GODEBUG=tls13=0
|
2020-01-15 22:16:46 +03:00
|
|
|
export REWRITER=go/vt/sqlparser/rewriter.go
|
2019-11-28 23:40:33 +03:00
|
|
|
|
2015-05-07 00:43:41 +03:00
|
|
|
# Disabled parallel processing of target prerequisites to avoid that integration tests are racing each other (e.g. for ports) and may fail.
|
|
|
|
# Since we are not using this Makefile for compilation, limiting parallelism will not increase build time.
|
|
|
|
.NOTPARALLEL:
|
|
|
|
|
2019-12-19 20:41:52 +03:00
|
|
|
.PHONY: all build build_web install test clean unit_test unit_test_cover unit_test_race integration_test proto proto_banner site_test site_integration_test docker_bootstrap docker_test docker_unit_test java_test reshard_tests e2e_test e2e_test_race minimaltools tools
|
2014-05-17 01:45:16 +04:00
|
|
|
|
2017-09-19 06:39:42 +03:00
|
|
|
all: build
|
2012-11-01 02:29:41 +04:00
|
|
|
|
2015-07-23 10:13:29 +03:00
|
|
|
# Set a custom value for -p, the number of packages to be built/tested in parallel.
|
|
|
|
# This is currently only used by our Travis CI test configuration.
|
|
|
|
# (Also keep in mind that this value is independent of GOMAXPROCS.)
|
2016-08-06 05:27:48 +03:00
|
|
|
ifdef VT_GO_PARALLEL_VALUE
|
|
|
|
export VT_GO_PARALLEL := -p $(VT_GO_PARALLEL_VALUE)
|
2015-07-23 10:13:29 +03:00
|
|
|
endif
|
2016-08-06 05:27:48 +03:00
|
|
|
|
2019-07-26 00:45:21 +03:00
|
|
|
ifdef VT_EXTRA_BUILD_FLAGS
|
|
|
|
export EXTRA_BUILD_FLAGS := $(VT_EXTRA_BUILD_FLAGS)
|
|
|
|
endif
|
|
|
|
|
2019-12-20 23:06:44 +03:00
|
|
|
# This target needs to be manually run every time any file within web/vtctld2/app is modified to regenerate rice-box.go
|
2019-12-19 16:01:24 +03:00
|
|
|
embed_static:
|
|
|
|
cd go/vt/vtctld
|
2019-12-20 13:52:24 +03:00
|
|
|
go run github.com/GeertJohan/go.rice/rice embed-go
|
2019-12-19 16:01:24 +03:00
|
|
|
go build .
|
|
|
|
|
2020-01-04 00:18:46 +03:00
|
|
|
embed_config:
|
|
|
|
cd go/vt/mysqlctl
|
|
|
|
go run github.com/GeertJohan/go.rice/rice embed-go
|
|
|
|
go build .
|
|
|
|
|
2016-08-16 21:26:41 +03:00
|
|
|
build_web:
|
|
|
|
echo $$(date): Building web artifacts
|
2016-08-23 01:24:47 +03:00
|
|
|
cd web/vtctld2 && ng build -prod
|
2016-12-17 07:01:37 +03:00
|
|
|
cp -f web/vtctld2/src/{favicon.ico,plotly-latest.min.js,primeui-ng-all.min.css} web/vtctld2/dist/
|
2016-08-16 21:26:41 +03:00
|
|
|
|
2020-01-15 05:08:37 +03:00
|
|
|
build:
|
2015-10-18 04:01:32 +03:00
|
|
|
ifndef NOBANNER
|
2015-08-21 19:51:08 +03:00
|
|
|
echo $$(date): Building source tree
|
2015-10-18 04:01:32 +03:00
|
|
|
endif
|
2019-12-07 22:11:06 +03:00
|
|
|
bash ./build.env
|
2019-07-26 00:45:21 +03:00
|
|
|
go install $(EXTRA_BUILD_FLAGS) $(VT_GO_PARALLEL) -ldflags "$(shell tools/build_version_flags.sh)" ./go/...
|
2013-12-25 02:28:19 +04:00
|
|
|
|
2019-12-20 00:26:58 +03:00
|
|
|
debug:
|
|
|
|
ifndef NOBANNER
|
|
|
|
echo $$(date): Building source tree
|
|
|
|
endif
|
|
|
|
bash ./build.env
|
|
|
|
go install $(EXTRA_BUILD_FLAGS) $(VT_GO_PARALLEL) -ldflags "$(shell tools/build_version_flags.sh)" -gcflags -'N -l' ./go/...
|
|
|
|
|
2019-12-19 20:41:52 +03:00
|
|
|
# install copies the files needed to run Vitess into the given directory tree.
|
|
|
|
# Usage: make install PREFIX=/path/to/install/root
|
|
|
|
install: build
|
|
|
|
# binaries
|
|
|
|
mkdir -p "$${PREFIX}/bin"
|
|
|
|
cp "$${VTROOT}/bin/"{mysqlctld,vtctld,vtctlclient,vtgate,vttablet,vtworker,vtbackup} "$${PREFIX}/bin/"
|
|
|
|
|
2017-03-31 20:53:29 +03:00
|
|
|
parser:
|
2017-03-31 21:11:25 +03:00
|
|
|
make -C go/vt/sqlparser
|
2017-03-31 20:53:29 +03:00
|
|
|
|
2020-01-11 03:43:32 +03:00
|
|
|
visitor:
|
2020-01-27 13:16:37 +03:00
|
|
|
go generate go/vt/sqlparser/rewriter.go
|
2020-01-11 03:43:32 +03:00
|
|
|
|
2015-08-24 23:44:52 +03:00
|
|
|
# To pass extra flags, run test.go manually.
|
|
|
|
# For example: go run test.go -docker=false -- --extra-flag
|
|
|
|
# For more info see: go run test.go -help
|
2020-02-04 06:47:54 +03:00
|
|
|
test:
|
|
|
|
go run test.go -docker=false
|
2015-08-24 05:51:42 +03:00
|
|
|
|
2014-09-11 01:56:25 +04:00
|
|
|
site_test: unit_test site_integration_test
|
2014-05-17 01:45:16 +04:00
|
|
|
|
2013-12-25 02:28:19 +04:00
|
|
|
clean:
|
|
|
|
go clean -i ./go/...
|
2015-07-29 00:10:59 +03:00
|
|
|
rm -rf third_party/acolyte
|
2016-06-28 22:17:36 +03:00
|
|
|
rm -rf go/vt/.proto.tmp
|
2020-01-11 03:43:32 +03:00
|
|
|
rm -rf ./visitorgen
|
2012-11-01 02:29:41 +04:00
|
|
|
|
2017-11-24 10:02:04 +03:00
|
|
|
# Remove everything including stuff pulled down by bootstrap.sh
|
2020-01-11 03:43:32 +03:00
|
|
|
cleanall: clean
|
2017-11-24 10:02:04 +03:00
|
|
|
# directories created by bootstrap.sh
|
|
|
|
# - exclude vtdataroot and vthook as they may have data we want
|
2019-12-10 01:42:49 +03:00
|
|
|
rm -rf bin dist lib pkg
|
2017-11-24 10:02:04 +03:00
|
|
|
# Remind people to run bootstrap.sh again
|
2019-12-07 22:11:06 +03:00
|
|
|
echo "Please run 'make tools' again to setup your environment"
|
2012-11-01 02:29:41 +04:00
|
|
|
|
2020-02-04 06:47:54 +03:00
|
|
|
unit_test: build dependency_check
|
|
|
|
echo $$(date): Running unit tests
|
|
|
|
tools/unit_test_runner.sh
|
|
|
|
|
2019-10-15 08:06:04 +03:00
|
|
|
e2e_test: build
|
|
|
|
echo $$(date): Running endtoend tests
|
|
|
|
go test $(VT_GO_PARALLEL) ./go/.../endtoend/...
|
|
|
|
|
2014-05-01 00:43:22 +04:00
|
|
|
# Run the code coverage tools, compute aggregate.
|
|
|
|
# If you want to improve in a directory, run:
|
|
|
|
# go test -coverprofile=coverage.out && go tool cover -html=coverage.out
|
2015-09-22 19:40:39 +03:00
|
|
|
unit_test_cover: build
|
2016-04-07 00:52:31 +03:00
|
|
|
go test $(VT_GO_PARALLEL) -cover ./go/... | misc/parse_cover.py
|
2014-05-01 00:13:59 +04:00
|
|
|
|
2019-12-07 22:11:06 +03:00
|
|
|
unit_test_race: build dependency_check
|
2015-11-23 04:35:22 +03:00
|
|
|
tools/unit_test_race.sh
|
2013-10-29 15:40:01 +04:00
|
|
|
|
2019-10-15 08:06:04 +03:00
|
|
|
e2e_test_race: build
|
|
|
|
tools/e2e_test_race.sh
|
|
|
|
|
2019-10-25 19:50:57 +03:00
|
|
|
e2e_test_cluster: build
|
|
|
|
tools/e2e_test_cluster.sh
|
|
|
|
|
2014-04-14 05:38:00 +04:00
|
|
|
.ONESHELL:
|
|
|
|
SHELL = /bin/bash
|
2014-10-01 05:59:51 +04:00
|
|
|
|
2015-08-24 05:51:42 +03:00
|
|
|
# Run the following tests after making worker changes.
|
|
|
|
worker_test:
|
2016-04-07 00:52:31 +03:00
|
|
|
go test ./go/vt/worker/
|
2015-10-29 23:27:23 +03:00
|
|
|
go run test.go -docker=false -tag=worker_test
|
2015-01-13 07:08:44 +03:00
|
|
|
|
2015-08-24 05:51:42 +03:00
|
|
|
site_integration_test:
|
2015-10-29 23:27:23 +03:00
|
|
|
go run test.go -docker=false -tag=site_test
|
2014-09-11 01:56:25 +04:00
|
|
|
|
2015-08-23 05:21:26 +03:00
|
|
|
java_test:
|
2016-05-27 06:36:52 +03:00
|
|
|
go install ./go/cmd/vtgateclienttest ./go/cmd/vtcombo
|
2019-12-07 22:11:06 +03:00
|
|
|
VTROOT=${PWD} mvn -f java/pom.xml -B clean verify
|
2014-10-01 05:59:51 +04:00
|
|
|
|
2019-09-24 03:33:28 +03:00
|
|
|
install_protoc-gen-go:
|
|
|
|
go install github.com/golang/protobuf/protoc-gen-go
|
|
|
|
|
2016-06-28 22:17:36 +03:00
|
|
|
PROTO_SRCS = $(wildcard proto/*.proto)
|
|
|
|
PROTO_SRC_NAMES = $(basename $(notdir $(PROTO_SRCS)))
|
|
|
|
PROTO_GO_OUTS = $(foreach name, $(PROTO_SRC_NAMES), go/vt/proto/$(name)/$(name).pb.go)
|
|
|
|
|
2020-04-13 02:49:45 +03:00
|
|
|
# This rule rebuilds all the go files from the proto definitions for gRPC.
|
|
|
|
proto: $(PROTO_GO_OUTS)
|
2017-11-13 21:11:14 +03:00
|
|
|
|
2016-06-28 22:17:36 +03:00
|
|
|
ifndef NOBANNER
|
|
|
|
echo $$(date): Compiling proto definitions
|
|
|
|
endif
|
|
|
|
|
2019-12-31 20:22:01 +03:00
|
|
|
# TODO(sougou): find a better way around this temp hack.
|
|
|
|
VTTOP=$(VTROOT)/../../..
|
2018-06-08 06:00:15 +03:00
|
|
|
$(PROTO_GO_OUTS): install_protoc-gen-go proto/*.proto
|
2016-06-28 22:17:36 +03:00
|
|
|
for name in $(PROTO_SRC_NAMES); do \
|
2020-01-01 01:53:04 +03:00
|
|
|
cd $(VTTOP)/src && \
|
|
|
|
$(VTROOT)/bin/protoc --go_out=plugins=grpc:. -Ivitess.io/vitess/proto vitess.io/vitess/proto/$${name}.proto && \
|
|
|
|
goimports -w $(VTROOT)/go/vt/proto/$${name}/$${name}.pb.go; \
|
2016-06-28 22:17:36 +03:00
|
|
|
done
|
|
|
|
|
2017-04-13 03:49:34 +03:00
|
|
|
# Helper targets for building Docker images.
|
|
|
|
# Please read docker/README.md to understand the different available images.
|
|
|
|
|
2015-06-27 03:12:04 +03:00
|
|
|
# This rule builds the bootstrap images for all flavors.
|
2019-03-05 21:29:23 +03:00
|
|
|
DOCKER_IMAGES_FOR_TEST = mariadb mariadb103 mysql56 mysql57 mysql80 percona percona57 percona80
|
2016-05-26 09:01:51 +03:00
|
|
|
DOCKER_IMAGES = common $(DOCKER_IMAGES_FOR_TEST)
|
2015-04-21 01:09:26 +03:00
|
|
|
docker_bootstrap:
|
2016-11-02 03:45:50 +03:00
|
|
|
for i in $(DOCKER_IMAGES); do echo "building bootstrap image: $$i"; docker/bootstrap/build.sh $$i || exit 1; done
|
2016-05-26 09:01:51 +03:00
|
|
|
|
|
|
|
docker_bootstrap_test:
|
2018-04-11 03:11:27 +03:00
|
|
|
flavors='$(DOCKER_IMAGES_FOR_TEST)' && ./test.go -pull=false -parallel=2 -flavor=$${flavors// /,}
|
2016-05-26 09:01:51 +03:00
|
|
|
|
|
|
|
docker_bootstrap_push:
|
2019-09-27 16:50:11 +03:00
|
|
|
for i in $(DOCKER_IMAGES); do echo "pushing bootstrap image: $$i"; docker push vitess/bootstrap:$$i || exit 1; done
|
2016-11-02 03:45:50 +03:00
|
|
|
|
|
|
|
# Use this target to update the local copy of your images with the one on Dockerhub.
|
|
|
|
docker_bootstrap_pull:
|
|
|
|
for i in $(DOCKER_IMAGES); do echo "pulling bootstrap image: $$i"; docker pull vitess/bootstrap:$$i || exit 1; done
|
2015-04-21 02:03:01 +03:00
|
|
|
|
2015-08-26 00:12:57 +03:00
|
|
|
docker_base:
|
|
|
|
# Fix permissions before copying files, to avoid AUFS bug.
|
|
|
|
chmod -R o=g *
|
2017-04-13 03:49:34 +03:00
|
|
|
docker build -f docker/base/Dockerfile -t vitess/base .
|
2015-08-26 00:12:57 +03:00
|
|
|
|
2016-05-19 22:50:28 +03:00
|
|
|
docker_base_mysql56:
|
|
|
|
chmod -R o=g *
|
2017-04-13 03:49:34 +03:00
|
|
|
docker build -f docker/base/Dockerfile.mysql56 -t vitess/base:mysql56 .
|
2016-05-19 22:50:28 +03:00
|
|
|
|
2019-03-05 21:29:23 +03:00
|
|
|
docker_base_mysql80:
|
|
|
|
chmod -R o=g *
|
2019-04-25 21:03:33 +03:00
|
|
|
docker build -f docker/base/Dockerfile.mysql80 -t vitess/base:mysql80 .
|
2019-03-05 21:29:23 +03:00
|
|
|
|
2016-11-02 03:44:18 +03:00
|
|
|
docker_base_mariadb:
|
|
|
|
chmod -R o=g *
|
2017-04-13 03:49:34 +03:00
|
|
|
docker build -f docker/base/Dockerfile.mariadb -t vitess/base:mariadb .
|
2016-11-02 03:44:18 +03:00
|
|
|
|
2019-03-05 21:29:23 +03:00
|
|
|
docker_base_mariadb103:
|
|
|
|
chmod -R o=g *
|
|
|
|
docker build -f docker/base/Dockerfile.mariadb -t vitess/base:mariadb103 .
|
|
|
|
|
2016-03-05 02:48:34 +03:00
|
|
|
docker_base_percona:
|
|
|
|
chmod -R o=g *
|
2017-04-13 03:49:34 +03:00
|
|
|
docker build -f docker/base/Dockerfile.percona -t vitess/base:percona .
|
2016-03-05 02:48:34 +03:00
|
|
|
|
2016-08-12 18:39:33 +03:00
|
|
|
docker_base_percona57:
|
|
|
|
chmod -R o=g *
|
2017-04-13 03:49:34 +03:00
|
|
|
docker build -f docker/base/Dockerfile.percona57 -t vitess/base:percona57 .
|
2016-08-12 18:39:33 +03:00
|
|
|
|
2019-03-05 21:29:23 +03:00
|
|
|
docker_base_percona80:
|
|
|
|
chmod -R o=g *
|
2019-04-25 23:17:23 +03:00
|
|
|
docker build -f docker/base/Dockerfile.percona80 -t vitess/base:percona80 .
|
2019-03-05 21:29:23 +03:00
|
|
|
|
2017-04-13 02:54:13 +03:00
|
|
|
docker_lite:
|
2019-12-19 20:41:52 +03:00
|
|
|
chmod -R o=g *
|
|
|
|
docker build -f docker/lite/Dockerfile -t vitess/lite .
|
2015-08-26 00:12:57 +03:00
|
|
|
|
2017-04-15 00:53:02 +03:00
|
|
|
docker_lite_mysql56:
|
2019-12-19 20:41:52 +03:00
|
|
|
chmod -R o=g *
|
|
|
|
docker build -f docker/lite/Dockerfile.mysql56 -t vitess/lite:mysql56 .
|
2016-05-19 22:50:28 +03:00
|
|
|
|
2019-03-05 21:29:23 +03:00
|
|
|
docker_lite_mysql57:
|
2019-12-19 20:41:52 +03:00
|
|
|
chmod -R o=g *
|
|
|
|
docker build -f docker/lite/Dockerfile.mysql57 -t vitess/lite:mysql57 .
|
2019-03-05 21:29:23 +03:00
|
|
|
|
|
|
|
docker_lite_mysql80:
|
2019-12-19 20:41:52 +03:00
|
|
|
chmod -R o=g *
|
|
|
|
docker build -f docker/lite/Dockerfile.mysql80 -t vitess/lite:mysql80 .
|
2019-03-05 21:29:23 +03:00
|
|
|
|
2017-04-15 00:53:02 +03:00
|
|
|
docker_lite_mariadb:
|
2019-12-19 20:41:52 +03:00
|
|
|
chmod -R o=g *
|
|
|
|
docker build -f docker/lite/Dockerfile.mariadb -t vitess/lite:mariadb .
|
2016-03-05 02:48:34 +03:00
|
|
|
|
2019-03-05 21:29:23 +03:00
|
|
|
docker_lite_mariadb103:
|
2019-12-19 20:41:52 +03:00
|
|
|
chmod -R o=g *
|
|
|
|
docker build -f docker/lite/Dockerfile.mariadb103 -t vitess/lite:mariadb103 .
|
2019-03-05 21:29:23 +03:00
|
|
|
|
2017-04-15 00:53:02 +03:00
|
|
|
docker_lite_percona:
|
2019-12-19 20:41:52 +03:00
|
|
|
chmod -R o=g *
|
|
|
|
docker build -f docker/lite/Dockerfile.percona -t vitess/lite:percona .
|
2016-03-05 02:48:34 +03:00
|
|
|
|
2017-04-15 00:53:02 +03:00
|
|
|
docker_lite_percona57:
|
2019-12-19 20:41:52 +03:00
|
|
|
chmod -R o=g *
|
|
|
|
docker build -f docker/lite/Dockerfile.percona57 -t vitess/lite:percona57 .
|
2016-08-12 18:39:33 +03:00
|
|
|
|
2019-03-05 21:29:23 +03:00
|
|
|
docker_lite_percona80:
|
2019-12-19 20:41:52 +03:00
|
|
|
chmod -R o=g *
|
|
|
|
docker build -f docker/lite/Dockerfile.percona80 -t vitess/lite:percona80 .
|
2019-03-05 21:29:23 +03:00
|
|
|
|
2018-10-19 22:01:43 +03:00
|
|
|
docker_lite_alpine:
|
2019-12-19 20:41:52 +03:00
|
|
|
chmod -R o=g *
|
|
|
|
docker build -f docker/lite/Dockerfile.alpine -t vitess/lite:alpine .
|
2018-10-19 22:01:43 +03:00
|
|
|
|
2015-04-21 02:03:01 +03:00
|
|
|
# This rule loads the working copy of the code into a bootstrap image,
|
|
|
|
# and then runs the tests inside Docker.
|
|
|
|
# Example: $ make docker_test flavor=mariadb
|
|
|
|
docker_test:
|
2015-06-27 03:12:04 +03:00
|
|
|
go run test.go -flavor $(flavor)
|
2015-04-22 06:12:20 +03:00
|
|
|
|
|
|
|
docker_unit_test:
|
2015-06-27 03:12:04 +03:00
|
|
|
go run test.go -flavor $(flavor) unit
|
2015-08-24 05:51:42 +03:00
|
|
|
|
2018-03-13 22:19:58 +03:00
|
|
|
# Release a version.
|
|
|
|
# This will generate a tar.gz file into the releases folder with the current source
|
|
|
|
release: docker_base
|
|
|
|
@if [ -z "$VERSION" ]; then \
|
|
|
|
echo "Set the env var VERSION with the release version"; exit 1;\
|
|
|
|
fi
|
2018-03-09 21:56:01 +03:00
|
|
|
mkdir -p releases
|
|
|
|
docker build -f docker/Dockerfile.release -t vitess/release .
|
|
|
|
docker run -v ${PWD}/releases:/vt/releases --env VERSION=$(VERSION) vitess/release
|
|
|
|
git tag -m Version\ $(VERSION) v$(VERSION)
|
|
|
|
echo "A git tag was created, you can push it with:"
|
|
|
|
echo "git push origin v$(VERSION)"
|
|
|
|
echo "Also, don't forget the upload releases/v$(VERSION).tar.gz file to GitHub releases"
|
2019-06-27 01:57:02 +03:00
|
|
|
|
|
|
|
packages: docker_base
|
2019-07-11 10:09:22 +03:00
|
|
|
@if [ -z "$VERSION" ]; then \
|
|
|
|
echo "Set the env var VERSION with the release version"; exit 1;\
|
|
|
|
fi
|
2019-06-27 01:57:02 +03:00
|
|
|
mkdir -p releases
|
|
|
|
docker build -f docker/packaging/Dockerfile -t vitess/packaging .
|
2019-07-11 10:09:22 +03:00
|
|
|
docker run --rm -v ${PWD}/releases:/vt/releases --env VERSION=$(VERSION) vitess/packaging --package /vt/releases -t deb --deb-no-default-config-files
|
|
|
|
docker run --rm -v ${PWD}/releases:/vt/releases --env VERSION=$(VERSION) vitess/packaging --package /vt/releases -t rpm
|
2019-12-07 22:11:06 +03:00
|
|
|
|
|
|
|
tools:
|
|
|
|
echo $$(date): Installing dependencies
|
2020-03-06 10:32:54 +03:00
|
|
|
./bootstrap.sh
|
2019-12-07 22:11:06 +03:00
|
|
|
|
|
|
|
minimaltools:
|
|
|
|
echo $$(date): Installing minimal dependencies
|
2020-04-01 00:22:01 +03:00
|
|
|
BUILD_CHROME=0 BUILD_JAVA=0 BUILD_CONSUL=0 ./bootstrap.sh
|
2019-12-07 22:11:06 +03:00
|
|
|
|
|
|
|
dependency_check:
|
|
|
|
./tools/dependency_check.sh
|
2018-12-28 07:24:53 +03:00
|
|
|
|
|
|
|
GEN_BASE_DIR ?= ./go/vt/topo/k8stopo
|
|
|
|
|
|
|
|
client_go_gen:
|
|
|
|
echo $$(date): Regenerating client-go code
|
|
|
|
# Delete and re-generate the deepcopy types
|
|
|
|
find $(GEN_BASE_DIR)/apis/topo/v1beta1 -type f -name 'zz_generated*' -exec rm '{}' \;
|
|
|
|
deepcopy-gen -i $(GEN_BASE_DIR)/apis/topo/v1beta1 -O zz_generated.deepcopy -o ./ --bounding-dirs $(GEN_BASE_DIR)/apis --go-header-file $(GEN_BASE_DIR)/boilerplate.go.txt
|
|
|
|
|
|
|
|
# Delete, generate, and move the client libraries
|
|
|
|
rm -rf go/vt/topo/k8stopo/client
|
|
|
|
|
|
|
|
# There is no way to get client-gen to automatically put files in the right place and still have the right import path so we generate and move them
|
|
|
|
|
|
|
|
# Generate client, informers, and listers
|
|
|
|
client-gen -o ./ --input 'topo/v1beta1' --clientset-name versioned --input-base 'vitess.io/vitess/go/vt/topo/k8stopo/apis/' -i vitess.io/vitess --output-package vitess.io/vitess/go/vt/topo/k8stopo/client/clientset --go-header-file $(GEN_BASE_DIR)/boilerplate.go.txt
|
|
|
|
lister-gen -o ./ --input-dirs vitess.io/vitess/go/vt/topo/k8stopo/apis/topo/v1beta1 --output-package vitess.io/vitess/go/vt/topo/k8stopo/client/listers --go-header-file $(GEN_BASE_DIR)/boilerplate.go.txt
|
|
|
|
informer-gen -o ./ --input-dirs vitess.io/vitess/go/vt/topo/k8stopo/apis/topo/v1beta1 --versioned-clientset-package vitess.io/vitess/go/vt/topo/k8stopo/client/clientset/versioned --listers-package vitess.io/vitess/go/vt/topo/k8stopo/client/listers --output-package vitess.io/vitess/go/vt/topo/k8stopo/client/informers --go-header-file $(GEN_BASE_DIR)/boilerplate.go.txt
|
|
|
|
|
|
|
|
# Move and cleanup
|
|
|
|
mv vitess.io/vitess/go/vt/topo/k8stopo/client go/vt/topo/k8stopo/
|
|
|
|
rmdir -p vitess.io/vitess/go/vt/topo/k8stopo/
|