Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 2.01 KB | None | 0 0
  1. steps:
  2.  
  3.  
  4. #Go version
  5.  
  6. - id: go_version
  7.  
  8.   name: "gcr.io/cloud-builders/go"
  9.  
  10.   args: ["version"]
  11.  
  12.   env: ["GOPATH=."]
  13.  
  14.   waitFor: ['-']
  15.  
  16.  
  17.  
  18. #Run gosec
  19.  
  20. - id: go_security
  21.  
  22.   name: "securego/gosec:2.0.0"
  23.  
  24.   args: ["./..."]
  25.  
  26.   env: ["GOPATH=/."]
  27.  
  28.   waitFor: ['-']
  29.  
  30.  
  31.  
  32. # Pull last docker image for caching purposes
  33.  
  34. - id: pull_last_dockerimage
  35.  
  36.   name: "gcr.io/cloud-builders/docker"
  37.  
  38.   entrypoint: 'bash'
  39.  
  40.   args:
  41.    - '-c'
  42.  
  43.    - |
  44.      docker pull eu.gcr.io/$PROJECT_ID/api:latest || exit 0
  45.  
  46.   waitFor: ['-']
  47.  
  48.  
  49.  
  50. #Run docker build
  51.  
  52. - id: build_docker
  53.  
  54.   name: 'gcr.io/cloud-builders/docker'
  55.  
  56.   args: [
  57.  
  58.       'build',
  59.  
  60.       '-t', 'eu.gcr.io/$PROJECT_ID/api:${SHORT_SHA}',
  61.  
  62.       '-t', 'eu.gcr.io/$PROJECT_ID/api:latest',  
  63.  
  64.       '--cache-from', 'eu.gcr.io/$PROJECT_ID/api:latest',
  65.  
  66.       '.'
  67.  
  68.       ]
  69.  
  70.   env: [
  71.  
  72.       "GOPATH=/.",
  73.  
  74.       "GOCACHE=/workspace/",
  75.  
  76.       "GO111MODULE=on",
  77.  
  78.       "GOPROXY=https://proxy.golang.org"
  79.  
  80.       ]
  81.  
  82.   waitFor: ['pull_last_dockerimage']
  83.  
  84.  
  85.  
  86.   #Go test
  87.  
  88. - id: go_test
  89.  
  90.   name: 'gcr.io/cloud-builders/go'
  91.  
  92.   args: ['test', '-v']
  93.  
  94.   env: [
  95.  
  96.       "GOPATH=/.",
  97.  
  98.       "GOCACHE=/workspace/",
  99.  
  100.       "GO111MODULE=on",
  101.  
  102.       "GOPROXY=https://proxy.golang.org"
  103.  
  104.       ]
  105.  
  106.   waitFor: ["build_docker"]
  107.  
  108.  
  109.  
  110. #Run push to GCR
  111.  
  112. - id: push_docker_to_GCR
  113.  
  114.   name: 'gcr.io/cloud-builders/docker'
  115.  
  116.   args: ["push", 'eu.gcr.io/$PROJECT_ID/api:${SHORT_SHA}']
  117.  
  118.   waitFor: ["go_test"]
  119.  
  120.  
  121.  
  122. # Deploy Cloud Run Service
  123.  
  124. # for this to work need these 3 roles on the cloudbuild member in IAM
  125.  
  126. # Cloud Build Service Account, Service Account User & Cloud Build Admin
  127.  
  128. - id: cloud_run_deploy
  129.  
  130.   name: 'gcr.io/cloud-builders/gcloud'
  131.  
  132.   args: [
  133.  
  134.     'beta', 'run', 'deploy',
  135.  
  136.     'api',
  137.  
  138.     '--image', 'eu.gcr.io/$PROJECT_ID/api:${SHORT_SHA}',
  139.  
  140.     '--region', 'europe-west1',
  141.  
  142.     '--memory','256Mi',
  143.  
  144.     '--platform', 'managed',
  145.  
  146.     '--allow-unauthenticated'
  147.  
  148.     ]
  149.  
  150.   waitFor: ["push_docker_to_GCR"]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement