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-gitBuild 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.
In order to be able to use podman on FreeBSD to build the image,
you'll need to install the podman-suite package and your FreeBSD
version must be 14.2 or higher.
To build the image on FreeBSD, use this podman command as root:
podman 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 freebsd/amd64 --file docker/Dockerfile.freebsd \
--tag woodpeckerci/plugin-git --network host .The image can then be pushed with podman push etc.
Clone a commit:
docker run --rm \
-e CI_REPO_CLONE_URL=https://github.com/garyburd/redigo.git \
-e CI_WORKSPACE=/go/src/github.com/garyburd/redigo \
-e CI_PIPELINE_EVENT=push \
-e CI_COMMIT_SHA=d8dbe4d94f15fe89232e0402c6e8a0ddf21af3ab \
-e PLUGIN_REF=refs/heads/master \
woodpeckerci/plugin-gitClone a pull request:
docker run --rm \
-e CI_REPO_CLONE_URL=https://github.com/garyburd/redigo.git \
-e CI_WORKSPACE=/go/src/github.com/garyburd/redigo \
-e CI_PIPELINE_EVENT=pull_request \
-e CI_COMMIT_SHA=3b4642018d177bf5fecc5907e7f341a2b5c12b8a \
-e PLUGIN_REF=refs/pull/74/head \
woodpeckerci/plugin-gitClone a pull request and attempt merging it with the target branch:
docker run --rm \
-e CI_PIPELINE_EVENT=pull_request \
-e CI_REPO_CLONE_URL=https://codeberg.org/johanvdw/test-git-plugin.git \
-e CI_COMMIT_SHA=d02eaf69b920b19fd7b14ad3aee622dd97413fbc \
-e CI_COMMIT_TARGET_BRANCH=main \
-e PLUGIN_REF=refs/pull/1/head \
-e PLUGIN_MERGE_PULL_REQUEST=true \
-e PLUGIN_GIT_USERNAME=ci \
-e PLUGIN_GIT_USEREMAIL=ci@mydomain.ci \
release/plugin-gitClone a tag:
docker run --rm \
-e CI_REPO_CLONE_URL=https://github.com/garyburd/redigo.git \
-e CI_WORKSPACE=/go/src/github.com/garyburd/redigo \
-e CI_PIPELINE_EVENT=tag \
-e CI_COMMIT_SHA=3b4642018d177bf5fecc5907e7f341a2b5c12b8a \
-e PLUGIN_REF=refs/tags/74/head \
woodpeckerci/plugin-gitThe 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).