1

I have an HTTP service written in Go. Inside main.go I have a global version string.

package main

var version string

Locally, I build using -ldflags "-X main.version=$VERSION where $VERSION is determined by the shell environment, like so:

VERSION=v0.16.0 go build ./cmd/app -ldflags "-X main.version=$VERSION

I've recently decided to trial Google App Engine and started with a basic YAML file:

runtime: go111

handlers:
- url: /.*
  script: auto

What can I set in the YAML file in order to instruct GAE to build with the equivalent ldflags to bake in my version string?

I should also mention I use go modules with GO111MODULE=on locally when building.

Andy Fusniak
  • 1,548
  • 1
  • 17
  • 28

1 Answers1

0

You can't do it with you app.yaml file. However, you can use Cloud build to build and deploy your app to App Engine. In your cloudbuild.yaml you can add a line to the build step

args: ['build', '-a', '-installsuffix', 'cgo', '-ldflags', '''-w''', '-o', 'main', './main.go']
avivl
  • 407
  • 4
  • 4