diff --git a/.circleci/config.yml b/.circleci/config.yml index c2c41e5e9..4ae72ad75 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -37,15 +37,19 @@ commands: parameters: GOOS: type: string + GOARCH: + default: "amd64" + type: string steps: - checkout - - run: GOOS=<< parameters.GOOS >> go build -ldflags="-s -w -X github.com/hashicorp/packer/version.GitCommit=${CIRCLE_SHA1}" -o ./pkg/packer_<< parameters.GOOS >>_$(go env GOARCH) . - - run: zip ./pkg/packer_<< parameters.GOOS >>_$(go env GOARCH).zip ./pkg/packer_<< parameters.GOOS >>_$(go env GOARCH) - - run: rm ./pkg/packer_<< parameters.GOOS >>_$(go env GOARCH) + - run: GOOS=<< parameters.GOOS >> GOARCH=<> go build -ldflags="-s -w -X github.com/hashicorp/packer/version.GitCommit=${CIRCLE_SHA1}" -o ./pkg/packer_<< parameters.GOOS >>_<< parameters.GOARCH >> . + - run: zip ./pkg/packer_<< parameters.GOOS >>_<< parameters.GOARCH >>.zip ./pkg/packer_<< parameters.GOOS >>_<< parameters.GOARCH >> + - run: rm ./pkg/packer_<< parameters.GOOS >>_<< parameters.GOARCH >> - persist_to_workspace: root: . paths: - ./pkg/ + # Golang CircleCI 2.0 configuration file # # Check https://circleci.com/docs/2.0/language-go/ for more details @@ -123,6 +127,13 @@ jobs: steps: - build-and-persist-packer-binary: GOOS: darwin + build_darwin_arm64: + executor: golang + working_directory: /go/src/github.com/hashicorp/packer + steps: + - build-and-persist-packer-binary: + GOOS: darwin + GOARCH: arm64 build_freebsd: executor: golang working_directory: /go/src/github.com/hashicorp/packer @@ -203,6 +214,7 @@ workflows: jobs: - build_linux - build_darwin + - build_darwin_arm64 - build_windows - build_freebsd - build_openbsd @@ -211,6 +223,7 @@ workflows: requires: - build_linux - build_darwin + - build_darwin_arm64 - build_windows - build_freebsd - build_openbsd diff --git a/scripts/build.sh b/scripts/build.sh index 337596313..b72be9038 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -4,7 +4,7 @@ # Determine the arch/os combos we're building for ALL_XC_ARCH="386 amd64 arm arm64 ppc64le mips mips64 mipsle mipsle64 s390x" ALL_XC_OS="linux darwin windows freebsd openbsd solaris" -SKIPPED_OSARCH="!darwin/arm !darwin/arm64 !freebsd/arm !freebsd/arm64" +SKIPPED_OSARCH="!darwin/arm !freebsd/arm !freebsd/arm64" # Exit immediately if a command fails set -e