Skip to content

A local Google Cloud Build Local runner for non-production and development purposes based on the original (now archived) Google respository.

License

Notifications You must be signed in to change notification settings

chriseaton/cloud-build-local

Repository files navigation

Google Cloud Build Local

GCBL runs Google Cloud Build locally, allowing easier debugging, execution of builds on your own hardware, and integration into local build and test workflows. Please note that the Local Builder is not 100% feature-compatible with the hosted Google Cloud Build service.

Community Fork

This Google Cloud Build Local fork is maintained by volunteers, which at best, makes this ok for a local debugging tool for Google Cloud Build. It does not support 100% feature parity with the hosted Cloud Build service and should not be used for production workloads.

As of 2023, the original repository from Google has been archived. This fork is an attempt to keep the project alive, at least, in some form close to the original, and maybe improve on it a bit.

New Features

  • Added support for loading .env file secrets for secretEnv replacements.
    This will convert only the matching secretEnv into a corresponding env with a value.
    To use this, just add the --env=<envfilepath> argument with envfilepath as the path to the .env file.
    This is not supported in the cloud, and only works for GCBL. Which means the cloud will simply treat a secretEnv as intended :)
  • No contributor agreements. Just code!
  • Added support for skipping cloud token gathering and metadata with argument --no-cloud. This let's you run cloud-build-local without an active gcloud authentication token (which requires a GCP account).

Usage

To run a local build you should make sure you've got credentials to GCP if using any resources (gcloud auth login), then specify a false dryrun, the config, and the source code/content directory path.

./cloud-build-local --dryrun=false --config=path/to/cloudbuild.yaml --env=/path/to/.env path/to/code

Development

To build and test the GCPL, you need a working Go environment. You should also install gcloud and Docker.

This binary has only been tested to work on Linux operating systems.

Setup

go mod vendor
go get

Build

go build -o cloud-build-local github.com/GoogleCloudPlatform/cloud-build-local

Optionally, create a system-wide link to the built executable:

sudo ln -s "$(pwd)/cloud-build-local" /usr/bin/cloud-build-local

Test

If you'd like to run the manual test build...

  1. Create a tests/.env file with a secret replacement value:
    HELLO_BUILD=my secret env variable replacement
  2. Run the test locally:
    ./cloud-build-local --dryrun=false --config=./tests/cloudbuild.yaml --env=./tests/.env ./tests/src

Other tests (legacy):

go test $(go list github.com/GoogleCloudPlatform/cloud-build-local/... | grep -v vendor)

About

A local Google Cloud Build Local runner for non-production and development purposes based on the original (now archived) Google respository.

Topics

Resources

License

Stars

Watchers

Forks