From 5675026e23e454873e5583d859d4b0fe5442a4d6 Mon Sep 17 00:00:00 2001 From: Alvin Huang Date: Wed, 20 Mar 2019 15:19:17 -0400 Subject: [PATCH 1/2] add optional parallel flag to gox --- build-support/functions/20-build.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/build-support/functions/20-build.sh b/build-support/functions/20-build.sh index 9dd02bf36c..21dd4ec4c1 100644 --- a/build-support/functions/20-build.sh +++ b/build-support/functions/20-build.sh @@ -367,7 +367,8 @@ function build_consul_local { # If the XC_OS or the XC_ARCH environment vars are present then only those platforms/architectures # will be built. Otherwise all supported platform/architectures are built # The NOGOX environment variable will be used if present. This will prevent using gox and instead - # build with go install + # build with go install. + # The GOXPARALLEL environment variable is used if set if ! test -d "$1" then @@ -427,6 +428,7 @@ function build_consul_local { -arch="${build_arch}" \ -osarch="!darwin/arm !darwin/arm64 !freebsd/arm" \ -ldflags="${GOLDFLAGS}" \ + -parallel="${GOXPARALLEL:-"-1"}" \ -output "pkg.bin.new/${extra_dir}{{.OS}}_{{.Arch}}/consul" \ -tags="${GOTAGS}" \ . From ee9346f4c30f6647fda68ea6b0545aca07939335 Mon Sep 17 00:00:00 2001 From: Alvin Huang Date: Wed, 20 Mar 2019 15:24:17 -0400 Subject: [PATCH 2/2] adding distro builds to circleci --- .circleci/config.yml | 46 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9749f00356..486cea1acd 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -22,6 +22,43 @@ references: GIT_COMMITTER_NAME: circleci-consul jobs: + # build all distros + build-distros: &build-distros + docker: + - image: *GOLANG_IMAGE + environment: &build-env + GOXPARALLEL: 2 # CircleCI containers are 2 CPU x 4GB RAM + working_directory: /go/src/github.com/hashicorp/consul + steps: + - checkout + - run: make tools + - run: ./build-support/scripts/build-local.sh + + # save dev build to CircleCI + - store_artifacts: + path: ./pkg/bin + + build-386: + <<: *build-distros + environment: + <<: *build-env + XC_OS: "darwin freebsd linux windows" + XC_ARCH: "386" + + build-amd64: + <<: *build-distros + environment: + <<: *build-env + XC_OS: "darwin freebsd linux solaris windows" + XC_ARCH: "amd64" + + build-arm-arm64: + <<: *build-distros + environment: + <<: *build-env + XC_OS: linux + XC_ARCH: "arm arm64" + dev-build: docker: - image: *GOLANG_IMAGE @@ -30,10 +67,6 @@ jobs: - checkout - run: make dev - # save dev build to CircleCI - - store_artifacts: - path: /go/bin/consul - # save dev build to pass to downstream jobs - persist_to_workspace: root: /go/bin @@ -178,6 +211,11 @@ jobs: workflows: version: 2 + build-distros: + jobs: + - build-386 + - build-amd64 + - build-arm-arm64 test-integrations: jobs: - dev-build