gcs-fetcher/cloudbuild.yaml (69 lines of code) (raw):

steps: # Run tests. - name: 'golang:1.21' entrypoint: 'go' args: ['test', './...'] # Build the gcs-fetcher binary and put into the builder image. - name: 'gcr.io/cloud-builders/docker' args: - 'build' - '--build-arg=cmd=./cmd/gcs-fetcher/' - '--tag=gcr.io/$PROJECT_ID/gcs-fetcher' - '.' - name: 'gcr.io/$PROJECT_ID/gcs-fetcher' args: ['--help'] # Build the gcs-uploader binary and put it into the builder image. - name: 'gcr.io/cloud-builders/docker' args: - 'build' - '--build-arg=cmd=./cmd/gcs-uploader/' - '--tag=gcr.io/$PROJECT_ID/gcs-uploader' - '.' - name: 'gcr.io/$PROJECT_ID/gcs-uploader' args: ['--help'] # Test the manifest uploader with a defined manifest location. - name: 'gcr.io/$PROJECT_ID/gcs-uploader' args: - '--location=gs://${PROJECT_ID}_cloudbuild/manifest-${BUILD_ID}.json' # Print the manifest. - name: 'gcr.io/cloud-builders/gsutil' args: ['cat', 'gs://${PROJECT_ID}_cloudbuild/manifest-${BUILD_ID}.json'] # Fetch the manifest. - name: 'gcr.io/$PROJECT_ID/gcs-fetcher' args: - '--type=Manifest' - '--location=gs://${PROJECT_ID}_cloudbuild/manifest-${BUILD_ID}.json' - '--dest_dir=fetched' # Check that files were downloaded. - name: 'ubuntu' args: ['cat', 'fetched/cloudbuild.yaml'] # Tar.gz and upload the current directory, then fetch and check contents. - name: gcr.io/google.com/cloudsdktool/cloud-sdk entrypoint: 'bash' args: - -c - | tar czvf /tmp/out.tar.gz . gsutil cp /tmp/out.tar.gz gs://${PROJECT_ID}_cloudbuild/ - name: gcr.io/$PROJECT_ID/gcs-fetcher args: - --type=TarGzArchive - --location=gs://${PROJECT_ID}_cloudbuild/out.tar.gz - --dest_dir=targz - name: ubuntu args: - cat - targz/cloudbuild.yaml # Zip and upload the current directory, then fetch and check contents. - name: gcr.io/google.com/cloudsdktool/cloud-sdk entrypoint: 'bash' args: - -c - | apt-get install -y zip zip -r /tmp/out.zip . gsutil cp /tmp/out.zip gs://${PROJECT_ID}_cloudbuild/ - name: gcr.io/$PROJECT_ID/gcs-fetcher args: - --type=ZipArchive - --location=gs://${PROJECT_ID}_cloudbuild/out.zip - --dest_dir=zip - name: ubuntu args: - cat - zip/cloudbuild.yaml # Push the images. images: - 'gcr.io/$PROJECT_ID/gcs-fetcher' - 'gcr.io/$PROJECT_ID/gcs-uploader' timeout: '2100s'