blob: 37f75d95c148daf4e3c716af99fcca8690b80ecf [file] [log] [blame]
This directory contains the scripts for creating a Google Container Builder
build step and trigger for rolling Upspin binary releases.
How it works
1. Gerrit pushes a commit to the repository.
2. Google's infrastructure automatically pulls that commit into a private Git
repo inside the upspin-prod Google Cloud Project.
3. Step 2 triggers a Google Container Builder build, which launches a Docker
image to build the release.
4. The Docker image:
a. Fetches dependencies,
b. Builds the upspin, upspinfs, and cacheserver binaries,
c. Writes the resulting binaries to the Upspin tree,
d. Updates the links inside
How it works for non-core repositories (, for example)
The same as the above, but step 4d is not performed.
Setting it up
This document assumes you have permissions to work with the 'upspin-prod'
Google Cloud project.
First, log in with gcloud:
$ gcloud auth login
Create a Source Repository named 'upspin' and configure it to mirror
the contents of the repo.
Do the same for 'exp'.
Generate the keys for from the secret seed and put them in
the '' directory (talk to your fellow
Upspin team member for the secret):
$ mkdir secrets
$ upspin keygen -where=./secrets -secretseed $SEED
Create the 'release' build step using upspin-deploy-gcp:
$ go get
$ upspin-deploy-gcp -release-image
Delete the secrets directory, to prevent leakages:
$ rm -r secrets
Create a trigger that runs the relevant build steps
on each new commit to the 'upspin' and 'exp' repos:
$ ./
To test that everything is working, trigger the builds manually:
Once complete, fresh binaries should be visible in the tree.
If the build fails, look at the log output of the build for clues: