Files
grafana/scripts/build/release_publisher/publisher_test.go

203 lines
6.2 KiB
Go
Raw Normal View History

package main
import (
"reflect"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
2018-11-01 14:49:32 +01:00
func TestPreparingReleaseFromRemote(t *testing.T) {
cases := []struct {
version string
expectedVersion string
scripts/build/*: Fix golint issues Url => URL $ gometalinter --vendor --disable-all --enable=golint ./... | grep -i URL build/publish.go:18:5:warning: var apiUrl should be apiURL (golint) build/publish.go:184:2:warning: struct field WhatsNewUrl should be WhatsNewURL (golint) build/publish.go:185:2:warning: struct field ReleaseNotesUrl should be ReleaseNotesURL (golint) build/publish.go:191:2:warning: struct field Url should be URL (golint) build/release_publisher/externalrelease.go:17:53:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/externalrelease.go:17:69:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/externalrelease.go:17:89:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/localrelease.go:20:45:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/localrelease.go:20:61:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/localrelease.go:20:81:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/localrelease.go:45:41:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/localrelease.go:51:84:warning: func parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/main.go:12:6:warning: var whatsNewUrl should be whatsNewURL (golint) build/release_publisher/main.go:13:6:warning: var releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/main.go:40:6:warning: var baseUrl should be baseURL (golint) build/release_publisher/main.go:94:6:warning: func createBaseUrl should be createBaseURL (golint) build/release_publisher/publisher.go:21:2:warning: struct field baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:26:17:warning: interface method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:26:33:warning: interface method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher.go:26:53:warning: interface method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/publisher.go:29:31:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher.go:29:51:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/publisher.go:91:24:warning: method getUrl should be getURL (golint) build/release_publisher/publisher.go:91:31:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:190:15:warning: func parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:199:21:warning: method apiUrl should be apiURL (golint) build/release_publisher/publisher.go:257:2:warning: struct field WhatsNewUrl should be WhatsNewURL (golint) build/release_publisher/publisher.go:258:2:warning: struct field ReleaseNotesUrl should be ReleaseNotesURL (golint) build/release_publisher/publisher.go:264:2:warning: struct field Url should be URL (golint) build/release_publisher/publisher_test.go:10:3:warning: struct field whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher_test.go:11:3:warning: struct field relNotesUrl should be relNotesURL (golint) build/release_publisher/publisher_test.go:17:3:warning: struct field expectedUrl should be expectedURL (golint) build/release_publisher/publisher_test.go:18:3:warning: struct field baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher_test.go:109:2:warning: var whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher_test.go:110:2:warning: var relNotesUrl should be relNotesURL (golint)
2019-01-22 19:45:01 +01:00
whatsNewURL string
relNotesURL string
nightly bool
expectedBeta bool
expectedStable bool
expectedArch string
expectedOs string
scripts/build/*: Fix golint issues Url => URL $ gometalinter --vendor --disable-all --enable=golint ./... | grep -i URL build/publish.go:18:5:warning: var apiUrl should be apiURL (golint) build/publish.go:184:2:warning: struct field WhatsNewUrl should be WhatsNewURL (golint) build/publish.go:185:2:warning: struct field ReleaseNotesUrl should be ReleaseNotesURL (golint) build/publish.go:191:2:warning: struct field Url should be URL (golint) build/release_publisher/externalrelease.go:17:53:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/externalrelease.go:17:69:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/externalrelease.go:17:89:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/localrelease.go:20:45:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/localrelease.go:20:61:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/localrelease.go:20:81:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/localrelease.go:45:41:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/localrelease.go:51:84:warning: func parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/main.go:12:6:warning: var whatsNewUrl should be whatsNewURL (golint) build/release_publisher/main.go:13:6:warning: var releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/main.go:40:6:warning: var baseUrl should be baseURL (golint) build/release_publisher/main.go:94:6:warning: func createBaseUrl should be createBaseURL (golint) build/release_publisher/publisher.go:21:2:warning: struct field baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:26:17:warning: interface method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:26:33:warning: interface method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher.go:26:53:warning: interface method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/publisher.go:29:31:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher.go:29:51:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/publisher.go:91:24:warning: method getUrl should be getURL (golint) build/release_publisher/publisher.go:91:31:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:190:15:warning: func parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:199:21:warning: method apiUrl should be apiURL (golint) build/release_publisher/publisher.go:257:2:warning: struct field WhatsNewUrl should be WhatsNewURL (golint) build/release_publisher/publisher.go:258:2:warning: struct field ReleaseNotesUrl should be ReleaseNotesURL (golint) build/release_publisher/publisher.go:264:2:warning: struct field Url should be URL (golint) build/release_publisher/publisher_test.go:10:3:warning: struct field whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher_test.go:11:3:warning: struct field relNotesUrl should be relNotesURL (golint) build/release_publisher/publisher_test.go:17:3:warning: struct field expectedUrl should be expectedURL (golint) build/release_publisher/publisher_test.go:18:3:warning: struct field baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher_test.go:109:2:warning: var whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher_test.go:110:2:warning: var relNotesUrl should be relNotesURL (golint)
2019-01-22 19:45:01 +01:00
expectedURL string
baseArchiveURL string
buildArtifacts []buildArtifact
}{
{
version: "v5.2.0-beta1",
expectedVersion: "5.2.0-beta1",
scripts/build/*: Fix golint issues Url => URL $ gometalinter --vendor --disable-all --enable=golint ./... | grep -i URL build/publish.go:18:5:warning: var apiUrl should be apiURL (golint) build/publish.go:184:2:warning: struct field WhatsNewUrl should be WhatsNewURL (golint) build/publish.go:185:2:warning: struct field ReleaseNotesUrl should be ReleaseNotesURL (golint) build/publish.go:191:2:warning: struct field Url should be URL (golint) build/release_publisher/externalrelease.go:17:53:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/externalrelease.go:17:69:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/externalrelease.go:17:89:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/localrelease.go:20:45:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/localrelease.go:20:61:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/localrelease.go:20:81:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/localrelease.go:45:41:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/localrelease.go:51:84:warning: func parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/main.go:12:6:warning: var whatsNewUrl should be whatsNewURL (golint) build/release_publisher/main.go:13:6:warning: var releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/main.go:40:6:warning: var baseUrl should be baseURL (golint) build/release_publisher/main.go:94:6:warning: func createBaseUrl should be createBaseURL (golint) build/release_publisher/publisher.go:21:2:warning: struct field baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:26:17:warning: interface method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:26:33:warning: interface method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher.go:26:53:warning: interface method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/publisher.go:29:31:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher.go:29:51:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/publisher.go:91:24:warning: method getUrl should be getURL (golint) build/release_publisher/publisher.go:91:31:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:190:15:warning: func parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:199:21:warning: method apiUrl should be apiURL (golint) build/release_publisher/publisher.go:257:2:warning: struct field WhatsNewUrl should be WhatsNewURL (golint) build/release_publisher/publisher.go:258:2:warning: struct field ReleaseNotesUrl should be ReleaseNotesURL (golint) build/release_publisher/publisher.go:264:2:warning: struct field Url should be URL (golint) build/release_publisher/publisher_test.go:10:3:warning: struct field whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher_test.go:11:3:warning: struct field relNotesUrl should be relNotesURL (golint) build/release_publisher/publisher_test.go:17:3:warning: struct field expectedUrl should be expectedURL (golint) build/release_publisher/publisher_test.go:18:3:warning: struct field baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher_test.go:109:2:warning: var whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher_test.go:110:2:warning: var relNotesUrl should be relNotesURL (golint)
2019-01-22 19:45:01 +01:00
whatsNewURL: "https://whatsnews.foo/",
relNotesURL: "https://relnotes.foo/",
nightly: false,
expectedBeta: true,
expectedStable: false,
expectedArch: "amd64",
expectedOs: "linux",
scripts/build/*: Fix golint issues Url => URL $ gometalinter --vendor --disable-all --enable=golint ./... | grep -i URL build/publish.go:18:5:warning: var apiUrl should be apiURL (golint) build/publish.go:184:2:warning: struct field WhatsNewUrl should be WhatsNewURL (golint) build/publish.go:185:2:warning: struct field ReleaseNotesUrl should be ReleaseNotesURL (golint) build/publish.go:191:2:warning: struct field Url should be URL (golint) build/release_publisher/externalrelease.go:17:53:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/externalrelease.go:17:69:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/externalrelease.go:17:89:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/localrelease.go:20:45:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/localrelease.go:20:61:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/localrelease.go:20:81:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/localrelease.go:45:41:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/localrelease.go:51:84:warning: func parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/main.go:12:6:warning: var whatsNewUrl should be whatsNewURL (golint) build/release_publisher/main.go:13:6:warning: var releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/main.go:40:6:warning: var baseUrl should be baseURL (golint) build/release_publisher/main.go:94:6:warning: func createBaseUrl should be createBaseURL (golint) build/release_publisher/publisher.go:21:2:warning: struct field baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:26:17:warning: interface method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:26:33:warning: interface method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher.go:26:53:warning: interface method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/publisher.go:29:31:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher.go:29:51:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/publisher.go:91:24:warning: method getUrl should be getURL (golint) build/release_publisher/publisher.go:91:31:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:190:15:warning: func parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:199:21:warning: method apiUrl should be apiURL (golint) build/release_publisher/publisher.go:257:2:warning: struct field WhatsNewUrl should be WhatsNewURL (golint) build/release_publisher/publisher.go:258:2:warning: struct field ReleaseNotesUrl should be ReleaseNotesURL (golint) build/release_publisher/publisher.go:264:2:warning: struct field Url should be URL (golint) build/release_publisher/publisher_test.go:10:3:warning: struct field whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher_test.go:11:3:warning: struct field relNotesUrl should be relNotesURL (golint) build/release_publisher/publisher_test.go:17:3:warning: struct field expectedUrl should be expectedURL (golint) build/release_publisher/publisher_test.go:18:3:warning: struct field baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher_test.go:109:2:warning: var whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher_test.go:110:2:warning: var relNotesUrl should be relNotesURL (golint)
2019-01-22 19:45:01 +01:00
expectedURL: "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.0-beta1.linux-amd64.tar.gz",
baseArchiveURL: "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana",
2019-03-22 21:53:02 +01:00
buildArtifacts: []buildArtifact{{"linux", "amd64", ".linux-amd64.tar.gz", ""}},
},
{
version: "v5.2.3",
expectedVersion: "5.2.3",
scripts/build/*: Fix golint issues Url => URL $ gometalinter --vendor --disable-all --enable=golint ./... | grep -i URL build/publish.go:18:5:warning: var apiUrl should be apiURL (golint) build/publish.go:184:2:warning: struct field WhatsNewUrl should be WhatsNewURL (golint) build/publish.go:185:2:warning: struct field ReleaseNotesUrl should be ReleaseNotesURL (golint) build/publish.go:191:2:warning: struct field Url should be URL (golint) build/release_publisher/externalrelease.go:17:53:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/externalrelease.go:17:69:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/externalrelease.go:17:89:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/localrelease.go:20:45:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/localrelease.go:20:61:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/localrelease.go:20:81:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/localrelease.go:45:41:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/localrelease.go:51:84:warning: func parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/main.go:12:6:warning: var whatsNewUrl should be whatsNewURL (golint) build/release_publisher/main.go:13:6:warning: var releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/main.go:40:6:warning: var baseUrl should be baseURL (golint) build/release_publisher/main.go:94:6:warning: func createBaseUrl should be createBaseURL (golint) build/release_publisher/publisher.go:21:2:warning: struct field baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:26:17:warning: interface method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:26:33:warning: interface method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher.go:26:53:warning: interface method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/publisher.go:29:31:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher.go:29:51:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/publisher.go:91:24:warning: method getUrl should be getURL (golint) build/release_publisher/publisher.go:91:31:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:190:15:warning: func parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:199:21:warning: method apiUrl should be apiURL (golint) build/release_publisher/publisher.go:257:2:warning: struct field WhatsNewUrl should be WhatsNewURL (golint) build/release_publisher/publisher.go:258:2:warning: struct field ReleaseNotesUrl should be ReleaseNotesURL (golint) build/release_publisher/publisher.go:264:2:warning: struct field Url should be URL (golint) build/release_publisher/publisher_test.go:10:3:warning: struct field whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher_test.go:11:3:warning: struct field relNotesUrl should be relNotesURL (golint) build/release_publisher/publisher_test.go:17:3:warning: struct field expectedUrl should be expectedURL (golint) build/release_publisher/publisher_test.go:18:3:warning: struct field baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher_test.go:109:2:warning: var whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher_test.go:110:2:warning: var relNotesUrl should be relNotesURL (golint)
2019-01-22 19:45:01 +01:00
whatsNewURL: "https://whatsnews.foo/",
relNotesURL: "https://relnotes.foo/",
nightly: false,
expectedBeta: false,
expectedStable: true,
expectedArch: "amd64",
expectedOs: "rhel",
scripts/build/*: Fix golint issues Url => URL $ gometalinter --vendor --disable-all --enable=golint ./... | grep -i URL build/publish.go:18:5:warning: var apiUrl should be apiURL (golint) build/publish.go:184:2:warning: struct field WhatsNewUrl should be WhatsNewURL (golint) build/publish.go:185:2:warning: struct field ReleaseNotesUrl should be ReleaseNotesURL (golint) build/publish.go:191:2:warning: struct field Url should be URL (golint) build/release_publisher/externalrelease.go:17:53:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/externalrelease.go:17:69:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/externalrelease.go:17:89:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/localrelease.go:20:45:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/localrelease.go:20:61:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/localrelease.go:20:81:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/localrelease.go:45:41:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/localrelease.go:51:84:warning: func parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/main.go:12:6:warning: var whatsNewUrl should be whatsNewURL (golint) build/release_publisher/main.go:13:6:warning: var releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/main.go:40:6:warning: var baseUrl should be baseURL (golint) build/release_publisher/main.go:94:6:warning: func createBaseUrl should be createBaseURL (golint) build/release_publisher/publisher.go:21:2:warning: struct field baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:26:17:warning: interface method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:26:33:warning: interface method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher.go:26:53:warning: interface method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/publisher.go:29:31:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher.go:29:51:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/publisher.go:91:24:warning: method getUrl should be getURL (golint) build/release_publisher/publisher.go:91:31:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:190:15:warning: func parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:199:21:warning: method apiUrl should be apiURL (golint) build/release_publisher/publisher.go:257:2:warning: struct field WhatsNewUrl should be WhatsNewURL (golint) build/release_publisher/publisher.go:258:2:warning: struct field ReleaseNotesUrl should be ReleaseNotesURL (golint) build/release_publisher/publisher.go:264:2:warning: struct field Url should be URL (golint) build/release_publisher/publisher_test.go:10:3:warning: struct field whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher_test.go:11:3:warning: struct field relNotesUrl should be relNotesURL (golint) build/release_publisher/publisher_test.go:17:3:warning: struct field expectedUrl should be expectedURL (golint) build/release_publisher/publisher_test.go:18:3:warning: struct field baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher_test.go:109:2:warning: var whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher_test.go:110:2:warning: var relNotesUrl should be relNotesURL (golint)
2019-01-22 19:45:01 +01:00
expectedURL: "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.3-1.x86_64.rpm",
baseArchiveURL: "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana",
2019-03-22 21:53:02 +01:00
buildArtifacts: []buildArtifact{{"rhel", "amd64", ".x86_64.rpm", ""}},
},
{
version: "v5.4.0-pre1asdf",
expectedVersion: "5.4.0-pre1asdf",
scripts/build/*: Fix golint issues Url => URL $ gometalinter --vendor --disable-all --enable=golint ./... | grep -i URL build/publish.go:18:5:warning: var apiUrl should be apiURL (golint) build/publish.go:184:2:warning: struct field WhatsNewUrl should be WhatsNewURL (golint) build/publish.go:185:2:warning: struct field ReleaseNotesUrl should be ReleaseNotesURL (golint) build/publish.go:191:2:warning: struct field Url should be URL (golint) build/release_publisher/externalrelease.go:17:53:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/externalrelease.go:17:69:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/externalrelease.go:17:89:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/localrelease.go:20:45:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/localrelease.go:20:61:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/localrelease.go:20:81:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/localrelease.go:45:41:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/localrelease.go:51:84:warning: func parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/main.go:12:6:warning: var whatsNewUrl should be whatsNewURL (golint) build/release_publisher/main.go:13:6:warning: var releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/main.go:40:6:warning: var baseUrl should be baseURL (golint) build/release_publisher/main.go:94:6:warning: func createBaseUrl should be createBaseURL (golint) build/release_publisher/publisher.go:21:2:warning: struct field baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:26:17:warning: interface method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:26:33:warning: interface method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher.go:26:53:warning: interface method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/publisher.go:29:31:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher.go:29:51:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/publisher.go:91:24:warning: method getUrl should be getURL (golint) build/release_publisher/publisher.go:91:31:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:190:15:warning: func parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:199:21:warning: method apiUrl should be apiURL (golint) build/release_publisher/publisher.go:257:2:warning: struct field WhatsNewUrl should be WhatsNewURL (golint) build/release_publisher/publisher.go:258:2:warning: struct field ReleaseNotesUrl should be ReleaseNotesURL (golint) build/release_publisher/publisher.go:264:2:warning: struct field Url should be URL (golint) build/release_publisher/publisher_test.go:10:3:warning: struct field whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher_test.go:11:3:warning: struct field relNotesUrl should be relNotesURL (golint) build/release_publisher/publisher_test.go:17:3:warning: struct field expectedUrl should be expectedURL (golint) build/release_publisher/publisher_test.go:18:3:warning: struct field baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher_test.go:109:2:warning: var whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher_test.go:110:2:warning: var relNotesUrl should be relNotesURL (golint)
2019-01-22 19:45:01 +01:00
whatsNewURL: "https://whatsnews.foo/",
relNotesURL: "https://relnotes.foo/",
nightly: true,
expectedBeta: false,
expectedStable: false,
expectedArch: "amd64",
expectedOs: "rhel",
expectedURL: "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.4.0~pre1asdf-1.x86_64.rpm",
scripts/build/*: Fix golint issues Url => URL $ gometalinter --vendor --disable-all --enable=golint ./... | grep -i URL build/publish.go:18:5:warning: var apiUrl should be apiURL (golint) build/publish.go:184:2:warning: struct field WhatsNewUrl should be WhatsNewURL (golint) build/publish.go:185:2:warning: struct field ReleaseNotesUrl should be ReleaseNotesURL (golint) build/publish.go:191:2:warning: struct field Url should be URL (golint) build/release_publisher/externalrelease.go:17:53:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/externalrelease.go:17:69:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/externalrelease.go:17:89:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/localrelease.go:20:45:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/localrelease.go:20:61:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/localrelease.go:20:81:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/localrelease.go:45:41:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/localrelease.go:51:84:warning: func parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/main.go:12:6:warning: var whatsNewUrl should be whatsNewURL (golint) build/release_publisher/main.go:13:6:warning: var releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/main.go:40:6:warning: var baseUrl should be baseURL (golint) build/release_publisher/main.go:94:6:warning: func createBaseUrl should be createBaseURL (golint) build/release_publisher/publisher.go:21:2:warning: struct field baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:26:17:warning: interface method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:26:33:warning: interface method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher.go:26:53:warning: interface method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/publisher.go:29:31:warning: method parameter whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher.go:29:51:warning: method parameter releaseNotesUrl should be releaseNotesURL (golint) build/release_publisher/publisher.go:91:24:warning: method getUrl should be getURL (golint) build/release_publisher/publisher.go:91:31:warning: method parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:190:15:warning: func parameter baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher.go:199:21:warning: method apiUrl should be apiURL (golint) build/release_publisher/publisher.go:257:2:warning: struct field WhatsNewUrl should be WhatsNewURL (golint) build/release_publisher/publisher.go:258:2:warning: struct field ReleaseNotesUrl should be ReleaseNotesURL (golint) build/release_publisher/publisher.go:264:2:warning: struct field Url should be URL (golint) build/release_publisher/publisher_test.go:10:3:warning: struct field whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher_test.go:11:3:warning: struct field relNotesUrl should be relNotesURL (golint) build/release_publisher/publisher_test.go:17:3:warning: struct field expectedUrl should be expectedURL (golint) build/release_publisher/publisher_test.go:18:3:warning: struct field baseArchiveUrl should be baseArchiveURL (golint) build/release_publisher/publisher_test.go:109:2:warning: var whatsNewUrl should be whatsNewURL (golint) build/release_publisher/publisher_test.go:110:2:warning: var relNotesUrl should be relNotesURL (golint)
2019-01-22 19:45:01 +01:00
baseArchiveURL: "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana",
2019-03-22 21:53:02 +01:00
buildArtifacts: []buildArtifact{{"rhel", "amd64", ".x86_64.rpm", ""}},
},
{
version: "v5.4.0-pre1asdf",
expectedVersion: "5.4.0-pre1asdf",
whatsNewURL: "https://whatsnews.foo/",
relNotesURL: "https://relnotes.foo/",
nightly: true,
expectedBeta: false,
expectedStable: false,
expectedArch: "armv6",
expectedOs: "deb",
expectedURL: "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-rpi_5.4.0~pre1asdf_armhf.deb",
2019-03-22 21:53:02 +01:00
baseArchiveURL: "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana",
buildArtifacts: []buildArtifact{
{os: "deb", arch: "armv6", urlPostfix: "_armhf.deb", packagePostfix: "-rpi"},
},
},
{
version: "v5.4.0-pre1asdf",
expectedVersion: "5.4.0-pre1asdf",
whatsNewURL: "https://whatsnews.foo/",
relNotesURL: "https://relnotes.foo/",
nightly: true,
expectedBeta: false,
expectedStable: false,
expectedArch: "amd64",
expectedOs: "win-installer",
expectedURL: "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.4.0-pre1asdf.windows-amd64.msi",
baseArchiveURL: "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana",
buildArtifacts: []buildArtifact{{"win-installer", "amd64", ".windows-amd64.msi", ""}},
},
{
version: "v5.4.0-pre1asdf",
expectedVersion: "5.4.0-pre1asdf",
whatsNewURL: "https://whatsnews.foo/",
relNotesURL: "https://relnotes.foo/",
nightly: true,
expectedBeta: false,
expectedStable: false,
expectedArch: "amd64",
expectedOs: "win",
expectedURL: "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.4.0-pre1asdf.windows-amd64.zip",
baseArchiveURL: "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana",
buildArtifacts: []buildArtifact{{"win", "amd64", ".windows-amd64.zip", ""}},
},
}
for _, test := range cases {
2018-11-19 14:32:39 +01:00
builder := releaseFromExternalContent{
getter: mockHTTPGetter{},
rawVersion: test.version,
artifactConfigurations: test.buildArtifacts,
}
t.Log("Preparing release", "baseArchiveURL", test.baseArchiveURL, "nightly", test.nightly)
rel, err := builder.prepareRelease(test.baseArchiveURL, test.whatsNewURL, test.relNotesURL, test.nightly)
require.NoError(t, err)
assert.Equal(t, test.expectedBeta, rel.Beta)
assert.Equal(t, test.expectedStable, rel.Stable)
assert.Equal(t, test.expectedVersion, rel.Version)
assert.Len(t, rel.Builds, len(test.buildArtifacts))
build := rel.Builds[0]
assert.Equal(t, test.expectedArch, build.Arch)
assert.Equal(t, test.expectedOs, build.Os)
assert.Equal(t, test.expectedURL, build.URL)
}
}
type mockHTTPGetter struct{}
func (mockHTTPGetter) getContents(url string) (string, error) {
return url, nil
}
2018-11-01 14:49:32 +01:00
func TestFilterBuildArtifacts(t *testing.T) {
buildArtifacts, _ := filterBuildArtifacts(completeBuildArtifactConfigurations, Add, []artifactFilter{
{os: "deb", arch: "amd64"},
{os: "rhel", arch: "amd64"},
{os: "linux", arch: "amd64"},
{os: "win", arch: "amd64"},
})
if len(buildArtifacts) != 4 {
t.Errorf("Expected 4 build artifacts after filtering, but was %v", len(buildArtifacts))
}
buildArtifacts, err := filterBuildArtifacts([]buildArtifact{
{
os: "linux",
arch: "amd64",
},
{
os: "arm",
arch: "amd64",
},
{
os: "darwin",
arch: "amd64",
},
}, Remove, []artifactFilter{
{os: "darwin", arch: "amd64"},
})
if err != nil {
t.Error()
}
if len(buildArtifacts) != 2 {
t.Errorf("Expected 2 artifacts, was %v", len(buildArtifacts))
}
for _, ba := range buildArtifacts {
if ba.arch == "amd64" && ba.os == "darwin" {
t.Errorf("darwin/amd64 should be gone due to filtering")
}
}
left := []buildArtifact{
{
os: "linux",
arch: "amd64",
},
{
os: "arm",
arch: "amd64",
},
}
if !reflect.DeepEqual(left, buildArtifacts) {
t.Errorf("Lists should have been equal but was, expected=%v, actual=%v", left, buildArtifacts)
}
}