golang-sample/cloudbuild.yaml (24 lines of code) (raw):
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# [START cloudbuild_go_yaml]
# [START cloudbuild_go_test_yaml]
steps:
# Run tests and save to file
- name: golang:1.24
entrypoint: /bin/bash
args:
- -c
- |
go install github.com/jstemmer/go-junit-report/v2@latest
2>&1 go test -timeout 1m -v ./... | /go/bin/go-junit-report -set-exit-code -iocopy -out ${SHORT_SHA}_test_log.xml
# [END cloudbuild_go_test_yaml]
# [START cloudbuild_go_image_yaml]
# Docker Build
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t',
'us-central1-docker.pkg.dev/$PROJECT_ID/$_AR_REPO_NAME/myimage:$SHORT_SHA', '.']
# [END cloudbuild_go_image_yaml]
# [START cloudbuild_go_push_yaml]
# Docker push to Google Artifact Registry
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'us-central1-docker.pkg.dev/$PROJECT_ID/$_AR_REPO_NAME/myimage:$SHORT_SHA']
# [END cloudbuild_go_push_yaml]
# [START cloudbuild_go_deploy_yaml]
# Deploy to Cloud Run
- name: 'gcr.io/cloud-builders/gcloud'
args: ['run', 'deploy', 'helloworld-${SHORT_SHA}',
'--image=us-central1-docker.pkg.dev/$PROJECT_ID/$_AR_REPO_NAME/myimage:$SHORT_SHA',
'--region', 'us-central1', '--platform', 'managed']
# [END cloudbuild_go_deploy_yaml]
# [START cloudbuild_go_logs_yaml]
# Save test logs to Google Cloud Storage
artifacts:
objects:
location: gs://$_BUCKET_NAME/
paths:
- ${SHORT_SHA}_test_log.xml
# [END cloudbuild_go_logs_yaml]
# Store images in Google Artifact Registry
images:
- us-central1-docker.pkg.dev/$PROJECT_ID/$_AR_REPO_NAME/myimage:$SHORT_SHA
# [END cloudbuild_go_yaml]