rollout/cli_tools_cloudbuild_build.yaml (96 lines of code) (raw):
# Build all the docker images and put them into container registry (gcr.io)
# Later, these images will be copied to artifacts registry on demand.
timeout: 1800s
options:
env:
- GO111MODULE=auto
- GOPROXY=https://proxy.golang.org
volumes:
- name: go-pkg
path: /go/pkg
- name: go-src
path: /go/src
substitutions:
_RELEASE: 'release'
_PREV_RELEASE: 'prev-release'
_RELEASE_PROJECT_FLAG: 'github.com/GoogleCloudPlatform/compute-image-import/cli_tools/common/utils/param.ReleaseProject'
steps:
# Build import_precheck.
- name: 'golang'
dir: 'cli_tools/import_precheck'
args: ['go', 'build', '-o=/workspace/linux/import_precheck']
env: ['CGO_ENABLED=0']
- name: 'golang'
dir: 'cli_tools/import_precheck'
args: ['go', 'build', '-o=/workspace/windows/import_precheck.exe']
env: ['GOOS=windows']
- name: 'golang'
dir: 'cli_tools/import_precheck'
args: ['go', 'build', '-o=/workspace/linux/import_precheck_32bit']
env:
- CGO_ENABLED=0
- GOARCH=386
- name: 'golang'
dir: 'cli_tools/import_precheck'
args: ['go', 'build', '-o=/workspace/windows/import_precheck_32bit.exe']
env:
- GOOS=windows
- GOARCH=386
# Build gce_vm_image_import.
- name: 'golang'
dir: 'cli_tools/gce_vm_image_import'
args: ['go', 'build', '-o=/workspace/linux/gce_vm_image_import', '-ldflags=-X $_RELEASE_PROJECT_FLAG=$_IMAGE_PROJECT']
env: ['CGO_ENABLED=0']
- name: 'gcr.io/kaniko-project/executor:v1.1.0'
args:
- --destination=gcr.io/$_IMAGE_PROJECT/gce_vm_image_import:$_RELEASE
- --destination=gcr.io/$_IMAGE_PROJECT/gce_vm_image_import:$COMMIT_SHA
- --destination=gcr.io/$_IMAGE_PROJECT/gce_vm_image_import:$_WORKFLOW_EXECUTION_ID
- --context=/workspace
- --dockerfile=gce_vm_image_import.Dockerfile
# Build gce_onestep_image_import.
- name: 'golang'
dir: 'cli_tools/gce_onestep_image_import'
args: ['go', 'build', '-o=/workspace/linux/gce_onestep_image_import', '-ldflags=-X $_RELEASE_PROJECT_FLAG=$_IMAGE_PROJECT']
env: ['CGO_ENABLED=0']
- name: 'gcr.io/kaniko-project/executor:v1.1.0'
args:
- --destination=gcr.io/$_IMAGE_PROJECT/gce_onestep_image_import:$_RELEASE
- --destination=gcr.io/$_IMAGE_PROJECT/gce_onestep_image_import:$COMMIT_SHA
- --destination=gcr.io/$_IMAGE_PROJECT/gce_onestep_image_import:$_WORKFLOW_EXECUTION_ID
- --context=/workspace
- --dockerfile=gce_onestep_image_import.Dockerfile
# Build gce_vm_image_export.
- name: 'golang'
dir: 'cli_tools/gce_vm_image_export'
args: ['go', 'build', '-o=/workspace/linux/gce_vm_image_export', '-ldflags=-X $_RELEASE_PROJECT_FLAG=$_IMAGE_PROJECT']
env: ['CGO_ENABLED=0']
- name: 'gcr.io/kaniko-project/executor:v1.1.0'
args:
- --destination=gcr.io/$_IMAGE_PROJECT/gce_vm_image_export:$_RELEASE
- --destination=gcr.io/$_IMAGE_PROJECT/gce_vm_image_export:$COMMIT_SHA
- --destination=gcr.io/$_IMAGE_PROJECT/gce_vm_image_export:$_WORKFLOW_EXECUTION_ID
- --context=/workspace
- --dockerfile=gce_vm_image_export.Dockerfile
# Build gce_ovf_import.
- name: 'golang'
dir: 'cli_tools/gce_ovf_import'
args: ['go', 'build', '-o=/workspace/linux/gce_ovf_import', '-ldflags=-X $_RELEASE_PROJECT_FLAG=$_IMAGE_PROJECT']
env: ['CGO_ENABLED=0']
- name: 'gcr.io/kaniko-project/executor:v1.1.0'
args:
- --destination=gcr.io/$_IMAGE_PROJECT/gce_ovf_import:$_RELEASE
- --destination=gcr.io/$_IMAGE_PROJECT/gce_ovf_import:$COMMIT_SHA
- --destination=gcr.io/$_IMAGE_PROJECT/gce_ovf_import:$_WORKFLOW_EXECUTION_ID
- --context=/workspace
- --dockerfile=gce_ovf_import.Dockerfile
# Build gce_ovf_export.
- name: 'golang'
dir: 'cli_tools/gce_ovf_export'
args: ['go', 'build', '-o=/workspace/linux/gce_ovf_export', '-ldflags=-X $_RELEASE_PROJECT_FLAG=$_IMAGE_PROJECT']
env: ['CGO_ENABLED=0']
- name: 'gcr.io/kaniko-project/executor:v1.1.0'
args:
- --destination=gcr.io/$_IMAGE_PROJECT/gce_ovf_export:$_RELEASE
- --destination=gcr.io/$_IMAGE_PROJECT/gce_ovf_export:$COMMIT_SHA
- --destination=gcr.io/$_IMAGE_PROJECT/gce_ovf_export:$_WORKFLOW_EXECUTION_ID
- --context=/workspace
- --dockerfile=gce_ovf_export.Dockerfile
# Copy Linux binaries to GCS - _IMAGE_PROJECT
- name: 'gcr.io/cloud-builders/gsutil'
args: ['cp', '/workspace/linux/*', 'gs://$_IMAGE_PROJECT/$_RELEASE/linux/']
# Copy Windows binaries to GCS - _IMAGE_PROJECT
- name: 'gcr.io/cloud-builders/gsutil'
args: ['cp', '/workspace/windows/*', 'gs://$_IMAGE_PROJECT/$_RELEASE/windows/']
# Make binaries world-readable - _IMAGE_PROJECT
- name: 'gcr.io/cloud-builders/gsutil'
args: ['-m', 'acl', '-r', 'ch', '-u', 'AllUsers:R', 'gs://$_IMAGE_PROJECT/$_RELEASE/*']