diff --git a/cmd/godoc/Dockerfile.prod b/cmd/godoc/Dockerfile.prod index f357b8b7..d0dd1d06 100644 --- a/cmd/godoc/Dockerfile.prod +++ b/cmd/godoc/Dockerfile.prod @@ -44,6 +44,7 @@ RUN echo "requested go ref: ${GO_REF}" >> /goroot/buildinfo RUN echo "x/tools HEAD: ${TOOLS_HEAD}" >> /goroot/buildinfo RUN echo "x/tools clean: ${TOOLS_CLEAN}" >> /goroot/buildinfo RUN echo "image: ${DOCKER_TAG}" >> /goroot/buildinfo +RUN echo "build env: ${BUILD_ENV}" >> /goroot/buildinfo RUN rm -rf /goroot/.git diff --git a/cmd/godoc/Makefile b/cmd/godoc/Makefile index 5fb6d5d1..df91d9a8 100644 --- a/cmd/godoc/Makefile +++ b/cmd/godoc/Makefile @@ -19,14 +19,23 @@ usage: @echo "See Makefile and README.godoc-app" @exit 1 +cloud-build: Dockerfile.prod + gcloud builds submit \ + --project=$(GCP_PROJECT) \ + --config=cloudbuild.yaml \ + --substitutions=_GO_REF=$(GO_REF),_TOOLS_HEAD=$(TOOLS_HEAD),_TOOLS_CLEAN=$(TOOLS_CLEAN),_DOCKER_TAG=$(DOCKER_TAG) \ + ../.. # source code + docker-build: Dockerfile.prod # NOTE(cbro): move up in directory to include entire tools repo. + # NOTE(cbro): any changes made to this command must also be made in cloudbuild.yaml. cd ../..; docker build \ - -f cmd/godoc/Dockerfile.prod \ - --build-arg GO_REF=$(GO_REF) \ - --build-arg TOOLS_HEAD=$(TOOLS_HEAD) \ - --build-arg TOOLS_CLEAN=$(TOOLS_CLEAN) \ - --build-arg DOCKER_TAG=$(DOCKER_TAG) \ + -f=cmd/godoc/Dockerfile.prod \ + --build-arg=GO_REF=$(GO_REF) \ + --build-arg=TOOLS_HEAD=$(TOOLS_HEAD) \ + --build-arg=TOOLS_CLEAN=$(TOOLS_CLEAN) \ + --build-arg=DOCKER_TAG=$(DOCKER_TAG) \ + --build-arg=BUILD_ENV=local \ --tag=$(DOCKER_TAG) \ . diff --git a/cmd/godoc/README.godoc-app b/cmd/godoc/README.godoc-app index 0d62eb66..5eba93a7 100644 --- a/cmd/godoc/README.godoc-app +++ b/cmd/godoc/README.godoc-app @@ -66,9 +66,13 @@ godoc should come up at http://localhost:8080 Deploying to golang.org ----------------------- +Make sure you're signed in to gcloud: + + gcloud auth login + Build the image, push it to gcr.io, and deploy to Flex: - make docker-push deploy + make cloud-build deploy Point the load balancer to the newly deployed version: (This also runs regression tests) diff --git a/cmd/godoc/cloudbuild.yaml b/cmd/godoc/cloudbuild.yaml new file mode 100644 index 00000000..fd297f07 --- /dev/null +++ b/cmd/godoc/cloudbuild.yaml @@ -0,0 +1,25 @@ +# Copyright 2018 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. + +# NOTE(cbro): any changes to the docker command must also be +# made in docker-build in the Makefile. +# +# Variable substitutions must have a preceding underscore. See: +# https://cloud.google.com/cloud-build/docs/configuring-builds/substitute-variable-values#using_user-defined_substitutions +steps: +- name: 'gcr.io/cloud-builders/docker' + args: [ + 'build', + '-f=cmd/godoc/Dockerfile.prod', + '--build-arg=GO_REF=${_GO_REF}', + '--build-arg=TOOLS_HEAD=${_TOOLS_HEAD}', + '--build-arg=TOOLS_CLEAN=${_TOOLS_CLEAN}', + '--build-arg=DOCKER_TAG=${_DOCKER_TAG}', + '--build-arg=BUILD_ENV=cloudbuild', + '--tag=${_DOCKER_TAG}', + '.', + ] +images: ['${_DOCKER_TAG}'] +options: + machineType: 'N1_HIGHCPU_8' # building the godoc index takes a lot of memory.