mirror of https://github.com/grafana/grafana.git
build: improved release publisher dry-run.
This commit is contained in:
parent
a1dca2117d
commit
7e093a32a2
|
|
@ -7,8 +7,6 @@ import (
|
||||||
"os"
|
"os"
|
||||||
)
|
)
|
||||||
|
|
||||||
var baseUri string = "https://grafana.com/api"
|
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var version string
|
var version string
|
||||||
var whatsNewUrl string
|
var whatsNewUrl string
|
||||||
|
|
@ -33,8 +31,13 @@ func main() {
|
||||||
log.Println("Dry-run has been enabled.")
|
log.Println("Dry-run has been enabled.")
|
||||||
}
|
}
|
||||||
|
|
||||||
p := publisher{apiKey: apiKey}
|
p := publisher{
|
||||||
if err := p.doRelease(version, whatsNewUrl, releaseNotesUrl, dryRun); err != nil {
|
apiKey: apiKey,
|
||||||
|
baseUri: "https://grafana.com/api",
|
||||||
|
product: "grafana",
|
||||||
|
dryRun: dryRun,
|
||||||
|
}
|
||||||
|
if err := p.doRelease(version, whatsNewUrl, releaseNotesUrl); err != nil {
|
||||||
log.Fatalf("error: %v", err)
|
log.Fatalf("error: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,52 +13,39 @@ import (
|
||||||
|
|
||||||
type publisher struct {
|
type publisher struct {
|
||||||
apiKey string
|
apiKey string
|
||||||
|
baseUri string
|
||||||
|
product string
|
||||||
|
dryRun bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *publisher) doRelease(version string, whatsNewUrl string, releaseNotesUrl string, dryRun bool) error {
|
func (p *publisher) doRelease(version string, whatsNewUrl string, releaseNotesUrl string) error {
|
||||||
currentRelease, err := newRelease(version, whatsNewUrl, releaseNotesUrl, buildArtifactConfigurations, getHttpContents{})
|
currentRelease, err := newRelease(version, whatsNewUrl, releaseNotesUrl, buildArtifactConfigurations, getHttpContents{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if dryRun {
|
|
||||||
relJson, err := json.Marshal(currentRelease)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
log.Println(string(relJson))
|
|
||||||
|
|
||||||
for _, b := range currentRelease.Builds {
|
|
||||||
artifactJson, err := json.Marshal(b)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
log.Println(string(artifactJson))
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if err := p.postRelease(currentRelease); err != nil {
|
if err := p.postRelease(currentRelease); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *publisher) postRelease(r *release) error {
|
func (p *publisher) postRelease(r *release) error {
|
||||||
err := p.postRequest("/grafana/versions", r, fmt.Sprintf("Create Release %s", r.Version))
|
err := p.postRequest("/versions", r, fmt.Sprintf("Create Release %s", r.Version))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
err = p.postRequest("/grafana/versions/"+r.Version, r, fmt.Sprintf("Update Release %s", r.Version))
|
err = p.postRequest("/versions/"+r.Version, r, fmt.Sprintf("Update Release %s", r.Version))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, b := range r.Builds {
|
for _, b := range r.Builds {
|
||||||
err = p.postRequest(fmt.Sprintf("/grafana/versions/%s/packages", r.Version), b, fmt.Sprintf("Create Build %s %s", b.Os, b.Arch))
|
err = p.postRequest(fmt.Sprintf("/versions/%s/packages", r.Version), b, fmt.Sprintf("Create Build %s %s", b.Os, b.Arch))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
err = p.postRequest(fmt.Sprintf("/grafana/versions/%s/packages/%s/%s", r.Version, b.Arch, b.Os), b, fmt.Sprintf("Update Build %s %s", b.Os, b.Arch))
|
err = p.postRequest(fmt.Sprintf("/versions/%s/packages/%s/%s", r.Version, b.Arch, b.Os), b, fmt.Sprintf("Update Build %s %s", b.Os, b.Arch))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
@ -185,12 +172,23 @@ func newBuild(ba buildArtifact, version string, isBeta bool, sha256 string) buil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *publisher) apiUrl(url string) string {
|
||||||
|
return fmt.Sprintf("%s/%s%s", p.baseUri, p.product, url)
|
||||||
|
}
|
||||||
|
|
||||||
func (p *publisher) postRequest(url string, obj interface{}, desc string) error {
|
func (p *publisher) postRequest(url string, obj interface{}, desc string) error {
|
||||||
jsonBytes, err := json.Marshal(obj)
|
jsonBytes, err := json.Marshal(obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
req, err := http.NewRequest(http.MethodPost, baseUri+url, bytes.NewReader(jsonBytes))
|
|
||||||
|
if p.dryRun {
|
||||||
|
log.Println(fmt.Sprintf("POST to %s:", p.apiUrl(url)))
|
||||||
|
log.Println(string(jsonBytes))
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
req, err := http.NewRequest(http.MethodPost, p.apiUrl(url), bytes.NewReader(jsonBytes))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue