@@ -54,6 +54,8 @@ OS=$(shell uname)
54
54
CHAINTOOL_RELEASE =v0.10.0
55
55
BASEIMAGE_RELEASE =$(shell cat ./.baseimage-release)
56
56
57
+ export GO_LDFLAGS
58
+
57
59
DOCKER_TAG =$(ARCH ) -$(PROJECT_VERSION )
58
60
BASE_DOCKER_TAG =$(ARCH ) -$(BASEIMAGE_RELEASE )
59
61
@@ -73,7 +75,7 @@ GOSHIM_DEPS = $(shell ./scripts/goListFiles.sh $(PKGNAME)/core/chaincode/shim |
73
75
JAVASHIM_DEPS = $(shell git ls-files core/chaincode/shim/java)
74
76
PROTOS = $(shell git ls-files * .proto | grep -v vendor)
75
77
PROJECT_FILES = $(shell git ls-files)
76
- IMAGES = peer orderer ccenv javaenv
78
+ IMAGES = peer orderer ccenv javaenv testenv
77
79
78
80
pkgmap.peer := $(PKGNAME ) /peer
79
81
pkgmap.orderer := $(PKGNAME ) /orderer
@@ -103,8 +105,10 @@ peer-docker: build/image/peer/.dummy
103
105
orderer : build/bin/orderer
104
106
orderer-docker : build/image/orderer/.dummy
105
107
106
- unit-test : peer-docker gotools
107
- @./scripts/goUnitTests.sh $(DOCKER_TAG ) " $( GO_LDFLAGS) "
108
+ testenv : build/image/testenv/.dummy
109
+
110
+ unit-test : peer-docker testenv
111
+ cd unit-test && docker-compose up --abort-on-container-exit --force-recreate && docker-compose down
108
112
109
113
unit-tests : unit-test
110
114
@@ -120,19 +124,6 @@ linter: gotools
120
124
@echo " LINT: Running code checks.."
121
125
@./scripts/golinter.sh
122
126
123
- # We (re)build protoc-gen-go from within docker context so that
124
- # we may later inject the binary into a different docker environment
125
- # This is necessary since we cannot guarantee that binaries built
126
- # on the host natively will be compatible with the docker env.
127
- % /bin/protoc-gen-go : Makefile
128
- @echo " Building $@ "
129
- @mkdir -p $(@D )
130
- @$(DRUN ) \
131
- -v $(abspath vendor/github.com/golang/protobuf) :/opt/gopath/src/github.com/golang/protobuf \
132
- -v $(abspath $(@D ) ) :/opt/gopath/bin \
133
- hyperledger/fabric-baseimage:$(BASE_DOCKER_TAG ) \
134
- go install github.com/golang/protobuf/protoc-gen-go
135
-
136
127
build/bin/chaintool : Makefile
137
128
@echo " Installing chaintool"
138
129
@mkdir -p $(@D )
@@ -159,6 +150,16 @@ build/docker/bin/%: $(PROJECT_FILES)
159
150
build/bin :
160
151
mkdir -p $@
161
152
153
+ build/docker/gotools/bin/protoc-gen-go : build/docker/gotools
154
+
155
+ build/docker/gotools : gotools/Makefile
156
+ @mkdir -p $@ /bin $@ /obj
157
+ @$(DRUN ) \
158
+ -v $(abspath $@ ) :/opt/gotools \
159
+ -w /opt/gopath/src/$(PKGNAME ) /gotools \
160
+ hyperledger/fabric-baseimage:$(BASE_DOCKER_TAG ) \
161
+ make install BINDIR=/opt/gotools/bin OBJDIR=/opt/gotools/obj
162
+
162
163
# Both peer and peer-docker depend on ccenv and javaenv (all docker env images it supports)
163
164
build/bin/peer : build/image/ccenv/.dummy build/image/javaenv/.dummy
164
165
build/image/peer/.dummy : build/image/ccenv/.dummy build/image/javaenv/.dummy
@@ -171,7 +172,7 @@ build/bin/%: $(PROJECT_FILES)
171
172
@touch $@
172
173
173
174
# payload definitions'
174
- build/image/ccenv/payload : build/docker/bin/protoc-gen-go \
175
+ build/image/ccenv/payload : build/docker/gotools/ bin/protoc-gen-go \
175
176
build/bin/chaintool \
176
177
build/goshim.tar.bz2
177
178
build/image/javaenv/payload : build/javashim.tar.bz2 \
@@ -182,6 +183,7 @@ build/image/peer/payload: build/docker/bin/peer \
182
183
msp/peer-config.json
183
184
build/image/orderer/payload : build/docker/bin/orderer \
184
185
orderer/orderer.yaml
186
+ build/image/testenv/payload : build/gotools.tar.bz2
185
187
186
188
build/image/% /payload :
187
189
mkdir -p $@
@@ -198,6 +200,9 @@ build/image/%/.dummy: Makefile build/image/%/payload
198
200
docker tag $(PROJECT_NAME ) -$(TARGET ) $(PROJECT_NAME ) -$(TARGET ) :$(DOCKER_TAG )
199
201
@touch $@
200
202
203
+ build/gotools.tar.bz2 : build/docker/gotools
204
+ (cd $< /bin && tar -jc * ) > $@
205
+
201
206
build/goshim.tar.bz2 : $(GOSHIM_DEPS )
202
207
@echo " Creating $@ "
203
208
@tar -jhc -C $(GOPATH ) /src $(patsubst $(GOPATH ) /src/% ,% ,$(GOSHIM_DEPS ) ) > $@
0 commit comments