-
Notifications
You must be signed in to change notification settings - Fork 37
/
cloudbuild-golang.yaml
53 lines (44 loc) · 1.54 KB
/
cloudbuild-golang.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#
# Author: Hari Sekhon
# Date: [% DATE # 2020-09-23 19:04:15 +0100 (Wed, 23 Sep 2020) %]
#
# vim:ts=2:sts=2:sw=2:et
#
# [% URL %]
#
# [% LICENSE %]
#
# [% MESSAGE %]
#
# [% LINKEDIN %]
#
# ============================================================================ #
# G C P C l o u d B u i l d
# ============================================================================ #
# References:
#
# https://cloud.google.com/cloud-build/docs/build-config
#
# https://cloud.google.com/cloud-build/docs/building/build-go
#
# https://cloud.google.com/cloud-build/docs/access-private-github-repos
# XXX: See core cloudbuild.yml adjacent for more tips and tricks
# gcloud builds submit --config cloudbuild-golang.yaml .
# tars $PWD to bucket called ${PROJECT_ID}_cloudbuild
# $PROJECT_ID and $BUILD_ID are auto-populated by Cloud Build
---
timeout: 600s
steps:
# uses the official 'golang' docker image from DockerHub to build the binary
- name: golang
args: ['go', 'build', '.']
timeout: 500s
# uploads the given artifact paths to the GCS bucket along with a metadata file:
# artifacts-12345abc-6789-0d1e-23fa-4b5cd678e901.json
artifacts:
objects:
# XXX: you probably want a unique versioned directory path here to avoid overriding previous binaries
# or use Object Versioning - https://cloud.google.com/storage/docs/object-versioning
location: 'gs://$PROJECT_ID-go/bin/$BUILD_ID/'
# XXX: replace mybinary - should match the generated binary name (module basename in go.mod)
paths: ['mybinary']