mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-19 02:37:24 +08:00
build: docker-build as the first-class citizen
This commit is contained in:
@@ -133,13 +133,50 @@ mod:
|
||||
%:
|
||||
@:
|
||||
|
||||
# Use docker build binaries
|
||||
# Args:
|
||||
# WHAT: Directory names to build
|
||||
#
|
||||
#
|
||||
# Example:
|
||||
# make docker_build
|
||||
# make docker_build WHAT='cmd/climc cmd/region'
|
||||
docker_build:
|
||||
$(ROOT_DIR)/build/docker_build.sh $(WHAT)
|
||||
|
||||
DOCKER_BUILD_IMAGE_VERSION?=latest
|
||||
|
||||
define dockerBuildCmd
|
||||
set -o errexit
|
||||
set -o pipefail
|
||||
cd /home/build/onecloud
|
||||
export GOFLAGS=-mod=vendor
|
||||
make $(1)
|
||||
endef
|
||||
|
||||
docker-build: export dockerBuildCmd:=$(call dockerBuildCmd,$(F))
|
||||
docker-build:
|
||||
echo "$$dockerBuildCmd"
|
||||
docker rm --force onecloud-ci-build &>/dev/null || true
|
||||
docker run \
|
||||
--name onecloud-ci-build \
|
||||
--rm \
|
||||
--volume $(CURDIR):/home/build/onecloud \
|
||||
yunionio/onecloud-ci:$(DOCKER_BUILD_IMAGE_VERSION) \
|
||||
/bin/bash -c "$$dockerBuildCmd"
|
||||
chown -R $$(id -u):$$(id -g) _output
|
||||
ls -lh _output/bin
|
||||
|
||||
# NOTE we need a way to stop and remove the container started by docker-build.
|
||||
# No --tty, --stop-signal won't work
|
||||
docker-build-stop:
|
||||
docker stop --time 0 onecloud-ci-build || true
|
||||
|
||||
.PHONY: docker-build
|
||||
.PHONY: docker-build-stop
|
||||
|
||||
define helpText
|
||||
Build with docker
|
||||
|
||||
make docker-build F='-j4'
|
||||
make docker-build F='-j4 cmd/region cmd/climc'
|
||||
make docker-build-stop
|
||||
|
||||
Tidy up go modules and vendor directory
|
||||
|
||||
make mod
|
||||
endef
|
||||
|
||||
help: export helpText:=$(helpText)
|
||||
help:
|
||||
@echo "$$helpText"
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
SRC_ROOT=$(realpath $(dirname "${BASH_SOURCE[0]}")/..)
|
||||
BIN_DIR=$SRC_ROOT/_output/bin
|
||||
WORK_DIR="/go/src/yunion.io/x/onecloud"
|
||||
CMDS=$@
|
||||
|
||||
docker run --rm -it \
|
||||
-w $WORK_DIR \
|
||||
-v $SRC_ROOT:$WORK_DIR \
|
||||
d3lx/golang:yunion \
|
||||
make $CMDS
|
||||
|
||||
echo "Build finish"
|
||||
ls -alh $BIN_DIR
|
||||
Reference in New Issue
Block a user