From 2a4bf8e5667e3da79142aa9037623c9e661feb88 Mon Sep 17 00:00:00 2001 From: Matthew B White Date: Thu, 31 Mar 2022 16:57:24 +0100 Subject: [PATCH] CCAAS Builders - adjust the makefile to have targets for linux-amd64/darwin-amd64/windows-amd64 - adjust the packaging as suggested in issue 3286 Signed-off-by: Matthew B White --- Makefile | 21 ++++++++++++------- ci/scripts/create_binary_package.sh | 11 +++++++--- images/peer/Dockerfile | 2 +- .../externalbuilders/binary/bin/detect | 2 ++ integration/nwo/network.go | 2 +- 5 files changed, 26 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index 5278b6b7325..957a4da82a0 100644 --- a/Makefile +++ b/Makefile @@ -265,7 +265,7 @@ release-all: check-go-version $(RELEASE_PLATFORMS:%=release/%) .PHONY: $(RELEASE_PLATFORMS:%=release/%) $(RELEASE_PLATFORMS:%=release/%): GO_LDFLAGS = $(METADATA_VAR:%=-X $(PKGNAME)/common/metadata.%) $(RELEASE_PLATFORMS:%=release/%): release/%: $(foreach exe,$(RELEASE_EXES),release/%/bin/$(exe)) -$(RELEASE_PLATFORMS:%=release/%): ccaasbuilder +$(RELEASE_PLATFORMS:%=release/%): release/%: ccaasbuilder/% # explicit targets for all platform executables $(foreach platform, $(RELEASE_PLATFORMS), $(RELEASE_EXES:%=release/$(platform)/bin/%)): @@ -347,11 +347,18 @@ docs: @docker run --rm -v $$(pwd):/docs n42org/tox:3.4.0 sh -c 'cd /docs && tox -e docs' .PHONY: ccaasbuilder-clean -ccaasbuilder-clean: - rm -rf $(MARCH:%=release/%)/bin/ccaas_builder +ccaasbuilder-clean/%: + $(eval platform = $(patsubst ccaasbuilder/%,%,$@) ) + cd ccaas_builder && rm -rf $(strip $(platform)) .PHONY: ccaasbuilder -ccaasbuilder: ccaasbuilder-clean - cd ccaas_builder && go test -v ./cmd/detect && go build -o ../$(MARCH:%=release/%)/bin/ccaas_builder/bin/ -buildvcs=false ./cmd/detect/ - cd ccaas_builder && go test -v ./cmd/build && go build -o ../$(MARCH:%=release/%)/bin/ccaas_builder/bin/ -buildvcs=false ./cmd/build/ - cd ccaas_builder && go test -v ./cmd/release && go build -o ../$(MARCH:%=release/%)/bin/ccaas_builder/bin/ -buildvcs=false ./cmd/release/ +ccaasbuilder/%: ccaasbuilder-clean + $(eval platform = $(patsubst ccaasbuilder/%,%,$@) ) + $(eval GOOS = $(word 1,$(subst -, ,$(platform)))) + $(eval GOARCH = $(word 2,$(subst -, ,$(platform)))) + @mkdir -p ../release/$(strip $(platform))/builders/ccaas/bin + cd ccaas_builder && go test -v ./cmd/detect && GOOS=$(GOOS) GOARCH=$(GOARCH) go build -o ../release/$(strip $(platform))/builders/ccaas/bin/ ./cmd/detect/ + cd ccaas_builder && go test -v ./cmd/build && GOOS=$(GOOS) GOARCH=$(GOARCH) go build -o ../release/$(strip $(platform))/builders/ccaas/bin/ ./cmd/build/ + cd ccaas_builder && go test -v ./cmd/release && GOOS=$(GOOS) GOARCH=$(GOARCH) go build -o ../release/$(strip $(platform))/builders/ccaas/bin/ ./cmd/release/ + +ccaasbuilder: ccaasbuilder/$(MARCH) \ No newline at end of file diff --git a/ci/scripts/create_binary_package.sh b/ci/scripts/create_binary_package.sh index e3d1ce3102f..13277b095c5 100755 --- a/ci/scripts/create_binary_package.sh +++ b/ci/scripts/create_binary_package.sh @@ -5,10 +5,15 @@ set -euo pipefail make "release/${TARGET}" -mkdir "release/${TARGET}/config" -mv sampleconfig/*yaml "release/${TARGET}/config" +mkdir -p "release/${TARGET}/config" +mkdir -p "release/${TARGET}/builders/ccaas" + +# cp not move otherwise this breaks your source tree +cp sampleconfig/*yaml "release/${TARGET}/config" +cp ccaas_builder/bin/${TARGET}/* "release/${TARGET}/builders/ccaas" + cd "release/${TARGET}" if [ "$TARGET" == "windows-amd64" ]; then for FILE in bin/*; do mv $FILE $FILE.exe; done fi -tar -czvf "hyperledger-fabric-${TARGET}-${RELEASE}.tar.gz" bin config +tar -czvf "hyperledger-fabric-${TARGET}-${RELEASE}.tar.gz" bin config builders diff --git a/images/peer/Dockerfile b/images/peer/Dockerfile index 9bd45d8031a..34f44e62dfe 100644 --- a/images/peer/Dockerfile +++ b/images/peer/Dockerfile @@ -35,6 +35,6 @@ VOLUME /var/hyperledger COPY --from=peer /go/src/github.com/hyperledger/fabric/build/bin /usr/local/bin COPY --from=peer /go/src/github.com/hyperledger/fabric/sampleconfig/msp ${FABRIC_CFG_PATH}/msp COPY --from=peer /go/src/github.com/hyperledger/fabric/sampleconfig/core.yaml ${FABRIC_CFG_PATH}/core.yaml -COPY --from=peer /go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/ccaas_builder/bin/ /opt/hyperledger/ccaas_builder/bin/ +COPY --from=peer /go/src/github.com/hyperledger/fabric/ccaas_builder/bin/ /opt/hyperledger/ccaas_builder/bin/ EXPOSE 7051 CMD ["peer","node","start"] diff --git a/integration/externalbuilders/binary/bin/detect b/integration/externalbuilders/binary/bin/detect index 8028a06efc6..7d71c616b45 100755 --- a/integration/externalbuilders/binary/bin/detect +++ b/integration/externalbuilders/binary/bin/detect @@ -18,5 +18,7 @@ if [ "$(jq -r .type "$META/metadata.json")" == "binary" ]; then exit 0 fi +>&2 cat $META/metadata.json >&2 echo "binary is the only supported type" + exit 1 diff --git a/integration/nwo/network.go b/integration/nwo/network.go index 18dc0336f7c..ac165566843 100644 --- a/integration/nwo/network.go +++ b/integration/nwo/network.go @@ -212,7 +212,7 @@ func New(c *Config, rootDir string, dockerClient *docker.Client, startPort int, Name: "binary", PropagateEnvironment: []string{"GOPROXY"}, }, { - Path: filepath.Join(cwd, "..", "..", "release", fmt.Sprintf("%s-%s", runtime.GOOS, runtime.GOARCH), "bin", "ccaas_builder"), + Path: filepath.Join(cwd, "..", "..", "release", fmt.Sprintf("%s-%s", runtime.GOOS, runtime.GOARCH), "builders", "ccaas"), Name: "ccaas", PropagateEnvironment: []string{"CHAINCODE_AS_A_SERVICE_BUILDER_CONFIG"}, }}