diff --git a/lib/manager/gomod/__fixtures__/3/go.mod b/lib/manager/gomod/__fixtures__/3/go.mod new file mode 100644 index 0000000000000000000000000000000000000000..e8000701b03fcbb897c8ca05dc52aca2d0956db7 --- /dev/null +++ b/lib/manager/gomod/__fixtures__/3/go.mod @@ -0,0 +1,133 @@ +module k8s.io/minikube + +go 1.13 + +require ( + cloud.google.com/go v0.45.1 + github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5 // indirect + github.com/Parallels/docker-machine-parallels v1.3.0 + github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d // indirect + github.com/blang/semver v3.5.0+incompatible + github.com/c4milo/gotoolkit v0.0.0-20170318115440-bcc06269efa9 // indirect + github.com/cenkalti/backoff v2.2.1+incompatible + github.com/cheggaaa/pb/v3 v3.0.1 + github.com/cloudfoundry-attic/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 + github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 // indirect + github.com/containerd/containerd v1.3.1-0.20191213020239-082f7e3aed57 // indirect + github.com/docker/cli v0.0.0-20200303162255-7d407207c304 // indirect + github.com/docker/docker v1.13.1 + github.com/docker/go-units v0.4.0 + github.com/docker/machine v0.7.1-0.20190902101342-b170508bf44c // v0.16.2^ + github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f + github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f // indirect + github.com/evanphx/json-patch v4.5.0+incompatible // indirect + github.com/go-ole/go-ole v1.2.4 // indirect + github.com/gogo/protobuf v1.3.1 // indirect + github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3 + github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b + github.com/google/go-cmp v0.3.2-0.20191028172631-481baca67f93 + github.com/google/go-containerregistry v0.0.0-20200131185320-aec8da010de2 + github.com/google/go-github v17.0.0+incompatible + github.com/google/martian v2.1.1-0.20190517191504-25dcb96d9e51+incompatible // indirect + github.com/googleapis/gnostic v0.3.0 // indirect + github.com/hashicorp/go-getter v1.4.0 + github.com/hashicorp/go-retryablehttp v0.5.4 + github.com/hooklift/assert v0.0.0-20170704181755-9d1defd6d214 // indirect + github.com/hooklift/iso9660 v0.0.0-20170318115843-1cf07e5970d8 + github.com/imdario/mergo v0.3.8 // indirect + github.com/intel-go/cpuid v0.0.0-20181003105527-1a4a6f06a1c6 // indirect + github.com/johanneswuerbach/nfsexports v0.0.0-20200318065542-c48c3734757f + github.com/juju/clock v0.0.0-20190205081909-9c5c9712527c + github.com/juju/errors v0.0.0-20190806202954-0232dcc7464d // indirect + github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8 // indirect + github.com/juju/mutex v0.0.0-20180619145857-d21b13acf4bf + github.com/juju/retry v0.0.0-20180821225755-9058e192b216 // indirect + github.com/juju/testing v0.0.0-20190723135506-ce30eb24acd2 // indirect + github.com/juju/utils v0.0.0-20180820210520-bf9cc5bdd62d // indirect + github.com/juju/version v0.0.0-20180108022336-b64dbd566305 // indirect + github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 + github.com/kr/pretty v0.2.0 // indirect + github.com/libvirt/libvirt-go v3.4.0+incompatible + github.com/machine-drivers/docker-machine-driver-vmware v0.1.1 + github.com/mattn/go-isatty v0.0.11 + github.com/mitchellh/go-ps v0.0.0-20170309133038-4fdf99ab2936 + github.com/moby/hyperkit v0.0.0-20171020124204-a12cd7250bcd + github.com/olekukonko/tablewriter v0.0.4 + github.com/onsi/ginkgo v1.10.3 // indirect + github.com/onsi/gomega v1.7.1 // indirect + github.com/opencontainers/go-digest v1.0.0-rc1 + github.com/otiai10/copy v1.0.2 + github.com/pborman/uuid v1.2.0 + github.com/pelletier/go-toml v1.6.0 // indirect + github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2 + github.com/pkg/browser v0.0.0-20160118053552-9302be274faa + github.com/pkg/errors v0.9.1 + github.com/pkg/profile v0.0.0-20161223203901-3a8809bd8a80 + github.com/pmezard/go-difflib v1.0.0 + github.com/prometheus/client_golang v1.1.0 // indirect + github.com/prometheus/procfs v0.0.5 // indirect + github.com/russross/blackfriday v1.5.3-0.20200218234912-41c5fccfd6f6 // indirect + github.com/samalba/dockerclient v0.0.0-20160414174713-91d7393ff859 // indirect + github.com/shirou/gopsutil v2.18.12+incompatible + github.com/spf13/cast v1.3.1 // indirect + github.com/spf13/cobra v1.0.0 + github.com/spf13/pflag v1.0.5 + github.com/spf13/viper v1.6.1 + github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect + github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect + github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f + github.com/zchee/go-vmnet v0.0.0-20161021174912-97ebf9174097 + golang.org/x/build v0.0.0-20190927031335-2835ba2e683f + golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073 + golang.org/x/net v0.0.0-20200301022130-244492dfa37a // indirect + golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e + golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9 + golang.org/x/text v0.3.2 + google.golang.org/api v0.9.0 + google.golang.org/genproto v0.0.0-20200117163144-32f20d992d24 // indirect + google.golang.org/grpc v1.26.0 // indirect + gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect + gopkg.in/ini.v1 v1.51.1 // indirect + gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect + gopkg.in/yaml.v2 v2.2.8 + gotest.tools/v3 v3.0.2 // indirect + k8s.io/api v0.17.3 + k8s.io/apimachinery v0.17.3 + k8s.io/client-go v0.17.3 + k8s.io/kubectl v0.0.0 + k8s.io/kubernetes v1.17.3 + k8s.io/utils v0.0.0-20200229041039-0a110f9eb7ab // indirect + sigs.k8s.io/sig-storage-lib-external-provisioner v4.0.0+incompatible +) + +replace ( + git.apache.org/thrift.git => github.com/apache/thrift v0.0.0-20180902110319-2566ecd5d999 + github.com/docker/docker => github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7 + github.com/docker/machine => github.com/machine-drivers/machine v0.7.1-0.20200323212942-41eb826190d8 + github.com/hashicorp/go-getter => github.com/afbjorklund/go-getter v1.4.1-0.20190910175809-eb9f6c26742c + github.com/samalba/dockerclient => github.com/sayboras/dockerclient v0.0.0-20191231050035-015626177a97 + k8s.io/api => k8s.io/api v0.17.3 + k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.17.3 + k8s.io/apimachinery => k8s.io/apimachinery v0.17.3 + k8s.io/apiserver => k8s.io/apiserver v0.17.3 + k8s.io/cli-runtime => k8s.io/cli-runtime v0.17.3 + k8s.io/client-go => k8s.io/client-go v0.17.3 + k8s.io/cloud-provider => k8s.io/cloud-provider v0.17.3 + k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.17.3 + k8s.io/code-generator => k8s.io/code-generator v0.17.3 + k8s.io/component-base => k8s.io/component-base v0.17.3 + k8s.io/cri-api => k8s.io/cri-api v0.17.3 + k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.17.3 + k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.17.3 + k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.17.3 + k8s.io/kube-proxy => k8s.io/kube-proxy v0.17.3 + k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.17.3 + k8s.io/kubectl => k8s.io/kubectl v0.17.3 + k8s.io/kubelet => k8s.io/kubelet v0.17.3 + k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.17.3 + k8s.io/metrics => k8s.io/metrics v0.17.3 + k8s.io/node-api => k8s.io/node-api v0.17.3 + k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.17.3 + k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.17.3 + k8s.io/sample-controller => k8s.io/sample-controller v0.17.3 +) diff --git a/lib/manager/gomod/__snapshots__/artifacts.spec.ts.snap b/lib/manager/gomod/__snapshots__/artifacts.spec.ts.snap index 245615173fb138b9c2fe38226f5c52415f4d3955..da1ab355e9456b21eced871c467a164f5462bd84 100644 --- a/lib/manager/gomod/__snapshots__/artifacts.spec.ts.snap +++ b/lib/manager/gomod/__snapshots__/artifacts.spec.ts.snap @@ -70,7 +70,7 @@ Array [ exports[`.updateArtifacts() supports docker mode with credentials 1`] = ` Array [ Object { - "cmd": "docker pull renovate/go", + "cmd": "docker pull renovate/go:latest", "options": Object { "encoding": "utf-8", }, @@ -82,7 +82,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_go --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/go\\":\\"/tmp/renovate/cache/others/go\\" -e GOPATH -e GOPROXY -e GONOSUMDB -e CGO_ENABLED -w \\"/tmp/github/some/repo\\" renovate/go bash -l -c \\"git config --global url.\\\\\\"https://some-token@github.com/\\\\\\".insteadOf \\\\\\"https://github.com/\\\\\\" && go get -d ./...\\"", + "cmd": "docker run --rm --name=renovate_go --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/go\\":\\"/tmp/renovate/cache/others/go\\" -e GOPATH -e GOPROXY -e GONOSUMDB -e CGO_ENABLED -w \\"/tmp/github/some/repo\\" renovate/go:latest bash -l -c \\"git config --global url.\\\\\\"https://some-token@github.com/\\\\\\".insteadOf \\\\\\"https://github.com/\\\\\\" && go get -d ./...\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -108,7 +108,7 @@ Array [ exports[`.updateArtifacts() supports docker mode with credentials and appMode enabled 1`] = ` Array [ Object { - "cmd": "docker pull renovate/go", + "cmd": "docker pull renovate/go:latest", "options": Object { "encoding": "utf-8", }, @@ -120,7 +120,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_go --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/go\\":\\"/tmp/renovate/cache/others/go\\" -e GOPATH -e GOPROXY -e GONOSUMDB -e CGO_ENABLED -w \\"/tmp/github/some/repo\\" renovate/go bash -l -c \\"git config --global url.\\\\\\"https://x-access-token:some-token@github.com/\\\\\\".insteadOf \\\\\\"https://github.com/\\\\\\" && go get -d ./...\\"", + "cmd": "docker run --rm --name=renovate_go --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/go\\":\\"/tmp/renovate/cache/others/go\\" -e GOPATH -e GOPROXY -e GONOSUMDB -e CGO_ENABLED -w \\"/tmp/github/some/repo\\" renovate/go:latest bash -l -c \\"git config --global url.\\\\\\"https://x-access-token:some-token@github.com/\\\\\\".insteadOf \\\\\\"https://github.com/\\\\\\" && go get -d ./...\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -147,7 +147,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_go --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/go\\":\\"/tmp/renovate/cache/others/go\\" -e GOPATH -e GOPROXY -e GONOSUMDB -e CGO_ENABLED -w \\"/tmp/github/some/repo\\" renovate/go bash -l -c \\"git config --global url.\\\\\\"https://x-access-token:some-token@github.com/\\\\\\".insteadOf \\\\\\"https://github.com/\\\\\\" && go mod tidy\\"", + "cmd": "docker run --rm --name=renovate_go --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/go\\":\\"/tmp/renovate/cache/others/go\\" -e GOPATH -e GOPROXY -e GONOSUMDB -e CGO_ENABLED -w \\"/tmp/github/some/repo\\" renovate/go:latest bash -l -c \\"git config --global url.\\\\\\"https://x-access-token:some-token@github.com/\\\\\\".insteadOf \\\\\\"https://github.com/\\\\\\" && go mod tidy\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -173,7 +173,7 @@ Array [ exports[`.updateArtifacts() supports docker mode without credentials 1`] = ` Array [ Object { - "cmd": "docker pull renovate/go", + "cmd": "docker pull renovate/go:latest", "options": Object { "encoding": "utf-8", }, @@ -185,7 +185,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_go --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/go\\":\\"/tmp/renovate/cache/others/go\\" -e GOPATH -e GOPROXY -e GONOSUMDB -e CGO_ENABLED -w \\"/tmp/github/some/repo\\" renovate/go bash -l -c \\"go get -d ./...\\"", + "cmd": "docker run --rm --name=renovate_go --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/go\\":\\"/tmp/renovate/cache/others/go\\" -e GOPATH -e GOPROXY -e GONOSUMDB -e CGO_ENABLED -w \\"/tmp/github/some/repo\\" renovate/go:latest bash -l -c \\"go get -d ./...\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", diff --git a/lib/manager/gomod/__snapshots__/extract.spec.ts.snap b/lib/manager/gomod/__snapshots__/extract.spec.ts.snap index 182598d01d7f3b7b85e1035dcc2a0d7d5d6b33d4..57882e72d9f366bca0e55463b2924692f885c69c 100644 --- a/lib/manager/gomod/__snapshots__/extract.spec.ts.snap +++ b/lib/manager/gomod/__snapshots__/extract.spec.ts.snap @@ -1,5 +1,662 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`lib/manager/gomod/extract extractPackageFile() extracts compatibility 1`] = ` +Object { + "compatibility": Object { + "go": "1.13", + }, + "deps": Array [ + Object { + "currentValue": "v0.45.1", + "datasource": "go", + "depName": "cloud.google.com/go", + "depNameShort": "cloud.google.com/go", + "depType": "require", + "managerData": Object { + "lineNumber": 5, + "multiLine": true, + }, + }, + Object { + "currentValue": "v1.3.0", + "datasource": "go", + "depName": "github.com/Parallels/docker-machine-parallels", + "depNameShort": "Parallels/docker-machine-parallels", + "depType": "require", + "managerData": Object { + "lineNumber": 7, + "multiLine": true, + }, + }, + Object { + "currentValue": "v3.5.0+incompatible", + "datasource": "go", + "depName": "github.com/blang/semver", + "depNameShort": "blang/semver", + "depType": "require", + "managerData": Object { + "lineNumber": 9, + "multiLine": true, + }, + }, + Object { + "currentValue": "v2.2.1+incompatible", + "datasource": "go", + "depName": "github.com/cenkalti/backoff", + "depNameShort": "cenkalti/backoff", + "depType": "require", + "managerData": Object { + "lineNumber": 11, + "multiLine": true, + }, + }, + Object { + "currentValue": "v3.0.1", + "datasource": "go", + "depName": "github.com/cheggaaa/pb/v3", + "depNameShort": "cheggaaa/pb/v3", + "depType": "require", + "managerData": Object { + "lineNumber": 12, + "multiLine": true, + }, + }, + Object { + "currentDigest": "bcc4c8345a21", + "currentValue": "v0.0.0-20151120183258-bcc4c8345a21", + "datasource": "go", + "depName": "github.com/cloudfoundry-attic/jibber_jabber", + "depNameShort": "cloudfoundry-attic/jibber_jabber", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 13, + "multiLine": true, + }, + }, + Object { + "currentValue": "v1.13.1", + "datasource": "go", + "depName": "github.com/docker/docker", + "depNameShort": "docker/docker", + "depType": "require", + "managerData": Object { + "lineNumber": 17, + "multiLine": true, + }, + }, + Object { + "currentValue": "v0.4.0", + "datasource": "go", + "depName": "github.com/docker/go-units", + "depNameShort": "docker/go-units", + "depType": "require", + "managerData": Object { + "lineNumber": 18, + "multiLine": true, + }, + }, + Object { + "currentValue": "v0.7.1-0.20190902101342-b170508bf44c", + "datasource": "go", + "depName": "github.com/docker/machine", + "depNameShort": "docker/machine", + "depType": "require", + "managerData": Object { + "lineNumber": 19, + "multiLine": true, + }, + }, + Object { + "currentDigest": "9d40249d3c2f", + "currentValue": "v0.0.0-20190421051319-9d40249d3c2f", + "datasource": "go", + "depName": "github.com/elazarl/goproxy", + "depNameShort": "elazarl/goproxy", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 20, + "multiLine": true, + }, + }, + Object { + "currentDigest": "604e922904d3", + "currentValue": "v0.0.0-20130729185459-604e922904d3", + "datasource": "go", + "depName": "github.com/golang-collections/collections", + "depNameShort": "golang-collections/collections", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 25, + "multiLine": true, + }, + }, + Object { + "currentDigest": "23def4e6c14b", + "currentValue": "v0.0.0-20160126235308-23def4e6c14b", + "datasource": "go", + "depName": "github.com/golang/glog", + "depNameShort": "golang/glog", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 26, + "multiLine": true, + }, + }, + Object { + "currentValue": "v0.3.2-0.20191028172631-481baca67f93", + "datasource": "go", + "depName": "github.com/google/go-cmp", + "depNameShort": "google/go-cmp", + "depType": "require", + "managerData": Object { + "lineNumber": 27, + "multiLine": true, + }, + }, + Object { + "currentDigest": "aec8da010de2", + "currentValue": "v0.0.0-20200131185320-aec8da010de2", + "datasource": "go", + "depName": "github.com/google/go-containerregistry", + "depNameShort": "google/go-containerregistry", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 28, + "multiLine": true, + }, + }, + Object { + "currentValue": "v17.0.0+incompatible", + "datasource": "go", + "depName": "github.com/google/go-github", + "depNameShort": "google/go-github", + "depType": "require", + "managerData": Object { + "lineNumber": 29, + "multiLine": true, + }, + }, + Object { + "currentValue": "v1.4.0", + "datasource": "go", + "depName": "github.com/hashicorp/go-getter", + "depNameShort": "hashicorp/go-getter", + "depType": "require", + "managerData": Object { + "lineNumber": 32, + "multiLine": true, + }, + }, + Object { + "currentValue": "v0.5.4", + "datasource": "go", + "depName": "github.com/hashicorp/go-retryablehttp", + "depNameShort": "hashicorp/go-retryablehttp", + "depType": "require", + "managerData": Object { + "lineNumber": 33, + "multiLine": true, + }, + }, + Object { + "currentDigest": "1cf07e5970d8", + "currentValue": "v0.0.0-20170318115843-1cf07e5970d8", + "datasource": "go", + "depName": "github.com/hooklift/iso9660", + "depNameShort": "hooklift/iso9660", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 35, + "multiLine": true, + }, + }, + Object { + "currentDigest": "c48c3734757f", + "currentValue": "v0.0.0-20200318065542-c48c3734757f", + "datasource": "go", + "depName": "github.com/johanneswuerbach/nfsexports", + "depNameShort": "johanneswuerbach/nfsexports", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 38, + "multiLine": true, + }, + }, + Object { + "currentDigest": "9c5c9712527c", + "currentValue": "v0.0.0-20190205081909-9c5c9712527c", + "datasource": "go", + "depName": "github.com/juju/clock", + "depNameShort": "juju/clock", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 39, + "multiLine": true, + }, + }, + Object { + "currentDigest": "d21b13acf4bf", + "currentValue": "v0.0.0-20180619145857-d21b13acf4bf", + "datasource": "go", + "depName": "github.com/juju/mutex", + "depNameShort": "juju/mutex", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 42, + "multiLine": true, + }, + }, + Object { + "currentDigest": "95032a82bc51", + "currentValue": "v0.0.0-20180428030007-95032a82bc51", + "datasource": "go", + "depName": "github.com/kballard/go-shellquote", + "depNameShort": "kballard/go-shellquote", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 47, + "multiLine": true, + }, + }, + Object { + "currentValue": "v3.4.0+incompatible", + "datasource": "go", + "depName": "github.com/libvirt/libvirt-go", + "depNameShort": "libvirt/libvirt-go", + "depType": "require", + "managerData": Object { + "lineNumber": 49, + "multiLine": true, + }, + }, + Object { + "currentValue": "v0.1.1", + "datasource": "go", + "depName": "github.com/machine-drivers/docker-machine-driver-vmware", + "depNameShort": "machine-drivers/docker-machine-driver-vmware", + "depType": "require", + "managerData": Object { + "lineNumber": 50, + "multiLine": true, + }, + }, + Object { + "currentValue": "v0.0.11", + "datasource": "go", + "depName": "github.com/mattn/go-isatty", + "depNameShort": "mattn/go-isatty", + "depType": "require", + "managerData": Object { + "lineNumber": 51, + "multiLine": true, + }, + }, + Object { + "currentDigest": "4fdf99ab2936", + "currentValue": "v0.0.0-20170309133038-4fdf99ab2936", + "datasource": "go", + "depName": "github.com/mitchellh/go-ps", + "depNameShort": "mitchellh/go-ps", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 52, + "multiLine": true, + }, + }, + Object { + "currentDigest": "a12cd7250bcd", + "currentValue": "v0.0.0-20171020124204-a12cd7250bcd", + "datasource": "go", + "depName": "github.com/moby/hyperkit", + "depNameShort": "moby/hyperkit", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 53, + "multiLine": true, + }, + }, + Object { + "currentValue": "v0.0.4", + "datasource": "go", + "depName": "github.com/olekukonko/tablewriter", + "depNameShort": "olekukonko/tablewriter", + "depType": "require", + "managerData": Object { + "lineNumber": 54, + "multiLine": true, + }, + }, + Object { + "currentValue": "v1.0.0-rc1", + "datasource": "go", + "depName": "github.com/opencontainers/go-digest", + "depNameShort": "opencontainers/go-digest", + "depType": "require", + "managerData": Object { + "lineNumber": 57, + "multiLine": true, + }, + }, + Object { + "currentValue": "v1.0.2", + "datasource": "go", + "depName": "github.com/otiai10/copy", + "depNameShort": "otiai10/copy", + "depType": "require", + "managerData": Object { + "lineNumber": 58, + "multiLine": true, + }, + }, + Object { + "currentValue": "v1.2.0", + "datasource": "go", + "depName": "github.com/pborman/uuid", + "depNameShort": "pborman/uuid", + "depType": "require", + "managerData": Object { + "lineNumber": 59, + "multiLine": true, + }, + }, + Object { + "currentDigest": "95f893ade6f2", + "currentValue": "v0.0.0-20180830031419-95f893ade6f2", + "datasource": "go", + "depName": "github.com/phayes/freeport", + "depNameShort": "phayes/freeport", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 61, + "multiLine": true, + }, + }, + Object { + "currentDigest": "9302be274faa", + "currentValue": "v0.0.0-20160118053552-9302be274faa", + "datasource": "go", + "depName": "github.com/pkg/browser", + "depNameShort": "pkg/browser", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 62, + "multiLine": true, + }, + }, + Object { + "currentValue": "v0.9.1", + "datasource": "go", + "depName": "github.com/pkg/errors", + "depNameShort": "pkg/errors", + "depType": "require", + "managerData": Object { + "lineNumber": 63, + "multiLine": true, + }, + }, + Object { + "currentDigest": "3a8809bd8a80", + "currentValue": "v0.0.0-20161223203901-3a8809bd8a80", + "datasource": "go", + "depName": "github.com/pkg/profile", + "depNameShort": "pkg/profile", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 64, + "multiLine": true, + }, + }, + Object { + "currentValue": "v1.0.0", + "datasource": "go", + "depName": "github.com/pmezard/go-difflib", + "depNameShort": "pmezard/go-difflib", + "depType": "require", + "managerData": Object { + "lineNumber": 65, + "multiLine": true, + }, + }, + Object { + "currentValue": "v2.18.12+incompatible", + "datasource": "go", + "depName": "github.com/shirou/gopsutil", + "depNameShort": "shirou/gopsutil", + "depType": "require", + "managerData": Object { + "lineNumber": 70, + "multiLine": true, + }, + }, + Object { + "currentValue": "v1.0.0", + "datasource": "go", + "depName": "github.com/spf13/cobra", + "depNameShort": "spf13/cobra", + "depType": "require", + "managerData": Object { + "lineNumber": 72, + "multiLine": true, + }, + }, + Object { + "currentValue": "v1.0.5", + "datasource": "go", + "depName": "github.com/spf13/pflag", + "depNameShort": "spf13/pflag", + "depType": "require", + "managerData": Object { + "lineNumber": 73, + "multiLine": true, + }, + }, + Object { + "currentValue": "v1.6.1", + "datasource": "go", + "depName": "github.com/spf13/viper", + "depNameShort": "spf13/viper", + "depType": "require", + "managerData": Object { + "lineNumber": 74, + "multiLine": true, + }, + }, + Object { + "currentDigest": "1d523034197f", + "currentValue": "v0.0.0-20180618132009-1d523034197f", + "datasource": "go", + "depName": "github.com/xeipuuv/gojsonschema", + "depNameShort": "xeipuuv/gojsonschema", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 77, + "multiLine": true, + }, + }, + Object { + "currentDigest": "97ebf9174097", + "currentValue": "v0.0.0-20161021174912-97ebf9174097", + "datasource": "go", + "depName": "github.com/zchee/go-vmnet", + "depNameShort": "zchee/go-vmnet", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 78, + "multiLine": true, + }, + }, + Object { + "currentDigest": "2835ba2e683f", + "currentValue": "v0.0.0-20190927031335-2835ba2e683f", + "datasource": "go", + "depName": "golang.org/x/build", + "depNameShort": "golang.org/x/build", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 79, + "multiLine": true, + }, + }, + Object { + "currentDigest": "78000ba7a073", + "currentValue": "v0.0.0-20200302210943-78000ba7a073", + "datasource": "go", + "depName": "golang.org/x/crypto", + "depNameShort": "golang.org/x/crypto", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 80, + "multiLine": true, + }, + }, + Object { + "currentDigest": "cd5d95a43a6e", + "currentValue": "v0.0.0-20190911185100-cd5d95a43a6e", + "datasource": "go", + "depName": "golang.org/x/sync", + "depNameShort": "golang.org/x/sync", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 82, + "multiLine": true, + }, + }, + Object { + "currentDigest": "9fbb57f87de9", + "currentValue": "v0.0.0-20200124204421-9fbb57f87de9", + "datasource": "go", + "depName": "golang.org/x/sys", + "depNameShort": "golang.org/x/sys", + "depType": "require", + "digestOneAndOnly": true, + "managerData": Object { + "lineNumber": 83, + "multiLine": true, + }, + }, + Object { + "currentValue": "v0.3.2", + "datasource": "go", + "depName": "golang.org/x/text", + "depNameShort": "golang.org/x/text", + "depType": "require", + "managerData": Object { + "lineNumber": 84, + "multiLine": true, + }, + }, + Object { + "currentValue": "v0.9.0", + "datasource": "go", + "depName": "google.golang.org/api", + "depNameShort": "google.golang.org/api", + "depType": "require", + "managerData": Object { + "lineNumber": 85, + "multiLine": true, + }, + }, + Object { + "currentValue": "v2.2.8", + "datasource": "go", + "depName": "gopkg.in/yaml.v2", + "depNameShort": "yaml", + "depType": "require", + "managerData": Object { + "lineNumber": 91, + "multiLine": true, + }, + }, + Object { + "currentValue": "v0.17.3", + "datasource": "go", + "depName": "k8s.io/api", + "depNameShort": "k8s.io/api", + "depType": "require", + "managerData": Object { + "lineNumber": 93, + "multiLine": true, + }, + }, + Object { + "currentValue": "v0.17.3", + "datasource": "go", + "depName": "k8s.io/apimachinery", + "depNameShort": "k8s.io/apimachinery", + "depType": "require", + "managerData": Object { + "lineNumber": 94, + "multiLine": true, + }, + }, + Object { + "currentValue": "v0.17.3", + "datasource": "go", + "depName": "k8s.io/client-go", + "depNameShort": "k8s.io/client-go", + "depType": "require", + "managerData": Object { + "lineNumber": 95, + "multiLine": true, + }, + }, + Object { + "currentValue": "v0.0.0", + "datasource": "go", + "depName": "k8s.io/kubectl", + "depNameShort": "k8s.io/kubectl", + "depType": "require", + "managerData": Object { + "lineNumber": 96, + "multiLine": true, + }, + }, + Object { + "currentValue": "v1.17.3", + "datasource": "go", + "depName": "k8s.io/kubernetes", + "depNameShort": "k8s.io/kubernetes", + "depType": "require", + "managerData": Object { + "lineNumber": 97, + "multiLine": true, + }, + }, + Object { + "currentValue": "v4.0.0+incompatible", + "datasource": "go", + "depName": "sigs.k8s.io/sig-storage-lib-external-provisioner", + "depNameShort": "sigs.k8s.io/sig-storage-lib-external-provisioner", + "depType": "require", + "managerData": Object { + "lineNumber": 99, + "multiLine": true, + }, + }, + ], +} +`; + exports[`lib/manager/gomod/extract extractPackageFile() extracts multi-line requires 1`] = ` Array [ Object { diff --git a/lib/manager/gomod/artifacts.spec.ts b/lib/manager/gomod/artifacts.spec.ts index abb11fdc3104a1b0e101401ce7716a68dcc3f086..3d782f31046e50751a89f38792b4c123124b4eb8 100644 --- a/lib/manager/gomod/artifacts.spec.ts +++ b/lib/manager/gomod/artifacts.spec.ts @@ -38,6 +38,7 @@ const config = { localDir: join('/tmp/github/some/repo'), cacheDir: join('/tmp/renovate/cache'), dockerUser: 'foobar', + compatibility: { go: '1.14' }, }; const goEnv = { diff --git a/lib/manager/gomod/artifacts.ts b/lib/manager/gomod/artifacts.ts index 8b120171b9c220a4429714a5e5706a9ae407a7b5..48f219aba92abf665ed95cda280c412b7b7babe5 100644 --- a/lib/manager/gomod/artifacts.ts +++ b/lib/manager/gomod/artifacts.ts @@ -66,6 +66,8 @@ export async function updateArtifacts({ }, docker: { image: 'renovate/go', + tagConstraint: config.compatibility?.go, + tagScheme: 'npm', volumes: [goPath], preCommands: getPreCommands(), }, diff --git a/lib/manager/gomod/extract.spec.ts b/lib/manager/gomod/extract.spec.ts index 2c5b6940568fc097c2d89947832a5b602cb024fd..ae754c6cc188f4bd6aec3ba263c8759482d8e93c 100644 --- a/lib/manager/gomod/extract.spec.ts +++ b/lib/manager/gomod/extract.spec.ts @@ -3,6 +3,7 @@ import { extractPackageFile } from './extract'; const gomod1 = readFileSync('lib/manager/gomod/__fixtures__/1/go.mod', 'utf8'); const gomod2 = readFileSync('lib/manager/gomod/__fixtures__/2/go.mod', 'utf8'); +const gomod3 = readFileSync('lib/manager/gomod/__fixtures__/3/go.mod', 'utf8'); describe('lib/manager/gomod/extract', () => { describe('extractPackageFile()', () => { @@ -16,6 +17,11 @@ describe('lib/manager/gomod/extract', () => { expect(res.filter((e) => e.skipReason)).toHaveLength(1); expect(res.filter((e) => e.depType === 'replace')).toHaveLength(1); }); + it('extracts compatibility', () => { + const res = extractPackageFile(gomod3); + expect(res).toMatchSnapshot(); + expect(res.compatibility.go).toEqual('1.13'); + }); it('extracts multi-line requires', () => { const res = extractPackageFile(gomod2).deps; expect(res).toMatchSnapshot(); diff --git a/lib/manager/gomod/extract.ts b/lib/manager/gomod/extract.ts index fa8ab25e42affb99f41b77c181b8be2cc936072a..8e10d6e47b493bd58bbea02e242a9935c939dfea 100644 --- a/lib/manager/gomod/extract.ts +++ b/lib/manager/gomod/extract.ts @@ -1,3 +1,4 @@ +import { validRange } from 'semver'; import * as datasourceGo from '../../datasource/go'; import { logger } from '../../logger'; import { SkipReason } from '../../types'; @@ -43,11 +44,15 @@ function getDep( export function extractPackageFile(content: string): PackageFile | null { logger.trace({ content }, 'gomod.extractPackageFile()'); + const compatibility: Record<string, any> = {}; const deps: PackageDependency[] = []; try { const lines = content.split('\n'); for (let lineNumber = 0; lineNumber < lines.length; lineNumber += 1) { let line = lines[lineNumber]; + if (line.startsWith('go ') && validRange(line.replace('go ', ''))) { + compatibility.go = line.replace('go ', ''); + } const replaceMatch = /^replace\s+[^\s]+[\s]+[=][>]\s+([^\s]+)\s+([^\s]+)/.exec( line ); @@ -85,5 +90,5 @@ export function extractPackageFile(content: string): PackageFile | null { if (!deps.length) { return null; } - return { deps }; + return { compatibility, deps }; }