+++ /dev/null
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
- "flag"
- "fmt"
- "io/ioutil"
- "net/http"
- "os"
- "path"
-)
-
-var bucket = flag.String("bucket", "golang-gopls_integration_tests", "GCS bucket holding test artifacts.")
-
-const usage = `
-artifacts [--bucket=<bucket ID>] <cloud build evaluation ID>
-
-Fetch artifacts from an integration test run. Evaluation ID should be extracted
-from the cloud build notification.
-
-In order for this to work, the GCS bucket that artifacts were written to must
-be publicly readable. By default, this fetches from the
-golang-gopls_integration_tests bucket.
-`
-
-func main() {
- flag.Usage = func() {
- fmt.Fprint(flag.CommandLine.Output(), usage)
- }
- flag.Parse()
- if flag.NArg() != 1 {
- flag.Usage()
- os.Exit(2)
- }
- evalID := flag.Arg(0)
- logURL := fmt.Sprintf("https://storage.googleapis.com/%s/log-%s.txt", *bucket, evalID)
- if err := download(logURL); err != nil {
- fmt.Fprintf(os.Stderr, "downloading logs: %v", err)
- }
- tarURL := fmt.Sprintf("https://storage.googleapis.com/%s/govim/%s/artifacts.tar.gz", *bucket, evalID)
- if err := download(tarURL); err != nil {
- fmt.Fprintf(os.Stderr, "downloading artifact tarball: %v", err)
- }
-}
-
-func download(artifactURL string) error {
- name := path.Base(artifactURL)
- resp, err := http.Get(artifactURL)
- if err != nil {
- return fmt.Errorf("fetching from GCS: %v", err)
- }
- defer resp.Body.Close()
- if resp.StatusCode != http.StatusOK {
- return fmt.Errorf("got status code %d from GCS", resp.StatusCode)
- }
- data, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- return fmt.Errorf("reading result: %v", err)
- }
- if err := ioutil.WriteFile(name, data, 0644); err != nil {
- return fmt.Errorf("writing artifact: %v", err)
- }
- return nil
-}