From ceffcbef9a24612d0e38e4a28ab8016e3e1d4d71 Mon Sep 17 00:00:00 2001 From: Carolyn Van Slyck Date: Mon, 6 Jan 2020 09:56:16 -0600 Subject: [PATCH] Pin golang.org/x/sys to fix windows compilation Upstream golang.org/x/sys introduced a breaking change within a major version, see https://github.com/golang/go/issues/34610. The workaround is to pin it to the last revesion that is compatible with the version of moby/moby that we are using. Verify that the code compiles on windows, macos and linux during our CI run to catch problems like this one (a regression in golang.org/x/sys) in the future as soon as it happens. Also do a reset of our go dependencies after bootstrap. When we use go get to install global dependencies, it modifies our go.* files changing the versions of the dependencies that we required, making the build break, because kind requires different versions than docker. This resets it back to what we need before we compile. Signed-off-by: Carolyn Van Slyck --- Makefile | 2 ++ azure-pipelines.yml | 2 ++ brigade.js | 3 +++ go.mod | 10 ++++++++-- go.sum | 8 ++++++++ 5 files changed, 23 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 51078db0..866d37bf 100644 --- a/Makefile +++ b/Makefile @@ -50,6 +50,8 @@ endif ifndef HAS_GO_JUNIT_REPORT go get github.com/jstemmer/go-junit-report endif + @# go get to install global tools with modules modify our dependencies. Reset them back + git checkout go.mod go.sum .PHONY: coverage coverage: diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 27868cd1..b3b9b395 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -22,6 +22,8 @@ steps: go version go get sigs.k8s.io/kind@v0.6.0 make bootstrap build lint coverage + GOOS=windows make build + GOOS=darwin make build workingDirectory: '$(modulePath)' displayName: 'Get dependencies, build, test' diff --git a/brigade.js b/brigade.js index c8a8bb3c..a740626a 100644 --- a/brigade.js +++ b/brigade.js @@ -58,6 +58,9 @@ function test(e, project) { `cd ${localPath}`, "make bootstrap", "make build", + // Ensure that it compiles on the three main OS's + "GOOS=windows make build", + "GOOS=darwin make build", "make test", "make lint", ]; diff --git a/go.mod b/go.mod index 467a25d3..233adf76 100644 --- a/go.mod +++ b/go.mod @@ -16,13 +16,14 @@ require ( github.com/bugsnag/bugsnag-go v1.5.0 // indirect github.com/bugsnag/panicwrap v1.2.0 // indirect github.com/cenkalti/backoff v2.2.1+incompatible // indirect + github.com/cespare/xxhash/v2 v2.1.0 // indirect github.com/cloudflare/cfssl v1.4.1 // indirect - github.com/containerd/cgroups v0.0.0-20191125132625-80b32e3c75c9 // indirect github.com/containerd/containerd v1.3.0 // indirect github.com/containerd/continuity v0.0.0-20181203112020-004b46473808 // indirect github.com/containerd/fifo v0.0.0-20190816180239-bda0ff6ed73c // indirect github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c // indirect github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd // indirect + github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e // indirect github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017 github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible github.com/docker/docker v1.4.2-0.20181229214054-f76d6a078d88 @@ -49,14 +50,19 @@ require ( github.com/opencontainers/runtime-spec v1.0.1 // indirect github.com/pivotal/image-relocation v0.0.0-20191111101224-e94aff6df06c github.com/pkg/errors v0.8.1 - github.com/prometheus/client_golang v1.2.1 // indirect + github.com/prometheus/client_golang v1.1.0 // indirect + github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 // indirect + github.com/prometheus/common v0.7.0 // indirect + github.com/prometheus/procfs v0.0.5 // indirect github.com/qri-io/jsonschema v0.1.1 github.com/stretchr/testify v1.4.0 github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2 // indirect github.com/theupdateframework/notary v0.6.1 // indirect + github.com/urfave/cli v1.22.1 // indirect github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1 // indirect go.etcd.io/bbolt v1.3.3 // indirect golang.org/x/crypto v0.0.0-20191028145041-f83a4685e152 // indirect + golang.org/x/sys v0.0.0-20190830141801-acfa387b8d69 // indirect golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 // indirect gopkg.in/dancannon/gorethink.v3 v3.0.5 // indirect gopkg.in/fatih/pool.v2 v2.0.0 // indirect diff --git a/go.sum b/go.sum index 21e313c4..88b90c11 100644 --- a/go.sum +++ b/go.sum @@ -338,6 +338,9 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.1.0 h1:BQ53HtBmfOitExawJ6LokA4x8ov/z0SYYb0+HxJfRI8= +github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= +github.com/prometheus/client_golang v1.2.0/go.mod h1:XMU6Z2MjaRKVu/dC1qupJI9SiNkDYzz3xecMgSW/F+U= github.com/prometheus/client_golang v1.2.1 h1:JnMpQc6ppsNgw9QPAGF6Dod479itz7lvlsMzzNayLOI= github.com/prometheus/client_golang v1.2.1/go.mod h1:XMU6Z2MjaRKVu/dC1qupJI9SiNkDYzz3xecMgSW/F+U= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -347,12 +350,14 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 h1:gQz4mCb github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.7.0 h1:L+1lyG48J1zAQXA3RBX/nG/B3gjlHq0zTt2tlbJLyCY= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.5 h1:3+auTFlqw+ZaQYJARz6ArODtkaIwtvBTx3N2NehQlL8= github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/qri-io/jsonpointer v0.1.0 h1:OcTtTmorodUCRc2CZhj/ZwOET8zVj6uo0ArEmzoThZI= @@ -474,6 +479,9 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190830141801-acfa387b8d69 h1:Wdn4Yb8d5VrsO3jWgaeSZss09x1VLVBMePDh4VW/xSQ= +golang.org/x/sys v0.0.0-20190830141801-acfa387b8d69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea h1:Mz1TMnfJDRJLk8S8OPCoJYgrsp/Se/2TBre2+vwX128=