The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
grafana/scripts/build/release_publisher/externalrelease.go

72 lines
1.5 KiB

package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
"time"
)
type releaseFromExternalContent struct {
getter urlGetter
rawVersion string
artifactConfigurations []buildArtifact
}
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)
7 years ago
func (re releaseFromExternalContent) prepareRelease(baseArchiveURL, whatsNewURL string, releaseNotesURL string, nightly bool) (*release, error) {
version := re.rawVersion[1:]
beta := strings.Contains(version, "beta")
var rt releaseType
if beta {
rt = BETA
} else if nightly {
rt = NIGHTLY
} else {
rt = STABLE
}
builds := []build{}
for _, ba := range re.artifactConfigurations {
url := ba.getURL(baseArchiveURL, version, rt)
sha256, err := re.getter.getContents(fmt.Sprintf("%s.sha256", url))
if err != nil {
return nil, err
}
builds = append(builds, newBuild(url, ba, sha256))
}
r := release{
Version: version,
ReleaseDate: time.Now().UTC(),
Stable: rt.stable(),
Beta: rt.beta(),
Nightly: rt.nightly(),
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)
7 years ago
WhatsNewURL: whatsNewURL,
ReleaseNotesURL: releaseNotesURL,
Builds: builds,
}
return &r, nil
}
type urlGetter interface {
getContents(url string) (string, error)
}
type getHTTPContents struct{}
func (getHTTPContents) getContents(url string) (string, error) {
response, err := http.Get(url)
if err != nil {
return "", err
}
defer response.Body.Close()
all, err := ioutil.ReadAll(response.Body)
if err != nil {
return "", err
}
return string(all), nil
}