1
1
all : clean build
2
2
optimizer : clean-optimizer build-optimizer
3
+ container-optimizer : clean-optimizer container-build-optimizer
3
4
4
5
PKG = github.com/containerd/nydus-snapshotter
5
6
PACKAGES ?= $(shell go list ./... | grep -v /tests)
6
7
SUDO = $(shell which sudo)
7
8
GO_EXECUTABLE_PATH ?= $(shell which go)
9
+ CONTAINER_ENGINE ?= $(if $(shell which docker) ,docker,nerdctl)
8
10
NYDUS_BUILDER ?= /usr/bin/nydus-image
9
11
NYDUS_NYDUSD ?= /usr/bin/nydusd
10
12
GOOS ?= linux
@@ -51,6 +53,10 @@ OPTIMIZER_SERVER_TOML = ${OPTIMIZER_SERVER}/Cargo.toml
51
53
OPTIMIZER_SERVER_BIN = ${OPTIMIZER_SERVER}/target/release/optimizer-server
52
54
STATIC_OPTIMIZER_SERVER_BIN = ${OPTIMIZER_SERVER}/target/x86_64-unknown-linux-gnu/release/optimizer-server
53
55
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
+
54
60
.PHONY : build
55
61
build :
56
62
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:
63
69
GOOS=${GOOS} GOARCH=${GOARCH} ${PROXY} go build -ldflags " $( LDFLAGS) " -v -o bin/optimizer-nri-plugin ./cmd/optimizer-nri-plugin
64
70
make -C tools/optimizer-server release && cp ${OPTIMIZER_SERVER_BIN} ./bin
65
71
72
+ container-build-optimizer :
73
+ ${CONTAINER_RUN} " make build-optimizer"
74
+
66
75
static-release :
67
76
CGO_ENABLED=0 ${PROXY} GOOS=${GOOS} GOARCH=${GOARCH} go build -ldflags " $( LDFLAGS) -extldflags -static" -v -o bin/containerd-nydus-grpc ./cmd/containerd-nydus-grpc
68
77
CGO_ENABLED=0 ${PROXY} GOOS=${GOOS} GOARCH=${GOARCH} go build -ldflags " $( LDFLAGS) -extldflags -static" -v -o bin/optimizer-nri-plugin ./cmd/optimizer-nri-plugin
69
78
make -C tools/optimizer-server static-release && cp ${STATIC_OPTIMIZER_SERVER_BIN} ./bin
70
79
80
+ container-static-release :
81
+ ${CONTAINER_RUN} " make static-release"
82
+
71
83
# Majorly for cross build for converter package since it is imported by other projects
72
84
converter :
73
85
GOOS=${GOOS} GOARCH=${GOARCH} ${PROXY} go build -ldflags " $( LDFLAGS) " -v -o bin/converter ./cmd/converter
@@ -106,31 +118,44 @@ install-optimizer:
106
118
107
119
.PHONY : vet
108
120
vet :
109
- go vet $(PACKAGES ) ./tests
121
+ go vet ${PACKAGES} ./tests
122
+
123
+ container-vet :
124
+ ${CONTAINER_RUN} " go vet ${PACKAGES} ./tests"
110
125
111
126
.PHONY : check
112
127
check : vet
113
128
golangci-lint run
114
129
130
+ container-check : container-vet
131
+ ${CONTAINER_RUN} " golangci-lint run"
132
+
115
133
.PHONY : test
116
134
test :
117
135
go test -race -v -mod=mod -cover ${PACKAGES}
118
136
137
+ container-test :
138
+ ${CONTAINER_RUN} " go test -race -v -mod=mod -cover ${PACKAGES} "
139
+
119
140
.PHONY : cover
120
141
cover :
121
- go test -v -covermode=atomic -coverprofile=coverage.txt $( PACKAGES )
142
+ go test -v -covermode=atomic -coverprofile=coverage.txt ${ PACKAGES}
122
143
go tool cover -func=coverage.txt
123
144
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
+
124
149
# make smoke TESTS=TestPack
125
150
smoke :
126
151
${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 )
128
153
129
154
.PHONY : integration
130
155
integration :
131
156
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 \
134
159
-v ` go env GOCACHE` :/root/.cache/go-build -v ` pwd` :/nydus-snapshotter \
135
160
-v /usr/src/linux-headers-${KERNEL_VER} :/usr/src/linux-headers-${KERNEL_VER} \
136
161
${ENV_TARGET_IMAGES_FILE} \
0 commit comments