cmd/xb, app/appengine: simplify build.golang.org deployment docs
Change-Id: I0057e5133f395de6924b94d130748db78d8b5ffc
Reviewed-on: https://go-review.googlesource.com/c/build/+/205597
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
diff --git a/.gcloudignore b/.gcloudignore
new file mode 100644
index 0000000..db45b05
--- /dev/null
+++ b/.gcloudignore
@@ -0,0 +1,3 @@
+*.iso
+*.raw
+\.#*
diff --git a/app/appengine/Makefile b/app/appengine/Makefile
new file mode 100644
index 0000000..2f8567b
--- /dev/null
+++ b/app/appengine/Makefile
@@ -0,0 +1,7 @@
+usage:
+ echo "See Makefile for usage"
+ exit 1
+
+deploy:
+ go install golang.org/x/build/cmd/xb
+ GO111MODULE=on gcloud app --account=$$(xb google-email) --project=golang-org deploy app.yaml
diff --git a/app/appengine/README.md b/app/appengine/README.md
index d4330d9..eaae5a9 100644
--- a/app/appengine/README.md
+++ b/app/appengine/README.md
@@ -19,12 +19,5 @@
## Deploying
```sh
-gcloud config set project golang-org
-GO111MODULE=on gcloud app deploy app.yaml
-```
-
-or, to not affect your gcloud state, use:
-
-```
-GO111MODULE=on gcloud app --account=username@google.com --project=golang-org deploy app.yaml
+make deploy
```
diff --git a/cmd/xb/xb.go b/cmd/xb/xb.go
index 07e2443..e976ce0 100644
--- a/cmd/xb/xb.go
+++ b/cmd/xb/xb.go
@@ -13,9 +13,9 @@
// Examples:
//
// xb --staging kubectl ...
+// xb --prod kubectl ...
+// xb google-email # print the @google.com account from gcloud
//
-// Currently kubectl is the only supported subcommand.
-
package main // import "golang.org/x/build/cmd/xb"
import (
@@ -25,6 +25,7 @@
"log"
"os"
"os/exec"
+ "regexp"
"strings"
"golang.org/x/build/buildenv"
@@ -36,10 +37,10 @@
)
func usage() {
- fmt.Fprintf(os.Stderr, `xb {prod,staging} <CMD> [<ARGS>...]
+ fmt.Fprintf(os.Stderr, `xb [--prod or --staging] <CMD> [<ARGS>...]
Example:
- xb staging kubectl ...
- xb prod gcloud ...
+ xb --staging kubectl ...
+ xb google-email
`)
os.Exit(1)
}
@@ -68,6 +69,17 @@
runCmd()
case "docker":
runDocker()
+ case "google-email":
+ out, err := exec.Command("gcloud", "config", "configurations", "list").CombinedOutput()
+ if err != nil {
+ log.Fatalf("gcloud: %v, %s", err, out)
+ }
+ googRx := regexp.MustCompile(`\S+@google\.com\b`)
+ e := googRx.FindString(string(out))
+ if e == "" {
+ log.Fatalf("didn't find @google.com address in gcloud config configurations list: %s", out)
+ }
+ fmt.Println(e)
default:
log.Fatalf("unknown command %q", cmd)
}