CLONE [repository URL] (DEFAULT=branch-name) (files...) [destination]
The CLONE
instruction moves files from a repository to the runner.
Files can be:
CLONE
directive will automatically add authentication credentials if your account
is connected with the associated repository.
If the current Layerfile’s branch is, e.g., feat-1
, then CLONE
will try to
check out the feat-1
branch from [repository URL]
. If that branch doesn’t
exist, it will fall back to the branch specified by DEFAULT=
.
This facilitates multi-repository development by allowing changes to be made to
libraries concurrently without needing them to be merged to be used.
CLONE
watches files in the same manner as COPY
, this means that steps will
only re-run if files in the cloned repository change.
CLONE https://github.com/webappio/library.git DEFAULT=master /library
to
clone the current branch (e.g., feat-1) if it exists, falling back to master
otherwise to the /library
directory in the runner.CLONE https://github.com/my-project/hello.git /hello-project
to copy the
entire repository contents to the destination /hello-project
in the runner.CLONE https://github.com/my-project/hello.git DEFAULT=main /package.json /package-lock.json ./
to copy package.json
and package-lock.json
from the specified project,
into the working directory in the runner.