Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- steps:
- #Go version
- - id: go_version
- name: "gcr.io/cloud-builders/go"
- args: ["version"]
- env: ["GOPATH=."]
- waitFor: ['-']
- #Run gosec
- - id: go_security
- name: "securego/gosec:2.0.0"
- args: ["./..."]
- env: ["GOPATH=/."]
- waitFor: ['-']
- # Pull last docker image for caching purposes
- - id: pull_last_dockerimage
- name: "gcr.io/cloud-builders/docker"
- entrypoint: 'bash'
- args:
- - '-c'
- - |
- docker pull eu.gcr.io/$PROJECT_ID/api:latest || exit 0
- waitFor: ['-']
- #Run docker build
- - id: build_docker
- name: 'gcr.io/cloud-builders/docker'
- args: [
- 'build',
- '-t', 'eu.gcr.io/$PROJECT_ID/api:${SHORT_SHA}',
- '-t', 'eu.gcr.io/$PROJECT_ID/api:latest',
- '--cache-from', 'eu.gcr.io/$PROJECT_ID/api:latest',
- '.'
- ]
- env: [
- "GOPATH=/.",
- "GOCACHE=/workspace/",
- "GO111MODULE=on",
- "GOPROXY=https://proxy.golang.org"
- ]
- waitFor: ['pull_last_dockerimage']
- #Go test
- - id: go_test
- name: 'gcr.io/cloud-builders/go'
- args: ['test', '-v']
- env: [
- "GOPATH=/.",
- "GOCACHE=/workspace/",
- "GO111MODULE=on",
- "GOPROXY=https://proxy.golang.org"
- ]
- waitFor: ["build_docker"]
- #Run push to GCR
- - id: push_docker_to_GCR
- name: 'gcr.io/cloud-builders/docker'
- args: ["push", 'eu.gcr.io/$PROJECT_ID/api:${SHORT_SHA}']
- waitFor: ["go_test"]
- # Deploy Cloud Run Service
- # for this to work need these 3 roles on the cloudbuild member in IAM
- # Cloud Build Service Account, Service Account User & Cloud Build Admin
- - id: cloud_run_deploy
- name: 'gcr.io/cloud-builders/gcloud'
- args: [
- 'beta', 'run', 'deploy',
- 'api',
- '--image', 'eu.gcr.io/$PROJECT_ID/api:${SHORT_SHA}',
- '--region', 'europe-west1',
- '--memory','256Mi',
- '--platform', 'managed',
- '--allow-unauthenticated'
- ]
- waitFor: ["push_docker_to_GCR"]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement