Skip to content

Commit 23e9925

Browse files
committed
Makefile: build optimizer in container
Signed-off-by: Bin Tang <[email protected]>
1 parent 547c562 commit 23e9925

File tree

1 file changed

+30
-5
lines changed

1 file changed

+30
-5
lines changed

Makefile

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
all: clean build
22
optimizer: clean-optimizer build-optimizer
3+
container-optimizer: clean-optimizer container-build-optimizer
34

45
PKG = github.com/containerd/nydus-snapshotter
56
PACKAGES ?= $(shell go list ./... | grep -v /tests)
67
SUDO = $(shell which sudo)
78
GO_EXECUTABLE_PATH ?= $(shell which go)
9+
CONTAINER_ENGINE ?= $(if $(shell which docker),docker,nerdctl)
810
NYDUS_BUILDER ?= /usr/bin/nydus-image
911
NYDUS_NYDUSD ?= /usr/bin/nydusd
1012
GOOS ?= linux
@@ -51,6 +53,10 @@ OPTIMIZER_SERVER_TOML = ${OPTIMIZER_SERVER}/Cargo.toml
5153
OPTIMIZER_SERVER_BIN = ${OPTIMIZER_SERVER}/target/release/optimizer-server
5254
STATIC_OPTIMIZER_SERVER_BIN = ${OPTIMIZER_SERVER}/target/x86_64-unknown-linux-gnu/release/optimizer-server
5355

56+
CONTAINER_FLAGS += -v .:/work
57+
CONTAINER_RUN = ${SUDO} ${CONTAINER_ENGINE} run --rm -t ${CONTAINER_FLAGS} ghcr.io/sctb512/gobcc-builder:20.04 --
58+
59+
5460
.PHONY: build
5561
build:
5662
GOOS=${GOOS} GOARCH=${GOARCH} ${PROXY} go build -ldflags "$(LDFLAGS)" -v -o bin/containerd-nydus-grpc ./cmd/containerd-nydus-grpc
@@ -63,11 +69,17 @@ build-optimizer:
6369
GOOS=${GOOS} GOARCH=${GOARCH} ${PROXY} go build -ldflags "$(LDFLAGS)" -v -o bin/optimizer-nri-plugin ./cmd/optimizer-nri-plugin
6470
make -C tools/optimizer-server release && cp ${OPTIMIZER_SERVER_BIN} ./bin
6571

72+
container-build-optimizer:
73+
${CONTAINER_RUN} "make build-optimizer"
74+
6675
static-release:
6776
CGO_ENABLED=0 ${PROXY} GOOS=${GOOS} GOARCH=${GOARCH} go build -ldflags "$(LDFLAGS) -extldflags -static" -v -o bin/containerd-nydus-grpc ./cmd/containerd-nydus-grpc
6877
CGO_ENABLED=0 ${PROXY} GOOS=${GOOS} GOARCH=${GOARCH} go build -ldflags "$(LDFLAGS) -extldflags -static" -v -o bin/optimizer-nri-plugin ./cmd/optimizer-nri-plugin
6978
make -C tools/optimizer-server static-release && cp ${STATIC_OPTIMIZER_SERVER_BIN} ./bin
7079

80+
container-static-release:
81+
${CONTAINER_RUN} "make static-release"
82+
7183
# Majorly for cross build for converter package since it is imported by other projects
7284
converter:
7385
GOOS=${GOOS} GOARCH=${GOARCH} ${PROXY} go build -ldflags "$(LDFLAGS)" -v -o bin/converter ./cmd/converter
@@ -106,31 +118,44 @@ install-optimizer:
106118

107119
.PHONY: vet
108120
vet:
109-
go vet $(PACKAGES) ./tests
121+
go vet ${PACKAGES} ./tests
122+
123+
container-vet:
124+
${CONTAINER_RUN} "go vet ${PACKAGES} ./tests"
110125

111126
.PHONY: check
112127
check: vet
113128
golangci-lint run
114129

130+
container-check: container-vet
131+
${CONTAINER_RUN} "golangci-lint run"
132+
115133
.PHONY: test
116134
test:
117135
go test -race -v -mod=mod -cover ${PACKAGES}
118136

137+
container-test:
138+
${CONTAINER_RUN} "go test -race -v -mod=mod -cover ${PACKAGES}"
139+
119140
.PHONY: cover
120141
cover:
121-
go test -v -covermode=atomic -coverprofile=coverage.txt $(PACKAGES)
142+
go test -v -covermode=atomic -coverprofile=coverage.txt ${PACKAGES}
122143
go tool cover -func=coverage.txt
123144

145+
container-cover:
146+
${CONTAINER_RUN} "go test -v -covermode=atomic -coverprofile=coverage.txt ${PACKAGES}"
147+
${CONTAINER_RUN} "go tool cover -func=coverage.txt"
148+
124149
# make smoke TESTS=TestPack
125150
smoke:
126151
${GO_EXECUTABLE_PATH} test -o smoke.tests -c -race -v -cover ./tests
127-
$(SUDO) -E NYDUS_BUILDER=${NYDUS_BUILDER} NYDUS_NYDUSD=${NYDUS_NYDUSD} ./smoke.tests -test.v -test.timeout 10m -test.parallel=8 -test.run=$(TESTS)
152+
${SUDO} -E NYDUS_BUILDER=${NYDUS_BUILDER} NYDUS_NYDUSD=${NYDUS_NYDUSD} ./smoke.tests -test.v -test.timeout 10m -test.parallel=8 -test.run=$(TESTS)
128153

129154
.PHONY: integration
130155
integration:
131156
CGO_ENABLED=1 ${PROXY} GOOS=${GOOS} GOARCH=${GOARCH} go build -ldflags '-X "${PKG}/version.Version=${VERSION}" -extldflags "-static"' -race -v -o bin/containerd-nydus-grpc ./cmd/containerd-nydus-grpc
132-
$(SUDO) DOCKER_BUILDKIT=1 docker build ${BUILD_ARG_E2E_DOWNLOADS_MIRROR} -t nydus-snapshotter-e2e:0.1 -f integration/Dockerfile .
133-
$(SUDO) docker run --cap-add SYS_ADMIN --security-opt seccomp=unconfined --cgroup-parent=system.slice --cgroupns private --name nydus-snapshotter_e2e --rm --privileged -v /root/.docker:/root/.docker -v `go env GOMODCACHE`:/go/pkg/mod \
157+
${SUDO} DOCKER_BUILDKIT=1 docker build ${BUILD_ARG_E2E_DOWNLOADS_MIRROR} -t nydus-snapshotter-e2e:0.1 -f integration/Dockerfile .
158+
${SUDO} docker run --cap-add SYS_ADMIN --security-opt seccomp=unconfined --cgroup-parent=system.slice --cgroupns private --name nydus-snapshotter_e2e --rm --privileged -v /root/.docker:/root/.docker -v `go env GOMODCACHE`:/go/pkg/mod \
134159
-v `go env GOCACHE`:/root/.cache/go-build -v `pwd`:/nydus-snapshotter \
135160
-v /usr/src/linux-headers-${KERNEL_VER}:/usr/src/linux-headers-${KERNEL_VER} \
136161
${ENV_TARGET_IMAGES_FILE} \

0 commit comments

Comments
 (0)