Skip to content

Commit 82cd2b0

Browse files
authored
Tests/docerize integration tests (#473)
* Docerize integration tests * Change comment * Discard unnecessary changes
1 parent 17f63e8 commit 82cd2b0

File tree

3 files changed

+41
-19
lines changed

3 files changed

+41
-19
lines changed

Dockerfile.test

Lines changed: 0 additions & 5 deletions
This file was deleted.

Makefile

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,6 @@ GOPATH := $(GOBUILDDIR)
2424
PULSAR := $(GOBUILDDIR)/bin/pulsar$(shell go env GOEXE)
2525
GOASSETSBUILDER := $(GOBUILDDIR)/bin/go-assets-builder$(shell go env GOEXE)
2626

27-
DOCKERFILE := Dockerfile
28-
DOCKERTESTFILE := Dockerfile.test
29-
DOCKERDURATIONTESTFILE := tests/duration/Dockerfile
30-
3127
HELM ?= $(shell which helm)
3228

3329
.PHONY: helm
@@ -96,8 +92,6 @@ ifndef ALLOWCHAOS
9692
ALLOWCHAOS := true
9793
endif
9894

99-
TESTBINNAME := $(PROJECT)_test
100-
TESTBIN := $(BINDIR)/$(TESTBINNAME)
10195
DURATIONTESTBINNAME := $(PROJECT)_duration_test
10296
DURATIONTESTBIN := $(BINDIR)/$(DURATIONTESTBINNAME)
10397
RELEASE := $(GOBUILDDIR)/bin/release
@@ -204,7 +198,7 @@ dashboard/assets.go: $(DASHBOARDSOURCES) $(DASHBOARDDIR)/Dockerfile.build
204198

205199
.PHONY: docker
206200
docker: check-vars $(SOURCES) dashboard/assets.go VERSION
207-
docker build --build-arg VERSION=$(VERSION) --build-arg COMMIT=$(COMMIT) -f $(DOCKERFILE) -t $(OPERATORIMAGE) .
201+
docker build --build-arg VERSION=$(VERSION) --build-arg COMMIT=$(COMMIT) -f Dockerfile -t $(OPERATORIMAGE) .
208202
ifdef PUSHIMAGES
209203
docker push $(OPERATORIMAGE)
210204
endif
@@ -297,14 +291,10 @@ else
297291
docker build -f Dockerfile.unittest .
298292
endif
299293

300-
$(TESTBIN): $(GOBUILDDIR) $(SOURCES)
301-
@mkdir -p $(BINDIR)
302-
CGO_ENABLED=0 go test -c -installsuffix netgo -ldflags "-X main.projectVersion=$(VERSION) -X main.projectBuild=$(COMMIT)" -o $(TESTBIN) $(REPOPATH)/tests
303-
304294

305295
.PHONY: docker-test
306-
docker-test: $(TESTBIN)
307-
docker build --quiet -f $(DOCKERTESTFILE) -t $(TESTIMAGE) .
296+
docker-test: check-vars $(GOBUILDDIR) $(SOURCES)
297+
docker build --quiet -f tests/Dockerfile -t $(TESTIMAGE) .
308298

309299
.PHONY: run-upgrade-tests
310300
run-upgrade-tests:
@@ -356,7 +346,7 @@ $(DURATIONTESTBIN): $(SOURCES)
356346

357347
.PHONY: docker-duration-test
358348
docker-duration-test: $(DURATIONTESTBIN)
359-
docker build --quiet -f $(DOCKERDURATIONTESTFILE) -t $(DURATIONTESTIMAGE) .
349+
docker build --quiet -f tests/duration/Dockerfile -t $(DURATIONTESTIMAGE) .
360350
ifdef PUSHIMAGES
361351
docker push $(DURATIONTESTIMAGE)
362352
endif

tests/Dockerfile

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Download packages required by kube-arangodb
2+
FROM golang:1.12.9-alpine AS downloader
3+
4+
# git is required by 'go mod'
5+
RUN apk add git
6+
7+
WORKDIR /app
8+
9+
COPY go.mod .
10+
COPY go.sum .
11+
# It is done only once unless go.mod has been changed
12+
RUN go mod download
13+
14+
15+
16+
# Compile Golang integration tests for kube-arangodb sources with downloaded dependencies
17+
FROM downloader AS builder
18+
19+
COPY tests /app/tests
20+
COPY pkg /app/pkg
21+
COPY dashboard/assets.go /app/dashboard/assets.go
22+
23+
ENV GO111MODULE=on
24+
ENV CGO_ENABLED=0
25+
ENV GOARCH=amd64
26+
ENV GOOS=linux
27+
28+
RUN go test -c -installsuffix netgo -o /arangodb_operator_test /app/tests
29+
30+
31+
32+
# Build the final integration test image with only binary file
33+
FROM scratch
34+
35+
COPY --from=builder /arangodb_operator_test /usr/bin/arangodb_operator
36+
37+
ENTRYPOINT [ "/usr/bin/arangodb_operator_test" ]

0 commit comments

Comments
 (0)