From 09e0f2b93bf7aeb4e72d45710e20fcf15011d7aa Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 12:00:15 +0200 Subject: [PATCH 01/49] makefile: mode-check ignore ./website/tmp folder --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 773dfc47d..98cfa9ac8 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ GOPATH=$(shell go env GOPATH) # gofmt UNFORMATTED_FILES=$(shell find . -not -path "./vendor/*" -name "*.go" | xargs gofmt -s -l) -EXECUTABLE_FILES=$(shell find . -type f -perm +111 | egrep -v '^\./(website/vendor|vendor/|\.git|bin/|scripts/|pkg/)' | egrep -v '.*(\.sh|\.bats|\.git)' | egrep -v './provisioner/ansible/test-fixtures/exit1') +EXECUTABLE_FILES=$(shell find . -type f -perm +111 | egrep -v '^\./(website/[vendor|tmp]|vendor/|\.git|bin/|scripts/|pkg/)' | egrep -v '.*(\.sh|\.bats|\.git)' | egrep -v './provisioner/ansible/test-fixtures/exit1') # Get the git commit GIT_DIRTY=$(shell test -n "`git status --porcelain`" && echo "+CHANGES" || true) From 389280a5306f24be1a182014c2d0e0de7df7f8d7 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 12:04:41 +0200 Subject: [PATCH 02/49] makefile: refactor vet into it's own command --- Makefile | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 98cfa9ac8..43fbe1edf 100644 --- a/Makefile +++ b/Makefile @@ -100,12 +100,8 @@ generate: deps ## Generate dynamically generated code goimports -w common/bootcommand/boot_command.go gofmt -w command/plugin.go -test: deps fmt-check mode-check ## Run unit tests +test: deps fmt-check mode-check vet ## Run unit tests @go test $(TEST) $(TESTARGS) -timeout=2m - @go tool vet $(VET) ; if [ $$? -eq 1 ]; then \ - echo "ERROR: Vet found problems in the code."; \ - exit 1; \ - fi # testacc runs acceptance tests testacc: deps generate ## Run acceptance tests @@ -118,6 +114,12 @@ testrace: deps ## Test for race conditions updatedeps: @echo "INFO: Packer deps are managed by govendor. See .github/CONTRIBUTING.md" +vet: ## Vet Go code + @go tool vet $(VET) ; if [ $$? -eq 1 ]; then \ + echo "ERROR: Vet found problems in the code."; \ + exit 1; \ + fi + help: @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' From 8936ddaedf6c546d180a934b684450d7e5c7c887 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 12:05:05 +0200 Subject: [PATCH 03/49] makefile: testrace now uses `deps fmt-check mode-check vet` --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 43fbe1edf..a043b7570 100644 --- a/Makefile +++ b/Makefile @@ -108,7 +108,7 @@ testacc: deps generate ## Run acceptance tests @echo "WARN: Acceptance tests will take a long time to run and may cost money. Ctrl-C if you want to cancel." PACKER_ACC=1 go test -v $(TEST) $(TESTARGS) -timeout=45m -testrace: deps ## Test for race conditions +testrace: deps fmt-check mode-check vet ## Test with race detection enabled @go test -race $(TEST) $(TESTARGS) -timeout=2m updatedeps: From ac29ee59f813f73eb52960835fca833d85dc2d8d Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 12:08:52 +0200 Subject: [PATCH 04/49] makefile: ci now runs only testrace, default runs testrace --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index a043b7570..99d794038 100644 --- a/Makefile +++ b/Makefile @@ -21,9 +21,9 @@ GOLDFLAGS=-X $(GIT_IMPORT).GitCommit=$(GIT_COMMIT)$(GIT_DIRTY) export GOLDFLAGS -default: deps generate test dev +default: deps generate testrace dev -ci: deps test +ci: testrace release: deps test releasebin package ## Build a release build From 6c7ee82ab7e9b1360e5432b9abd30051a90c14e5 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 12:16:49 +0200 Subject: [PATCH 05/49] use make in appveyor too --- appveyor.yml | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 60b78ccdc..616a0bac5 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -20,18 +20,11 @@ install: - echo %Path% - go version - go env - - go get github.com/mitchellh/gox - - go get golang.org/x/tools/cmd/stringer + - make deps build_script: - git rev-parse HEAD - # go test $(go list ./... | grep -v vendor) - - ps: | - go.exe test (go.exe list ./... ` - |? { -not $_.Contains('/vendor/') } ` - |? { $_ -ne 'github.com/hashicorp/packer/builder/parallels/common' } ` - |? { $_ -ne 'github.com/hashicorp/packer/common' }` - |? { $_ -ne 'github.com/hashicorp/packer/provisioner/ansible' }) + - ps: make ci test: off From b92f6e1f49a78786e7fb3bbcd73f905590ef150c Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 12:47:01 +0200 Subject: [PATCH 06/49] appveyor: install make --- appveyor.yml | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 616a0bac5..c1d1b9ad9 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,5 @@ # appveyor.yml reference : http://www.appveyor.com/docs/appveyor-yml +# and https://github.com/unicorn-engine/unicorn/blob/master/.appveyor.yml version: "{build}" @@ -12,20 +13,36 @@ os: Windows Server 2012 R2 environment: GOPATH: c:\gopath + CYG_MIRROR: http://cygwin.mirror.constant.com + CYG_PACKAGES: make + matrix: + - CYG_ROOT: C:\cygwin64 + CYG_CACHE: C:\cygwin64\var\cache\setup + CYG_SETUP: setup-x86_64.exe + BASH: C:\cygwin64\bin\bash + - CYG_ROOT: C:\cygwin + CYG_CACHE: C:\cygwin\var\cache\setup + CYG_SETUP: setup-x86.exe + BASH: C:\cygwin\bin\bash + +# Cache Cygwin files to speed up build +cache: + - '%CYG_CACHE%' clone_folder: c:\gopath\src\github.com\hashicorp\packer install: - - set GO15VENDOREXPERIMENT=1 + - ps: if (Test-Path Env:\CYG_ROOT) { Start-FileDownload "https://cygwin.com/$env:CYG_SETUP" -FileName "$env:CYG_SETUP" } + - %CYG_SETUP% --quiet-mode --no-shortcuts --only-site --root "%CYG_ROOT%" --site "%CYG_MIRROR%" --local-package-dir "%CYG_CACHE%" --packages "%CYG_PACKAGES%" --upgrade-also - echo %Path% - go version - go env - - make deps build_script: - git rev-parse HEAD - - ps: make ci + - make deps -test: off +test_script: + - make ci deploy: off From 597b03dfd0a88eb23848abd97f0e2a0ff3aa8a91 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 12:48:34 +0200 Subject: [PATCH 07/49] remove os setting --- appveyor.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index c1d1b9ad9..9ee8eda76 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -9,8 +9,6 @@ branches: only: - master -os: Windows Server 2012 R2 - environment: GOPATH: c:\gopath CYG_MIRROR: http://cygwin.mirror.constant.com From 37b85323fca1208fc42633e08582b9ab14269d74 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 12:48:48 +0200 Subject: [PATCH 08/49] fix cariage returns in git --- appveyor.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/appveyor.yml b/appveyor.yml index 9ee8eda76..b36d8ce86 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -23,6 +23,11 @@ environment: CYG_SETUP: setup-x86.exe BASH: C:\cygwin\bin\bash +init: + # Carriage returns are bad + - cmd: + 'git config --global core.autocrlf input' + # Cache Cygwin files to speed up build cache: - '%CYG_CACHE%' From 6406f65e372aad9d65111e05490859668631242b Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 12:57:02 +0200 Subject: [PATCH 09/49] fix bash calls --- appveyor.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index b36d8ce86..25e2aa3a4 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -34,18 +34,19 @@ cache: clone_folder: c:\gopath\src\github.com\hashicorp\packer +# Install needed build dependencies install: - ps: if (Test-Path Env:\CYG_ROOT) { Start-FileDownload "https://cygwin.com/$env:CYG_SETUP" -FileName "$env:CYG_SETUP" } - - %CYG_SETUP% --quiet-mode --no-shortcuts --only-site --root "%CYG_ROOT%" --site "%CYG_MIRROR%" --local-package-dir "%CYG_CACHE%" --packages "%CYG_PACKAGES%" --upgrade-also + - if defined CYG_ROOT (%CYG_SETUP% --quiet-mode --no-shortcuts --only-site --root "%CYG_ROOT%" --site "%CYG_MIRROR%" --local-package-dir "%CYG_CACHE%" --packages "%CYG_PACKAGES%" --upgrade-also) - echo %Path% - go version - go env build_script: - git rev-parse HEAD - - make deps + - (%BASH% -lc "make deps") test_script: - - make ci + - (%BASH% -lc "make ci") deploy: off From f047b4e0052a5c13a73fcc3d478886268d2ed569 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 13:01:34 +0200 Subject: [PATCH 10/49] appveyor.yml: add APPVEYOR_BUILD_SYS --- appveyor.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 25e2aa3a4..285f49c52 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -14,11 +14,13 @@ environment: CYG_MIRROR: http://cygwin.mirror.constant.com CYG_PACKAGES: make matrix: - - CYG_ROOT: C:\cygwin64 + - APPVEYOR_BUILD_SYS: Cygwin + CYG_ROOT: C:\cygwin64 CYG_CACHE: C:\cygwin64\var\cache\setup CYG_SETUP: setup-x86_64.exe BASH: C:\cygwin64\bin\bash - - CYG_ROOT: C:\cygwin + - APPVEYOR_BUILD_SYS: Cygwin + CYG_ROOT: C:\cygwin CYG_CACHE: C:\cygwin\var\cache\setup CYG_SETUP: setup-x86.exe BASH: C:\cygwin\bin\bash From b1cd9bd05f5617239fa1415cb3b08122d4a34bee Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 13:02:30 +0200 Subject: [PATCH 11/49] quote calls --- appveyor.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 285f49c52..0a9e5929c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -39,16 +39,16 @@ clone_folder: c:\gopath\src\github.com\hashicorp\packer # Install needed build dependencies install: - ps: if (Test-Path Env:\CYG_ROOT) { Start-FileDownload "https://cygwin.com/$env:CYG_SETUP" -FileName "$env:CYG_SETUP" } - - if defined CYG_ROOT (%CYG_SETUP% --quiet-mode --no-shortcuts --only-site --root "%CYG_ROOT%" --site "%CYG_MIRROR%" --local-package-dir "%CYG_CACHE%" --packages "%CYG_PACKAGES%" --upgrade-also) + - '%CYG_SETUP% --quiet-mode --no-shortcuts --only-site --root "%CYG_ROOT%" --site "%CYG_MIRROR%" --local-package-dir "%CYG_CACHE%" --packages "%CYG_PACKAGES%" --upgrade-also' - echo %Path% - go version - go env build_script: - git rev-parse HEAD - - (%BASH% -lc "make deps") + - '%BASH% -lc "make deps"' test_script: - - (%BASH% -lc "make ci") + - '%BASH% -lc "make ci"' deploy: off From d27293ffa828c424d18db5e8eb43259eba9dd133 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 13:19:19 +0200 Subject: [PATCH 12/49] remove if case --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 0a9e5929c..46637f256 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -38,7 +38,7 @@ clone_folder: c:\gopath\src\github.com\hashicorp\packer # Install needed build dependencies install: - - ps: if (Test-Path Env:\CYG_ROOT) { Start-FileDownload "https://cygwin.com/$env:CYG_SETUP" -FileName "$env:CYG_SETUP" } + - ps: Start-FileDownload "https://cygwin.com/$env:CYG_SETUP" -FileName "$env:CYG_SETUP" - '%CYG_SETUP% --quiet-mode --no-shortcuts --only-site --root "%CYG_ROOT%" --site "%CYG_MIRROR%" --local-package-dir "%CYG_CACHE%" --packages "%CYG_PACKAGES%" --upgrade-also' - echo %Path% - go version From f4c7fdb775f5c6be0675a7b78c8e728cf7e38b76 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 13:44:36 +0200 Subject: [PATCH 13/49] use curl instead of ps: Start-FileDownload --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 46637f256..021ff00e0 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -38,7 +38,7 @@ clone_folder: c:\gopath\src\github.com\hashicorp\packer # Install needed build dependencies install: - - ps: Start-FileDownload "https://cygwin.com/$env:CYG_SETUP" -FileName "$env:CYG_SETUP" + - curl -fsS -o %CYG_SETUP% "https://cygwin.com/%CYG_SETUP%" - '%CYG_SETUP% --quiet-mode --no-shortcuts --only-site --root "%CYG_ROOT%" --site "%CYG_MIRROR%" --local-package-dir "%CYG_CACHE%" --packages "%CYG_PACKAGES%" --upgrade-also' - echo %Path% - go version From 161eb23978e33c750b97b9c845be46755487f257 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 14:59:16 +0200 Subject: [PATCH 14/49] makefile: put .PHONY at the top ? --- Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 99d794038..470c3ec42 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,9 @@ GOLDFLAGS=-X $(GIT_IMPORT).GitCommit=$(GIT_COMMIT)$(GIT_DIRTY) export GOLDFLAGS -default: deps generate testrace dev +.PHONY: bin checkversion ci default deps fmt fmt-docs fmt-examples generate releasebin test testacc testrace updatedeps + +default: deps generate testrace dev releasebin package dev fmt fmt-check mode-check fmt-docs fmt-examples ci: testrace @@ -122,5 +124,3 @@ vet: ## Vet Go code help: @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' - -.PHONY: bin checkversion ci default deps fmt fmt-docs fmt-examples generate releasebin test testacc testrace updatedeps From 13a63b51b827b2c4039757c3a6efbb06c74a8bdc Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 15:01:35 +0200 Subject: [PATCH 15/49] run make --version --- appveyor.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/appveyor.yml b/appveyor.yml index 021ff00e0..bb8c43c4c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -46,6 +46,7 @@ install: build_script: - git rev-parse HEAD + - '%BASH% -lc "make --version"' - '%BASH% -lc "make deps"' test_script: From eddd362235398153c9bc1fbd7962b212aa806655 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 15:04:49 +0200 Subject: [PATCH 16/49] debug path --- appveyor.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/appveyor.yml b/appveyor.yml index bb8c43c4c..e64f240ed 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -46,6 +46,8 @@ install: build_script: - git rev-parse HEAD + - '%BASH% -lc "pwd"' + - '%BASH% -lc "cat Makefile"' - '%BASH% -lc "make --version"' - '%BASH% -lc "make deps"' From 61c5bb8bfe90b76c670e434219239e4ad80c3879 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 15:07:48 +0200 Subject: [PATCH 17/49] don't build on win32 for now --- appveyor.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index e64f240ed..10bab4d3a 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -19,11 +19,11 @@ environment: CYG_CACHE: C:\cygwin64\var\cache\setup CYG_SETUP: setup-x86_64.exe BASH: C:\cygwin64\bin\bash - - APPVEYOR_BUILD_SYS: Cygwin - CYG_ROOT: C:\cygwin - CYG_CACHE: C:\cygwin\var\cache\setup - CYG_SETUP: setup-x86.exe - BASH: C:\cygwin\bin\bash + # - APPVEYOR_BUILD_SYS: Cygwin + # CYG_ROOT: C:\cygwin + # CYG_CACHE: C:\cygwin\var\cache\setup + # CYG_SETUP: setup-x86.exe + # BASH: C:\cygwin\bin\bash init: # Carriage returns are bad From 943900a5a79e9c6170e565389832c4a774d51975 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 15:13:26 +0200 Subject: [PATCH 18/49] go home --- appveyor.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/appveyor.yml b/appveyor.yml index 10bab4d3a..701b191b9 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -13,6 +13,7 @@ environment: GOPATH: c:\gopath CYG_MIRROR: http://cygwin.mirror.constant.com CYG_PACKAGES: make + HOME: c:\gopath\src\github.com\hashicorp\packer matrix: - APPVEYOR_BUILD_SYS: Cygwin CYG_ROOT: C:\cygwin64 @@ -47,6 +48,8 @@ install: build_script: - git rev-parse HEAD - '%BASH% -lc "pwd"' + - '%BASH% -lc "cd"' + - '%BASH% -lc "pwd"' - '%BASH% -lc "cat Makefile"' - '%BASH% -lc "make --version"' - '%BASH% -lc "make deps"' From 22ba06725d321cd117d96826bc40d0f2d0b25817 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 15:16:34 +0200 Subject: [PATCH 19/49] cd $APPVEYOR_BUILD_FOLDER --- appveyor.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 701b191b9..7612a907e 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -13,7 +13,6 @@ environment: GOPATH: c:\gopath CYG_MIRROR: http://cygwin.mirror.constant.com CYG_PACKAGES: make - HOME: c:\gopath\src\github.com\hashicorp\packer matrix: - APPVEYOR_BUILD_SYS: Cygwin CYG_ROOT: C:\cygwin64 @@ -48,7 +47,7 @@ install: build_script: - git rev-parse HEAD - '%BASH% -lc "pwd"' - - '%BASH% -lc "cd"' + - '%BASH% -lc "cd $APPVEYOR_BUILD_FOLDER"' - '%BASH% -lc "pwd"' - '%BASH% -lc "cat Makefile"' - '%BASH% -lc "make --version"' From 401fddbd33af92f465d5217209c3bf711a096316 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 15:28:35 +0200 Subject: [PATCH 20/49] Makefile remove duplicate go get --- Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Makefile b/Makefile index 470c3ec42..074128580 100644 --- a/Makefile +++ b/Makefile @@ -51,7 +51,6 @@ deps: @go get golang.org/x/tools/cmd/stringer @go get -u github.com/mna/pigeon @go get github.com/kardianos/govendor - @go get golang.org/x/tools/cmd/goimports dev: deps ## Build and install a development build @grep 'const VersionPrerelease = ""' version/version.go > /dev/null ; if [ $$? -eq 0 ]; then \ From 69d59a83c2b3c774c59e9789854766377378874a Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 15:29:01 +0200 Subject: [PATCH 21/49] Makefile: remove unrequired deps from test --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 074128580..0d7f67176 100644 --- a/Makefile +++ b/Makefile @@ -101,7 +101,7 @@ generate: deps ## Generate dynamically generated code goimports -w common/bootcommand/boot_command.go gofmt -w command/plugin.go -test: deps fmt-check mode-check vet ## Run unit tests +test: fmt-check mode-check vet ## Run unit tests @go test $(TEST) $(TESTARGS) -timeout=2m # testacc runs acceptance tests @@ -109,7 +109,7 @@ testacc: deps generate ## Run acceptance tests @echo "WARN: Acceptance tests will take a long time to run and may cost money. Ctrl-C if you want to cancel." PACKER_ACC=1 go test -v $(TEST) $(TESTARGS) -timeout=45m -testrace: deps fmt-check mode-check vet ## Test with race detection enabled +testrace: fmt-check mode-check vet ## Test with race detection enabled @go test -race $(TEST) $(TESTARGS) -timeout=2m updatedeps: From 84eb5d29a046782f315b3cca4ecc845f51b84d9f Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 15:29:19 +0200 Subject: [PATCH 22/49] remove appveyor usage --- appveyor.yml | 59 ---------------------------------------------------- 1 file changed, 59 deletions(-) delete mode 100644 appveyor.yml diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 7612a907e..000000000 --- a/appveyor.yml +++ /dev/null @@ -1,59 +0,0 @@ -# appveyor.yml reference : http://www.appveyor.com/docs/appveyor-yml -# and https://github.com/unicorn-engine/unicorn/blob/master/.appveyor.yml - -version: "{build}" - -skip_tags: true - -branches: - only: - - master - -environment: - GOPATH: c:\gopath - CYG_MIRROR: http://cygwin.mirror.constant.com - CYG_PACKAGES: make - matrix: - - APPVEYOR_BUILD_SYS: Cygwin - CYG_ROOT: C:\cygwin64 - CYG_CACHE: C:\cygwin64\var\cache\setup - CYG_SETUP: setup-x86_64.exe - BASH: C:\cygwin64\bin\bash - # - APPVEYOR_BUILD_SYS: Cygwin - # CYG_ROOT: C:\cygwin - # CYG_CACHE: C:\cygwin\var\cache\setup - # CYG_SETUP: setup-x86.exe - # BASH: C:\cygwin\bin\bash - -init: - # Carriage returns are bad - - cmd: - 'git config --global core.autocrlf input' - -# Cache Cygwin files to speed up build -cache: - - '%CYG_CACHE%' - -clone_folder: c:\gopath\src\github.com\hashicorp\packer - -# Install needed build dependencies -install: - - curl -fsS -o %CYG_SETUP% "https://cygwin.com/%CYG_SETUP%" - - '%CYG_SETUP% --quiet-mode --no-shortcuts --only-site --root "%CYG_ROOT%" --site "%CYG_MIRROR%" --local-package-dir "%CYG_CACHE%" --packages "%CYG_PACKAGES%" --upgrade-also' - - echo %Path% - - go version - - go env - -build_script: - - git rev-parse HEAD - - '%BASH% -lc "pwd"' - - '%BASH% -lc "cd $APPVEYOR_BUILD_FOLDER"' - - '%BASH% -lc "pwd"' - - '%BASH% -lc "cat Makefile"' - - '%BASH% -lc "make --version"' - - '%BASH% -lc "make deps"' - -test_script: - - '%BASH% -lc "make ci"' - -deploy: off From 80f7d01d7e7aee0fcd6f198065b44b11c200e0b0 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 15:29:30 +0200 Subject: [PATCH 23/49] test on windows using travis-ci --- .travis.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 98606817b..a303f56b7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,10 @@ env: - - USER=travis + - USER=travis + +os: + - linux + - osx + - windows sudo: false @@ -9,9 +14,6 @@ go: - 1.11.x - master -install: - - make deps - script: - GOMAXPROCS=2 make ci From f49a2d49a7a62391c96954408b1f0d8557cd7125 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 15:32:38 +0200 Subject: [PATCH 24/49] appveyor: skip everything for now --- appveyor.yml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 appveyor.yml diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 000000000..b4f4d81a2 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,3 @@ + +skip_commits: + message: /.*/ \ No newline at end of file From 3bb866820f2c2b78b2d4b4af827dfa9b96dc12d6 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 15:35:48 +0200 Subject: [PATCH 25/49] appveyor: build/install: off --- appveyor.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index b4f4d81a2..d1cfc51e9 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,3 +1,6 @@ skip_commits: - message: /.*/ \ No newline at end of file + message: /.*/ + +build: off +deploy: off From 3228820c241ce43807cd34213ed2962336258fe2 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 15:44:49 +0200 Subject: [PATCH 26/49] travis windows: install make --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index a303f56b7..d65111cd8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,6 +14,9 @@ go: - 1.11.x - master +before_install: + - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then choco install make ; fi + script: - GOMAXPROCS=2 make ci From 03620d15c2f005783ccba7f5ab78aad1baf49c6c Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 16:09:16 +0200 Subject: [PATCH 27/49] Makefile: make find work on windows using `-executable` instead of `-perm +111` --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 0d7f67176..aa2f1a104 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ GOPATH=$(shell go env GOPATH) # gofmt UNFORMATTED_FILES=$(shell find . -not -path "./vendor/*" -name "*.go" | xargs gofmt -s -l) -EXECUTABLE_FILES=$(shell find . -type f -perm +111 | egrep -v '^\./(website/[vendor|tmp]|vendor/|\.git|bin/|scripts/|pkg/)' | egrep -v '.*(\.sh|\.bats|\.git)' | egrep -v './provisioner/ansible/test-fixtures/exit1') +EXECUTABLE_FILES=$(shell find . -type f -executable | egrep -v '^\./(website/[vendor|tmp]|vendor/|\.git|bin/|scripts/|pkg/)' | egrep -v '.*(\.sh|\.bats|\.git)' | egrep -v './provisioner/ansible/test-fixtures/exit1') # Get the git commit GIT_DIRTY=$(shell test -n "`git status --porcelain`" && echo "+CHANGES" || true) From cdd8d85ae976d0548cbb73ce22f4545cda48a31c Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 16:15:21 +0200 Subject: [PATCH 28/49] install mingw --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d65111cd8..541597974 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,8 @@ go: - master before_install: - - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then choco install make ; fi + - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then choco install make ; fi + - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then choco install mingw ; fi script: - GOMAXPROCS=2 make ci From 0602cbd47e67e2d5c7d6bd648d4cf1159ad67a7e Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 16:19:04 +0200 Subject: [PATCH 29/49] travis: put windows first --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 541597974..001998acd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,9 +2,9 @@ env: - USER=travis os: + - windows - linux - osx - - windows sudo: false From 9a1a2d76ce612c0815565e3aca2a5b2cadcff2fe Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 16:37:38 +0200 Subject: [PATCH 30/49] travis-ci: disable cgo for windows --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 001998acd..9b70b9aac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,6 +19,7 @@ before_install: - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then choco install mingw ; fi script: + - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then export CGO_ENABLED=0 ; fi - GOMAXPROCS=2 make ci branches: From 586be1ec4680bd471ad6b15f214d83dbbc67b8ee Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 16:57:34 +0200 Subject: [PATCH 31/49] group choco install make/mingw together & export correct path --- .travis.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9b70b9aac..dcb6b0cad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,11 +15,9 @@ go: - master before_install: - - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then choco install make ; fi - - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then choco install mingw ; fi + - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then choco install -y make mingw; export PATH=/c/tools/mingw64/bin:"$PATH"; fi script: - - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then export CGO_ENABLED=0 ; fi - GOMAXPROCS=2 make ci branches: From f79582cc3f8007b99b1025936cb41658b4d7205d Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 18:18:29 +0200 Subject: [PATCH 32/49] update progress bar code --- vendor/github.com/cheggaaa/pb/pb.go | 13 +++--- vendor/github.com/cheggaaa/pb/pb_x.go | 60 ++++++++++++++++----------- vendor/github.com/cheggaaa/pb/pool.go | 4 +- vendor/vendor.json | 10 ++--- 4 files changed, 51 insertions(+), 36 deletions(-) diff --git a/vendor/github.com/cheggaaa/pb/pb.go b/vendor/github.com/cheggaaa/pb/pb.go index 8289ab0fb..3ffc58c92 100644 --- a/vendor/github.com/cheggaaa/pb/pb.go +++ b/vendor/github.com/cheggaaa/pb/pb.go @@ -13,7 +13,7 @@ import ( ) // Current version -const Version = "1.0.25" +const Version = "1.0.26" const ( // Default refresh rate - 200ms @@ -159,12 +159,16 @@ func (pb *ProgressBar) Add64(add int64) int64 { // Set prefix string func (pb *ProgressBar) Prefix(prefix string) *ProgressBar { + pb.mu.Lock() + defer pb.mu.Unlock() pb.prefix = prefix return pb } // Set postfix string func (pb *ProgressBar) Postfix(postfix string) *ProgressBar { + pb.mu.Lock() + defer pb.mu.Unlock() pb.postfix = postfix return pb } @@ -273,6 +277,8 @@ func (pb *ProgressBar) NewProxyReader(r io.Reader) *Reader { } func (pb *ProgressBar) write(total, current int64) { + pb.mu.Lock() + defer pb.mu.Unlock() width := pb.GetWidth() var percentBox, countersBox, timeLeftBox, timeSpentBox, speedBox, barBox, end, out string @@ -300,12 +306,10 @@ func (pb *ProgressBar) write(total, current int64) { } // time left - pb.mu.Lock() currentFromStart := current - pb.startValue fromStart := time.Now().Sub(pb.startTime) lastChangeTime := pb.changeTime fromChange := lastChangeTime.Sub(pb.startTime) - pb.mu.Unlock() if pb.ShowElapsedTime { timeSpentBox = fmt.Sprintf(" %s ", (fromStart/time.Second)*time.Second) @@ -394,13 +398,12 @@ func (pb *ProgressBar) write(total, current int64) { // check len out = pb.prefix + timeSpentBox + countersBox + barBox + percentBox + speedBox + timeLeftBox + pb.postfix + if cl := escapeAwareRuneCountInString(out); cl < width { end = strings.Repeat(" ", width-cl) } // and print! - pb.mu.Lock() - defer pb.mu.Unlock() pb.lastPrint = out + end isFinish := pb.isFinish diff --git a/vendor/github.com/cheggaaa/pb/pb_x.go b/vendor/github.com/cheggaaa/pb/pb_x.go index 8e05770ce..398345080 100644 --- a/vendor/github.com/cheggaaa/pb/pb_x.go +++ b/vendor/github.com/cheggaaa/pb/pb_x.go @@ -20,6 +20,7 @@ var ( echoLockMutex sync.Mutex origTermStatePtr *unix.Termios tty *os.File + istty bool ) func init() { @@ -28,13 +29,18 @@ func init() { var err error tty, err = os.Open("/dev/tty") + istty = true if err != nil { tty = os.Stdin + istty = false } } // terminalWidth returns width of the terminal. func terminalWidth() (int, error) { + if !istty { + return 0, errors.New("Not Supported") + } echoLockMutex.Lock() defer echoLockMutex.Unlock() @@ -51,26 +57,28 @@ func terminalWidth() (int, error) { func lockEcho() (shutdownCh chan struct{}, err error) { echoLockMutex.Lock() defer echoLockMutex.Unlock() - if origTermStatePtr != nil { - return shutdownCh, ErrPoolWasStarted - } - - fd := int(tty.Fd()) - - origTermStatePtr, err = unix.IoctlGetTermios(fd, ioctlReadTermios) - if err != nil { - return nil, fmt.Errorf("Can't get terminal settings: %v", err) - } + if istty { + if origTermStatePtr != nil { + return shutdownCh, ErrPoolWasStarted + } + + fd := int(tty.Fd()) + + origTermStatePtr, err = unix.IoctlGetTermios(fd, ioctlReadTermios) + if err != nil { + return nil, fmt.Errorf("Can't get terminal settings: %v", err) + } + + oldTermios := *origTermStatePtr + newTermios := oldTermios + newTermios.Lflag &^= syscall.ECHO + newTermios.Lflag |= syscall.ICANON | syscall.ISIG + newTermios.Iflag |= syscall.ICRNL + if err := unix.IoctlSetTermios(fd, ioctlWriteTermios, &newTermios); err != nil { + return nil, fmt.Errorf("Can't set terminal settings: %v", err) + } - oldTermios := *origTermStatePtr - newTermios := oldTermios - newTermios.Lflag &^= syscall.ECHO - newTermios.Lflag |= syscall.ICANON | syscall.ISIG - newTermios.Iflag |= syscall.ICRNL - if err := unix.IoctlSetTermios(fd, ioctlWriteTermios, &newTermios); err != nil { - return nil, fmt.Errorf("Can't set terminal settings: %v", err) } - shutdownCh = make(chan struct{}) go catchTerminate(shutdownCh) return @@ -79,16 +87,18 @@ func lockEcho() (shutdownCh chan struct{}, err error) { func unlockEcho() error { echoLockMutex.Lock() defer echoLockMutex.Unlock() - if origTermStatePtr == nil { - return nil - } + if istty { + if origTermStatePtr == nil { + return nil + } - fd := int(tty.Fd()) + fd := int(tty.Fd()) - if err := unix.IoctlSetTermios(fd, ioctlWriteTermios, origTermStatePtr); err != nil { - return fmt.Errorf("Can't set terminal settings: %v", err) - } + if err := unix.IoctlSetTermios(fd, ioctlWriteTermios, origTermStatePtr); err != nil { + return fmt.Errorf("Can't set terminal settings: %v", err) + } + } origTermStatePtr = nil return nil diff --git a/vendor/github.com/cheggaaa/pb/pool.go b/vendor/github.com/cheggaaa/pb/pool.go index f44baa01f..392e7599c 100644 --- a/vendor/github.com/cheggaaa/pb/pool.go +++ b/vendor/github.com/cheggaaa/pb/pool.go @@ -90,7 +90,9 @@ func (p *Pool) writer() { // Restore terminal state and close pool func (p *Pool) Stop() error { p.finishOnce.Do(func() { - close(p.shutdownCh) + if p.shutdownCh != nil { + close(p.shutdownCh) + } }) // Wait for the worker to complete diff --git a/vendor/vendor.json b/vendor/vendor.json index 24d8c6e75..f1304234b 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -657,12 +657,12 @@ "revision": "50da7d4131a3b5c9d063932461cab4d1fafb20b0" }, { - "checksumSHA1": "7GMQgpfoSQv4QcaREE2GzSZvlQI=", + "checksumSHA1": "UBznrWrDuttNZf56nubBl2nG4Ws=", "path": "github.com/cheggaaa/pb", - "revision": "2af8bbdea9e99e83b3ac400d8f6b6d1b8cbbf338", - "revisionTime": "2018-05-21T09:56:06Z", - "version": "v1.0.25", - "versionExact": "v1.0.25" + "revision": "007b75a044e968336a69a6c0c617251ab62ac14c", + "revisionTime": "2018-10-16T15:56:12Z", + "version": "v1.0.26", + "versionExact": "v1.0.26" }, { "checksumSHA1": "X2/71FBrn4pA3WcA620ySVO0uHU=", From 4edace1e24c651f2a2ddd49e9b5a37ab63db7719 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 18:23:11 +0200 Subject: [PATCH 33/49] df -h --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index dcb6b0cad..c95f014b9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,6 +18,7 @@ before_install: - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then choco install -y make mingw; export PATH=/c/tools/mingw64/bin:"$PATH"; fi script: + - df -h - GOMAXPROCS=2 make ci branches: From 7c63c322c7e48a6323692380f466668e49a2490d Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 18:40:07 +0200 Subject: [PATCH 34/49] make provisioner/ansible/provisioner_test.go invisible to windows --- provisioner/ansible/provisioner_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/provisioner/ansible/provisioner_test.go b/provisioner/ansible/provisioner_test.go index c3300bc6b..3386b74cb 100644 --- a/provisioner/ansible/provisioner_test.go +++ b/provisioner/ansible/provisioner_test.go @@ -1,3 +1,5 @@ +// +build !windows + package ansible import ( From 02ba6ccfab2bb2cd2800a7c52205b516863ed38c Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 18:41:27 +0200 Subject: [PATCH 35/49] make common/iso_config_test.go invisible to windows --- common/iso_config_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common/iso_config_test.go b/common/iso_config_test.go index b465bead8..0a054f700 100644 --- a/common/iso_config_test.go +++ b/common/iso_config_test.go @@ -1,3 +1,5 @@ +// +build !windows + package common import ( From 379336d9b250f50023af4b3364ac18af9da924f6 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 19:02:10 +0200 Subject: [PATCH 36/49] make template/parse_test.go invisible to windows --- template/parse_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/template/parse_test.go b/template/parse_test.go index e73529d36..8881783f6 100644 --- a/template/parse_test.go +++ b/template/parse_test.go @@ -1,3 +1,5 @@ +// +build !windows + package template import ( From 8a6c55dd69a8e0b0a03abf9f2a2889e8f5291ced Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Tue, 16 Oct 2018 19:09:35 +0200 Subject: [PATCH 37/49] make builder/hyperv/iso/builder_test.go invisible to windows --- builder/hyperv/iso/builder_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/builder/hyperv/iso/builder_test.go b/builder/hyperv/iso/builder_test.go index 44d73e8c8..0369c0df7 100644 --- a/builder/hyperv/iso/builder_test.go +++ b/builder/hyperv/iso/builder_test.go @@ -1,3 +1,5 @@ +// +build !windows + package iso import ( From e692dee2d8f3a734916eede0c2a4973f384b430c Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Wed, 17 Oct 2018 09:57:42 +0200 Subject: [PATCH 38/49] make builder/hyperv/vmcx/builder_test.go invisible to windows --- builder/hyperv/vmcx/builder_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/builder/hyperv/vmcx/builder_test.go b/builder/hyperv/vmcx/builder_test.go index 3626a6434..3994c42b0 100644 --- a/builder/hyperv/vmcx/builder_test.go +++ b/builder/hyperv/vmcx/builder_test.go @@ -1,3 +1,5 @@ +// +build !windows + package vmcx import ( From b80a0fed4233986803aa4d7d812452031cc112ff Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Wed, 17 Oct 2018 09:59:13 +0200 Subject: [PATCH 39/49] make builder/parallels/common/output_config_test.go invisible to windows --- builder/parallels/common/output_config_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/builder/parallels/common/output_config_test.go b/builder/parallels/common/output_config_test.go index c3161ff42..6feb54a88 100644 --- a/builder/parallels/common/output_config_test.go +++ b/builder/parallels/common/output_config_test.go @@ -1,3 +1,5 @@ +// +build !windows + package common import ( From 1ca21499c682ce38413c2aaa8341d56a7f06e4c1 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Wed, 17 Oct 2018 10:21:53 +0200 Subject: [PATCH 40/49] Revert "make builder/hyperv/vmcx/builder_test.go invisible to windows" This reverts commit e692dee2d8f3a734916eede0c2a4973f384b430c. --- builder/hyperv/vmcx/builder_test.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/builder/hyperv/vmcx/builder_test.go b/builder/hyperv/vmcx/builder_test.go index 3994c42b0..3626a6434 100644 --- a/builder/hyperv/vmcx/builder_test.go +++ b/builder/hyperv/vmcx/builder_test.go @@ -1,5 +1,3 @@ -// +build !windows - package vmcx import ( From ec4326c6fc22ccc2afab8bb28d836813a3e02123 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Wed, 17 Oct 2018 10:46:42 +0200 Subject: [PATCH 41/49] .travis.yml: break lines in windows settings --- .travis.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c95f014b9..f65a30680 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,11 @@ go: - master before_install: - - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then choco install -y make mingw; export PATH=/c/tools/mingw64/bin:"$PATH"; fi + - > + if [[ "$TRAVIS_OS_NAME" == "windows" ]]; + then choco install -y make mingw; + export PATH=/c/tools/mingw64/bin:"$PATH"; + fi script: - df -h From 16f1b7e88ce1a6769de77fa5796e0afa89bb5545 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Wed, 17 Oct 2018 10:48:01 +0200 Subject: [PATCH 42/49] .travis.yml: don't limit to 2 CPUs * this might fix a timeout --- .travis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index f65a30680..60c65b7e4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ env: - - USER=travis + - USER=travis GOMAXPROCS=2 os: - windows @@ -19,11 +19,12 @@ before_install: if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then choco install -y make mingw; export PATH=/c/tools/mingw64/bin:"$PATH"; + export GOMAXPROCS=""; fi script: - df -h - - GOMAXPROCS=2 make ci + - make ci branches: only: From 0237956e66ba534076d0b4411ab5882847043d1a Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Wed, 17 Oct 2018 11:19:57 +0200 Subject: [PATCH 43/49] builder/virtualbox/common/step_shutdown_test.go: compare durations instead of floats & ouput duration --- builder/virtualbox/common/step_shutdown_test.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/builder/virtualbox/common/step_shutdown_test.go b/builder/virtualbox/common/step_shutdown_test.go index 44bd1d927..b5ff526d0 100644 --- a/builder/virtualbox/common/step_shutdown_test.go +++ b/builder/virtualbox/common/step_shutdown_test.go @@ -133,9 +133,9 @@ func TestStepShutdown_shutdownDelay(t *testing.T) { if action := step.Run(context.Background(), state); action != multistep.ActionContinue { t.Fatalf("bad action: %#v", action) } - testDuration := time.Since(start).Seconds() - if testDuration < 2.5 || testDuration > 2.6 { - t.Fatal("incorrect duration") + testDuration := time.Since(start) + if testDuration < 2500*time.Millisecond || testDuration > 2600*time.Millisecond { + t.Fatalf("incorrect duration %s", testDuration) } if _, ok := state.GetOk("error"); ok { @@ -158,9 +158,9 @@ func TestStepShutdown_shutdownDelay(t *testing.T) { if action := step.Run(context.Background(), state); action != multistep.ActionContinue { t.Fatalf("bad action: %#v", action) } - testDuration = time.Since(start).Seconds() - if testDuration > 0.6 { - t.Fatal("incorrect duration") + testDuration = time.Since(start) + if testDuration > 600*time.Millisecond { + t.Fatalf("incorrect duration %s", testDuration) } if _, ok := state.GetOk("error"); ok { From 4d466a0ba7c52367b40476635938ddfa0d238b49 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Wed, 17 Oct 2018 11:21:46 +0200 Subject: [PATCH 44/49] .travis.yml: remove GOMAXPROCS setting --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 60c65b7e4..6aad2832d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ env: - - USER=travis GOMAXPROCS=2 + - USER=travis os: - windows @@ -19,7 +19,6 @@ before_install: if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then choco install -y make mingw; export PATH=/c/tools/mingw64/bin:"$PATH"; - export GOMAXPROCS=""; fi script: From 5fe672d7c49831c799c4e9b0383525efd24fae9a Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Wed, 17 Oct 2018 11:42:51 +0200 Subject: [PATCH 45/49] travis windows now has mingw by default --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6aad2832d..1d9261d27 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,8 +17,7 @@ go: before_install: - > if [[ "$TRAVIS_OS_NAME" == "windows" ]]; - then choco install -y make mingw; - export PATH=/c/tools/mingw64/bin:"$PATH"; + then choco install -y make; fi script: From af3b818de09c1349f58bff7aa245bd9759c97a15 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Wed, 17 Oct 2018 12:09:24 +0200 Subject: [PATCH 46/49] TestBuilderPrepare_ISOChecksumType: set config["switch_name"] = "switch" to avoid using builder.detectSwitchName which can lock down in CI mode --- builder/hyperv/vmcx/builder_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/builder/hyperv/vmcx/builder_test.go b/builder/hyperv/vmcx/builder_test.go index 3626a6434..44d4a2c13 100644 --- a/builder/hyperv/vmcx/builder_test.go +++ b/builder/hyperv/vmcx/builder_test.go @@ -231,6 +231,7 @@ func TestBuilderPrepare_ISOChecksumType(t *testing.T) { // Test good config["iso_checksum_type"] = "mD5" + config["switch_name"] = "switch" // to avoid using builder.detectSwitchName which can lock down in CI mode b = Builder{} warns, err = b.Prepare(config) if len(warns) > 0 { From 410bee06662f642f80ce242341cb3cdfb1724304 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Wed, 17 Oct 2018 12:23:01 +0200 Subject: [PATCH 47/49] make TestStepShutdown_shutdownDelay less strict on schedule --- builder/hyperv/vmcx/builder_test.go | 2 +- builder/virtualbox/common/step_shutdown_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/builder/hyperv/vmcx/builder_test.go b/builder/hyperv/vmcx/builder_test.go index 44d4a2c13..23d64458c 100644 --- a/builder/hyperv/vmcx/builder_test.go +++ b/builder/hyperv/vmcx/builder_test.go @@ -21,6 +21,7 @@ func testConfig() map[string]interface{} { "iso_url": "http://www.packer.io", "shutdown_command": "yes", "ssh_username": "foo", + "switch_name": "switch", // to avoid using builder.detectSwitchName which can lock down in travis-ci "ram_size": 64, "guest_additions_mode": "none", "clone_from_vmcx_path": "generated", @@ -231,7 +232,6 @@ func TestBuilderPrepare_ISOChecksumType(t *testing.T) { // Test good config["iso_checksum_type"] = "mD5" - config["switch_name"] = "switch" // to avoid using builder.detectSwitchName which can lock down in CI mode b = Builder{} warns, err = b.Prepare(config) if len(warns) > 0 { diff --git a/builder/virtualbox/common/step_shutdown_test.go b/builder/virtualbox/common/step_shutdown_test.go index b5ff526d0..0a2d9e363 100644 --- a/builder/virtualbox/common/step_shutdown_test.go +++ b/builder/virtualbox/common/step_shutdown_test.go @@ -134,7 +134,7 @@ func TestStepShutdown_shutdownDelay(t *testing.T) { t.Fatalf("bad action: %#v", action) } testDuration := time.Since(start) - if testDuration < 2500*time.Millisecond || testDuration > 2600*time.Millisecond { + if testDuration < 2500*time.Millisecond || testDuration > 2700*time.Millisecond { t.Fatalf("incorrect duration %s", testDuration) } From 33f96b4303db41975783fdf915fa0187bc300d5e Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Wed, 17 Oct 2018 13:38:53 +0200 Subject: [PATCH 48/49] revert appveyor skips as windows builds are pretty unstable --- appveyor.yml | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index d1cfc51e9..60b78ccdc 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,6 +1,38 @@ +# appveyor.yml reference : http://www.appveyor.com/docs/appveyor-yml -skip_commits: - message: /.*/ +version: "{build}" + +skip_tags: true + +branches: + only: + - master + +os: Windows Server 2012 R2 + +environment: + GOPATH: c:\gopath + +clone_folder: c:\gopath\src\github.com\hashicorp\packer + +install: + - set GO15VENDOREXPERIMENT=1 + - echo %Path% + - go version + - go env + - go get github.com/mitchellh/gox + - go get golang.org/x/tools/cmd/stringer + +build_script: + - git rev-parse HEAD + # go test $(go list ./... | grep -v vendor) + - ps: | + go.exe test (go.exe list ./... ` + |? { -not $_.Contains('/vendor/') } ` + |? { $_ -ne 'github.com/hashicorp/packer/builder/parallels/common' } ` + |? { $_ -ne 'github.com/hashicorp/packer/common' }` + |? { $_ -ne 'github.com/hashicorp/packer/provisioner/ansible' }) + +test: off -build: off deploy: off From abd8fbd699b7d447895ca729059673544ce33677 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Wed, 17 Oct 2018 13:44:27 +0200 Subject: [PATCH 49/49] travis-ci: allow failures on windows --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 1d9261d27..1be948a43 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,4 +31,5 @@ branches: matrix: allow_failures: - go: master + - os: windows fast_finish: true