1.9 KiB
Clone
Drone automatically clones your repository and submodules at the start of your build. No configuration is required. You can, however, use the clone section of the .drone.yml to customize this behavior as needed.
Clone Options
The custom clone options are:
depth- creates a shallow clone with truncated historyrecursive- recursively clones git submodulespath- relative path inside/drone/srcwhere the repository is cloned
This is an example yaml configuration:
clone:
depth: 50
recursive: true
path: github.com/drone/drone
Which results in the following command:
git clone --depth=50 --recusive=true \
https://github.com/drone/drone.git \
/drone/src/github.com/drone/drone
Clone Private Repos
Cloning a private repository requires authentication to the remote system. Drone prefers git+https and netrc to authenticate, but will fallback to git+ssh and deploy keys if not supported.
Drone prefers git+https for authentication because it allows you to clone multiple private repositories. This is helpful when you have git submodules or third party dependencies you need to download (via go get or npm install or others) that are sourced from a private repository.
Drone only injects the netrc and id_rsa files into your build environment if your repository is private, or running in private mode. We do this for security reasons to avoid leaking sensitive data.
Clone Plugin
You can override the default git plugin by specifying an alternative plugin image. An example use case may be integrating with alternate version control systems, such as mercurial:
clone:
image: bradrydzewski/hg
# below are plugin-specific parameters
path: override/default/clone/path
insecure: false
verbose: true
Please reference the official git plugin and use this as a starting point for custom plugin development:
https://github.com/drone-plugins/drone-git