Mark Mentovai 9cd1a4dadb doc: Upgrade the crashpad-home App Engine app to the Go 1.11 runtime
App Engine’s Go 1.9 runtime is no longer functional. See
https://cloud.google.com/appengine/docs/deprecations and
https://cloud.google.com/appengine/docs/standard/go111/go-differences.

Note that this doesn’t migrate away from the App Engine SDK per
https://cloud.google.com/appengine/docs/standard/go111/go-differences#migrating-appengine-sdk,
as this service does use App Engine APIs. Newer Go runtimes are
available, currently including 1.12, 1.13, and a beta version of 1.14,
but 1.12 and newer do not support App Engine APIs per
https://cloud.google.com/appengine/docs/standard/go112/go-differences,
so this upgrade targets the Go 1.11 runtime.

Change-Id: Ia9c28cfb1abe5f226ae8c07de90cd2e9b6e19a48
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2328805
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-07-31 03:06:41 +00:00

52 lines
2.4 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This is the App Engine app that serves https://crashpad.chromium.org/.
To work on this app, obtain the following packages:
- Go, from https://golang.org/dl/. This is only necessary for local development
and testing. The directory containing the “go” executable, such as
/usr/local/go/bin, must appear in $PATH. It does not appear critical for the
Go version used to match the Go runtime version used (for example, these
instructions were tested with Go 1.14 locally but a Go 1.11 runtime when
deployed), but if problems are encountered, it would be wise to use the same
version for both local development and AppEngine deployment.
- The Google Cloud SDK from, https://cloud.google.com/sdk/docs. This is
necessary for both local development and for AppEngine deployment. Unpacking
this package produces a google-cloud-sdk directory, whose bin child directory
may be added to $PATH for convenience, although this is not strictly
necessary.
The commands in this README are expected to be run from the directory containing
it. $GOPATH must also be set to include this directory:
% export GOPATH="$(go env GOPATH):$(pwd)"
To test locally:
% go get -d crashpad-home
% …/google-cloud-sdk/bin/dev_appserver.py src/crashpad-home
Look for the “Starting module "default" running at: http://localhost:8080” line,
which tells you the URL of the local running instance of the app. Test
http://localhost:8080/ and http://localhost:8080/doxygen to ensure that they
work.
To deploy:
% version=$(git rev-parse --short=12 HEAD)
% [[ -n "$(git status --porcelain)" ]] && version+=-dirty
% …/google-cloud-sdk/bin/gcloud app deploy \
--project=crashpad-home --version="${version}" --no-promote \
"$(pwd)/src/crashpad-home"
(Note: the $(pwd) is necessary for “gcloud app deploy” to recognize that the
application is in GOPATH, putting it into “GOPATH mode”. This normally happens
correctly on its own even with a relative path, but will fail for relative
paths when $(pwd) is a symbolic link. Using an absolute path here will save you
from this frustration, freeing you up to undoubtedly experience other
frustrations.)
Activate a newly-deployed version by visiting the App Engine console at
https://console.cloud.google.com/appengine/versions?project=crashpad-home,
selecting it, and choosing “Migrate Traffic”. It is also possible to delete old
versions from this page when they are no longer needed.