Smooth Checkout
All the things you need during a Buildkite checkout :butter: :kite:
Usage
Repository-less builds
steps:
- command: echo "Skips checking out Git project in checkout"
plugins:
- predictivehirebuild/smooth-checkout#v1.0.0:
skip_checkout: true
Checking out repo
steps:
- command: echo "Checks out repo at given ref"
plugins:
- predictivehirebuild/smooth-checkout#v1.0.0:
repos:
- config:
- url: git@github.com:<username>/<reponame>.git
ref: <ref>
If ref
is not provided the values of BUILDKITE_BRANCH
and BUILDKITE_COMMIT
env vars are used.
Allowed values for ref
:
- Branch name
- Git tag
- Commit SHA (40 character long hash)
Checking out multiple repositories
You can checkout multiple repositories by providing multiple config
elements:
steps:
- command: echo "Checks out multiple git repositories"
plugins:
- predictivehirebuild/smooth-checkout#v1.0.0:
repos:
- config:
- url: git@github.com:<username>/<repo_1>.git
- config:
- url: https://github.com/<username>/<repo_2>.git
ref: <ref>
Unlike single repo checkouts, when checking out multiple repos, the working directory will be set to $WOKRSPACE
, where all the repo checkouts have been done.
In the above example, the contents of the working directory would be repo_1/
and repo_2/
.
You can also explicitly provide the path to an ssh identity file using the ssh_key_path
config field:
steps:
- command: echo "Checks out multiple git repositories"
plugins:
- predictivehirebuild/smooth-checkout#v1.0.0:
repos:
- config:
- url: git@github.com:<username>/<repo_1>.git
ssh_key_path: .ssh/key_1
- config:
- url: git@github.com:<username>/<repo_2>.git
ref: <ref>
ssh_key_path: .ssh/key_2
If you are using smooth-secrets to configure ssh keys, you can do the following to easily set the ssh_key_path
:
steps:
- command: echo "Checks out multiple git repositories"
plugins:
- predictivehirebuild/smooth-checkout#v1.0.0:
repos:
- config:
- url: git@github.com:<username>/<repo>.git
ssh_key_path: $$SECRETS_DIR/<key>
where <key>
is the value of key
field in smooth-secrets config with any /
characters replaced by -
.