Woodpecker plugin to clone git
repositories. For the usage information and a listing of the available options please take a look at the docs.
The docs are also available in docs.md
in this repository.
Build the binary with the following command:
export GOOS=linux
export GOARCH=amd64
export CGO_ENABLED=0
export GO111MODULE=on
go build -v -a -tags netgo -o release/linux/amd64/plugin-git
Build the Docker image with the following command:
docker buildx build \
--label org.label-schema.build-date=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
--label org.label-schema.vcs-ref=$(git rev-parse --short HEAD) \
--platform linux/amd64 --output type=docker \
--file docker/Dockerfile.multiarch --tag woodpeckerci/plugin-git .
The platform linux/amd64 should be replaced by the correct platform.
This will build the image and load it into docker so the image can be used locally.
More information on the output formats can be found in docker buildx doc.
Clone a commit:
docker run --rm \
-e CI_REPO_REMOTE=https://github.com/garyburd/redigo.git \
-e CI_WORKSPACE=/go/src/github.com/garyburd/redigo \
-e CI_BUILD_EVENT=push \
-e CI_COMMIT_SHA=d8dbe4d94f15fe89232e0402c6e8a0ddf21af3ab \
-e CI_COMMIT_REF=refs/heads/master \
woodpeckerci/plugin-git
Clone a pull request:
docker run --rm \
-e CI_REPO_REMOTE=https://github.com/garyburd/redigo.git \
-e CI_WORKSPACE=/go/src/github.com/garyburd/redigo \
-e CI_BUILD_EVENT=pull_request \
-e CI_COMMIT_SHA=3b4642018d177bf5fecc5907e7f341a2b5c12b8a \
-e CI_COMMIT_REF=refs/pull/74/head \
woodpeckerci/plugin-git
Clone a tag:
docker run --rm \
-e CI_REPO_REMOTE=https://github.com/garyburd/redigo.git \
-e CI_WORKSPACE=/go/src/github.com/garyburd/redigo \
-e CI_BUILD_EVENT=tag \
-e CI_COMMIT_SHA=3b4642018d177bf5fecc5907e7f341a2b5c12b8a \
-e CI_COMMIT_REF=refs/tags/74/head \
woodpeckerci/plugin-git
The docker image can be build using --build-arg HOME=<custom home>
.
This will create the directory for the custom home and set the custom home as the default value for the home
plugin setting (see the plugin docs for more information about this setting).