From c54edf761b4077346da63ed8ef2d4434761b1ae8 Mon Sep 17 00:00:00 2001 From: Megan Marsh Date: Wed, 8 May 2019 16:37:23 -0700 Subject: [PATCH 1/9] get circle to save dev builds for windows, linux, and darwin --- .circleci/config.yml | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7d9b9dff6..3c27f5e67 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -46,17 +46,33 @@ jobs: <<: *golang environment: GOOS: openbsd - generate_binaries: + save_windows_binary: <<: *golang steps: - checkout - - run: PATH=$PATH:$GOPATH/bin XC_ARCH=amd64 XC_OS="linux windows darwin" GOLDFLAGS="-s -w" ./scripts/build.sh - - run: mkdir ./pkg/zipped_packers - - run: zip ./pkg/zipped_packers/packer_darwin.zip ./pkg/darwin_amd64/packer - - run: zip ./pkg/zipped_packers/packer_windows.zip ./pkg/windows_amd64/packer - - run: zip ./pkg/zipped_packers/packer_linux.zip ./pkg/linux_amd64/packer + - run: go get github.com/mitchellh/gox + - run: PATH=$PATH:$GOPATH/bin XC_ARCH=amd64 XC_OS="windows" GOLDFLAGS="-s -w" ./scripts/build.sh + - run: zip ./pkg/packer_windows.zip ./pkg/windows_amd64/packer.exe - store_artifacts: - path: ./pkg/zipped_packers + path: ./pkg/packer_windows.zip + save_linux_binary: + <<: *golang + steps: + - checkout + - run: go get github.com/mitchellh/gox + - run: PATH=$PATH:$GOPATH/bin XC_ARCH=amd64 XC_OS="linux" GOLDFLAGS="-s -w" ./scripts/build.sh + - run: zip ./pkg/packer_linux.zip ./pkg/linux_amd64/packer + - store_artifacts: + path: ./pkg/packer_linux.zip + save_darwin_binary: + <<: *golang + steps: + - checkout + - run: go get github.com/mitchellh/gox + - run: PATH=$PATH:$GOPATH/bin XC_ARCH=amd64 XC_OS="darwin" GOLDFLAGS="-s -w" ./scripts/build.sh + - run: zip ./pkg/packer_darwin.zip ./pkg/darwin_amd64/packer + - store_artifacts: + path: ./pkg/packer_darwin.zip workflows: version: 2 @@ -70,4 +86,6 @@ workflows: - build_freebsd - build_openbsd - build_solaris - - generate_binaries + - save_darwin_binary + - save_linux_binary + - save_windows_binary From 9ff511b4d6e0df62600fe66e9dc8b0bb964bcdb3 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Thu, 9 May 2019 10:28:55 +0200 Subject: [PATCH 2/9] store/export binaries in zip files for each GOOS/GOARCH --- .circleci/config.yml | 36 +++++------------------------------- 1 file changed, 5 insertions(+), 31 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3c27f5e67..5e0d138e0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -4,7 +4,11 @@ defaults: &golang working_directory: /go/src/github.com/hashicorp/packer steps: - checkout - - run: go build -o pkg/packer . + - run: go build -o ./pkg/packer_$(go env GOOS)_$(go env GOARCH) . + - run: zip ./pkg/packer_$(go env GOOS)_$(go env GOARCH) ./pkg/ + - run: rm ./pkg/packer_$(go env GOOS)_$(go env GOARCH) + - store_artifacts: + path: ./pkg/ # Golang CircleCI 2.0 configuration file # @@ -46,33 +50,6 @@ jobs: <<: *golang environment: GOOS: openbsd - save_windows_binary: - <<: *golang - steps: - - checkout - - run: go get github.com/mitchellh/gox - - run: PATH=$PATH:$GOPATH/bin XC_ARCH=amd64 XC_OS="windows" GOLDFLAGS="-s -w" ./scripts/build.sh - - run: zip ./pkg/packer_windows.zip ./pkg/windows_amd64/packer.exe - - store_artifacts: - path: ./pkg/packer_windows.zip - save_linux_binary: - <<: *golang - steps: - - checkout - - run: go get github.com/mitchellh/gox - - run: PATH=$PATH:$GOPATH/bin XC_ARCH=amd64 XC_OS="linux" GOLDFLAGS="-s -w" ./scripts/build.sh - - run: zip ./pkg/packer_linux.zip ./pkg/linux_amd64/packer - - store_artifacts: - path: ./pkg/packer_linux.zip - save_darwin_binary: - <<: *golang - steps: - - checkout - - run: go get github.com/mitchellh/gox - - run: PATH=$PATH:$GOPATH/bin XC_ARCH=amd64 XC_OS="darwin" GOLDFLAGS="-s -w" ./scripts/build.sh - - run: zip ./pkg/packer_darwin.zip ./pkg/darwin_amd64/packer - - store_artifacts: - path: ./pkg/packer_darwin.zip workflows: version: 2 @@ -86,6 +63,3 @@ workflows: - build_freebsd - build_openbsd - build_solaris - - save_darwin_binary - - save_linux_binary - - save_windows_binary From 970ae016c01f175401599c650dd1df1848319456 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Thu, 9 May 2019 10:40:57 +0200 Subject: [PATCH 3/9] store artifacts in a single export --- .circleci/config.yml | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5e0d138e0..1f32cf086 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -7,9 +7,10 @@ defaults: &golang - run: go build -o ./pkg/packer_$(go env GOOS)_$(go env GOARCH) . - run: zip ./pkg/packer_$(go env GOOS)_$(go env GOARCH) ./pkg/ - run: rm ./pkg/packer_$(go env GOOS)_$(go env GOARCH) - - store_artifacts: - path: ./pkg/ - + - persist_to_workspace: + root: . + paths: + - ./pkg/ # Golang CircleCI 2.0 configuration file # # Check https://circleci.com/docs/2.0/language-go/ for more details @@ -50,7 +51,13 @@ jobs: <<: *golang environment: GOOS: openbsd - + store_artifacts: + <<: *golang + steps: + - attach_workspace: + at: . + - store_artifacts: + path: ./pkg/ workflows: version: 2 build_and_check_vendor_vs_module: @@ -63,3 +70,11 @@ workflows: - build_freebsd - build_openbsd - build_solaris + - store_artifacts: + requires: + - build_linux + - build_darwin + - build_windows + - build_freebsd + - build_openbsd + - build_solaris From b3095bc33822ba811604ef3219e1004495d5a4dd Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Thu, 9 May 2019 11:37:34 +0200 Subject: [PATCH 4/9] store artifacts in the root folder --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1f32cf086..c144990fb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -58,6 +58,7 @@ jobs: at: . - store_artifacts: path: ./pkg/ + destination: / workflows: version: 2 build_and_check_vendor_vs_module: From e368910bb543104499b51761914b32fae68a71bf Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Thu, 9 May 2019 11:47:03 +0200 Subject: [PATCH 5/9] make store_artifacts step manually approved --- .circleci/config.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c144990fb..66fb97dcc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -71,7 +71,8 @@ workflows: - build_freebsd - build_openbsd - build_solaris - - store_artifacts: + - request-binaries: + type: approval requires: - build_linux - build_darwin @@ -79,3 +80,6 @@ workflows: - build_freebsd - build_openbsd - build_solaris + - store_artifacts: + requires: + - request-binaries From 84a11b0f8f04660c4329eaff119cb42318e1c76c Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Thu, 9 May 2019 15:03:54 +0200 Subject: [PATCH 6/9] Revert "make store_artifacts step manually approved" This reverts commit 629d8313aba05c649dd96a02c33a394344fc3dc7. --- .circleci/config.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 66fb97dcc..c144990fb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -71,8 +71,7 @@ workflows: - build_freebsd - build_openbsd - build_solaris - - request-binaries: - type: approval + - store_artifacts: requires: - build_linux - build_darwin @@ -80,6 +79,3 @@ workflows: - build_freebsd - build_openbsd - build_solaris - - store_artifacts: - requires: - - request-binaries From 48eaf9ea5f73fcc2077665b8a1ab2368935491aa Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Thu, 9 May 2019 15:04:40 +0200 Subject: [PATCH 7/9] circle-ci: publish 'nightly' tag binaries to github --- .circleci/config.yml | 50 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c144990fb..a248664e3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -59,18 +59,45 @@ jobs: - store_artifacts: path: ./pkg/ destination: / + publish-github-tag-release: + docker: + - image: cibuilds/github:0.10 + working_directory: /go/src/github.com/hashicorp/packer + steps: + - attach_workspace: + at: . + - run: | + ghr -t ${GITHUB_TOKEN_AZR} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -delete ${CIRCLE_TAG} ./pkg/ workflows: version: 2 build_and_check_vendor_vs_module: jobs: - build - check-vendor-vs-mod - - build_linux - - build_darwin - - build_windows - - build_freebsd - - build_openbsd - - build_solaris + - build_linux: + filters: + tags: + only: /.*/ + - build_darwin: + filters: + tags: + only: /.*/ + - build_windows: + filters: + tags: + only: /.*/ + - build_freebsd: + filters: + tags: + only: /.*/ + - build_openbsd: + filters: + tags: + only: /.*/ + - build_solaris: + filters: + tags: + only: /.*/ - store_artifacts: requires: - build_linux @@ -79,3 +106,14 @@ workflows: - build_freebsd - build_openbsd - build_solaris + - publish-github-tag-release: + requires: + - build_linux + - build_darwin + - build_windows + - build_freebsd + - build_openbsd + - build_solaris + filters: + tags: + only: nightly From 03e3c32f4e6c3fef5be262f7683592b90a9ca587 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Thu, 9 May 2019 16:08:24 +0200 Subject: [PATCH 8/9] actually zip binary now --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a248664e3..af5422608 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,7 +5,7 @@ defaults: &golang steps: - checkout - run: go build -o ./pkg/packer_$(go env GOOS)_$(go env GOARCH) . - - run: zip ./pkg/packer_$(go env GOOS)_$(go env GOARCH) ./pkg/ + - run: zip ./pkg/packer_$(go env GOOS)_$(go env GOARCH).zip ./pkg/packer_$(go env GOOS)_$(go env GOARCH) - run: rm ./pkg/packer_$(go env GOOS)_$(go env GOARCH) - persist_to_workspace: root: . From 65d6677eb75db7bdb37e7876312be67983c96968 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Thu, 9 May 2019 16:15:03 +0200 Subject: [PATCH 9/9] don't try to push binaries for branches --- .circleci/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index af5422608..05d4bcde0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -115,5 +115,7 @@ workflows: - build_openbsd - build_solaris filters: + branches: + ignore: /.*/ tags: only: nightly