106 lines
3.2 KiB
Makefile
106 lines
3.2 KiB
Makefile
# Copyright 2019 The Volcano Authors.
|
|
#
|
|
# 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
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# 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.
|
|
|
|
BIN_DIR=_output/bin
|
|
RELEASE_DIR=_output/release
|
|
REL_OSARCH=linux/amd64
|
|
REPO_PATH=volcano.sh/volcano
|
|
IMAGE_PREFIX=volcanosh/vc
|
|
|
|
include Makefile.def
|
|
|
|
.EXPORT_ALL_VARIABLES:
|
|
|
|
all: vc-scheduler vc-controller-manager vc-webhook-manager vcctl command-lines
|
|
|
|
init:
|
|
mkdir -p ${BIN_DIR}
|
|
mkdir -p ${RELEASE_DIR}
|
|
|
|
vc-scheduler: init
|
|
go build -ldflags ${LD_FLAGS} -o=${BIN_DIR}/vc-scheduler ./cmd/scheduler
|
|
|
|
vc-controller-manager: init
|
|
go build -ldflags ${LD_FLAGS} -o=${BIN_DIR}/vc-controller-manager ./cmd/controller-manager
|
|
|
|
vc-webhook-manager: init
|
|
go build -ldflags ${LD_FLAGS} -o=${BIN_DIR}/vc-webhook-manager ./cmd/webhook-manager
|
|
|
|
vcctl: init
|
|
go build -ldflags ${LD_FLAGS} -o=${BIN_DIR}/vcctl ./cmd/cli
|
|
|
|
image_bins: init
|
|
go get github.com/mitchellh/gox
|
|
CGO_ENABLED=0 gox -osarch=${REL_OSARCH} -ldflags ${LD_FLAGS} -output ${BIN_DIR}/${REL_OSARCH}/vcctl ./cmd/cli
|
|
for name in controller-manager scheduler webhook-manager; do\
|
|
CGO_ENABLED=0 gox -osarch=${REL_OSARCH} -ldflags ${LD_FLAGS} -output ${BIN_DIR}/${REL_OSARCH}/vc-$$name ./cmd/$$name; \
|
|
done
|
|
|
|
images: image_bins
|
|
for name in controller-manager scheduler webhook-manager; do\
|
|
cp ${BIN_DIR}/${REL_OSARCH}/vc-$$name ./installer/dockerfile/$$name/; \
|
|
docker build --no-cache -t $(IMAGE_PREFIX)-$$name:$(TAG) ./installer/dockerfile/$$name; \
|
|
rm installer/dockerfile/$$name/vc-$$name; \
|
|
done
|
|
|
|
webhook-manager-base-image:
|
|
docker build --no-cache -t $(IMAGE_PREFIX)-webhook-manager-base:$(TAG) ./installer/dockerfile/webhook-manager/ -f ./installer/dockerfile/webhook-manager/Dockerfile.base;
|
|
|
|
generate-code:
|
|
./hack/update-gencode.sh
|
|
|
|
unit-test:
|
|
go clean -testcache
|
|
go list ./... | grep -v e2e | xargs go test -v -race
|
|
|
|
e2e-test-kind:
|
|
./hack/run-e2e-kind.sh
|
|
|
|
generate-yaml: init
|
|
./hack/generate-yaml.sh TAG=${RELEASE_VER}
|
|
|
|
release-env:
|
|
./hack/build-env.sh release
|
|
|
|
dev-env:
|
|
./hack/build-env.sh dev
|
|
|
|
release: images generate-yaml
|
|
./hack/publish.sh
|
|
|
|
clean:
|
|
rm -rf _output/
|
|
rm -f *.log
|
|
|
|
verify:
|
|
hack/verify-gofmt.sh
|
|
hack/verify-golint.sh
|
|
hack/verify-gencode.sh
|
|
hack/verify-vendor.sh
|
|
|
|
lint: ## Lint the files
|
|
golangci-lint version
|
|
golangci-lint run pkg/kube pkg/version pkg/apis/...
|
|
|
|
verify-generated-yaml:
|
|
./hack/check-generated-yaml.sh
|
|
|
|
command-lines:
|
|
go build -ldflags ${LD_FLAGS} -o=${BIN_DIR}/vcancel ./cmd/cli/vcancel
|
|
go build -ldflags ${LD_FLAGS} -o=${BIN_DIR}/vresume ./cmd/cli/vresume
|
|
go build -ldflags ${LD_FLAGS} -o=${BIN_DIR}/vsuspend ./cmd/cli/vsuspend
|
|
go build -ldflags ${LD_FLAGS} -o=${BIN_DIR}/vjobs ./cmd/cli/vjobs
|
|
go build -ldflags ${LD_FLAGS} -o=${BIN_DIR}/vqueues ./cmd/cli/vqueues
|
|
go build -ldflags ${LD_FLAGS} -o=${BIN_DIR}/vsub ./cmd/cli/vsub
|