init
This commit is contained in:
parent
9e6d9db991
commit
3e68be28d3
@ -1,4 +1,3 @@
|
|||||||
---
|
|
||||||
apiVersion: tekton.dev/v1
|
apiVersion: tekton.dev/v1
|
||||||
kind: Task
|
kind: Task
|
||||||
metadata:
|
metadata:
|
||||||
@ -9,14 +8,14 @@ metadata:
|
|||||||
tekton.dev/pipelines.minVersion: "0.38.0"
|
tekton.dev/pipelines.minVersion: "0.38.0"
|
||||||
tekton.dev/categories: Git
|
tekton.dev/categories: Git
|
||||||
tekton.dev/tags: git
|
tekton.dev/tags: git
|
||||||
tekton.dev/displayName: "git clone & checkout"
|
tekton.dev/displayName: "git clone and checkout"
|
||||||
tekton.dev/platforms: "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64"
|
tekton.dev/platforms: "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64"
|
||||||
spec:
|
spec:
|
||||||
description: >-
|
description: >-
|
||||||
These Tasks are Git tasks to work with repositories used by other tasks
|
These Tasks are Git tasks to work with repositories used by other tasks
|
||||||
in your Pipeline.
|
in your Pipeline.
|
||||||
|
|
||||||
The git-clone-checkout Task will clone a repo from the provided url into the
|
The git-clone Task will clone a repo from the provided url into the
|
||||||
output Workspace. By default the repo will be cloned into the root of
|
output Workspace. By default the repo will be cloned into the root of
|
||||||
your Workspace. You can clone into a subdirectory by setting this Task's
|
your Workspace. You can clone into a subdirectory by setting this Task's
|
||||||
subdirectory param. This Task also supports sparse checkouts. To perform
|
subdirectory param. This Task also supports sparse checkouts. To perform
|
||||||
@ -46,15 +45,58 @@ spec:
|
|||||||
A workspace containing CA certificates, this will be used by Git to
|
A workspace containing CA certificates, this will be used by Git to
|
||||||
verify the peer with when fetching or pushing over HTTPS.
|
verify the peer with when fetching or pushing over HTTPS.
|
||||||
params:
|
params:
|
||||||
- name: repo-url
|
- name: url
|
||||||
description: Repository URL to clone from.
|
description: Repository URL to clone from.
|
||||||
type: string
|
type: string
|
||||||
- name: revision
|
- name: revision
|
||||||
description: Revision to checkout. (branch, tag, sha, ref, etc...)
|
description: Revision to checkout. (branch, tag, sha, ref, etc...)
|
||||||
type: string
|
type: string
|
||||||
default: ""
|
default: ""
|
||||||
|
- name: refspec
|
||||||
|
description: Refspec to fetch before checking out revision.
|
||||||
|
default: ""
|
||||||
|
- name: submodules
|
||||||
|
description: Initialize and fetch git submodules.
|
||||||
|
type: string
|
||||||
|
default: "true"
|
||||||
|
- name: depth
|
||||||
|
description: Perform a shallow clone, fetching only the most recent N commits.
|
||||||
|
type: string
|
||||||
|
default: "1"
|
||||||
|
- name: sslVerify
|
||||||
|
description: Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.
|
||||||
|
type: string
|
||||||
|
default: "true"
|
||||||
|
- name: crtFileName
|
||||||
|
description: file name of mounted crt using ssl-ca-directory workspace. default value is ca-bundle.crt.
|
||||||
|
type: string
|
||||||
|
default: "ca-bundle.crt"
|
||||||
|
- name: subdirectory
|
||||||
|
description: Subdirectory inside the `output` Workspace to clone the repo into.
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
- name: sparseCheckoutDirectories
|
||||||
|
description: Define the directory patterns to match or exclude when performing a sparse checkout.
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
- name: deleteExisting
|
||||||
|
description: Clean out the contents of the destination directory if it already exists before cloning.
|
||||||
|
type: string
|
||||||
|
default: "true"
|
||||||
|
- name: httpProxy
|
||||||
|
description: HTTP proxy server for non-SSL requests.
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
- name: httpsProxy
|
||||||
|
description: HTTPS proxy server for SSL requests.
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
- name: noProxy
|
||||||
|
description: Opt out of proxying HTTP/HTTPS requests.
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
- name: verbose
|
- name: verbose
|
||||||
description: Log the commands that are executed during `git-clone-checkout`'s operation.
|
description: Log the commands that are executed during `git-clone`'s operation.
|
||||||
type: string
|
type: string
|
||||||
default: "true"
|
default: "true"
|
||||||
- name: gitInitImage
|
- name: gitInitImage
|
||||||
@ -74,17 +116,39 @@ spec:
|
|||||||
- name: committer-date
|
- name: committer-date
|
||||||
description: The epoch timestamp of the commit that was fetched by this Task.
|
description: The epoch timestamp of the commit that was fetched by this Task.
|
||||||
steps:
|
steps:
|
||||||
- name: clone-checkout
|
- name: clone
|
||||||
image: "$(params.gitInitImage)"
|
image: "$(params.gitInitImage)"
|
||||||
env:
|
env:
|
||||||
# - name: HOME
|
- name: HOME
|
||||||
# value: "$(params.userHome)"
|
value: "$(params.userHome)"
|
||||||
- name: PARAM_URL
|
- name: PARAM_URL
|
||||||
value: $(params.repo-url)
|
value: $(params.url)
|
||||||
- name: PARAM_REVISION
|
- name: PARAM_REVISION
|
||||||
value: $(params.revision)
|
value: $(params.revision)
|
||||||
|
- name: PARAM_REFSPEC
|
||||||
|
value: $(params.refspec)
|
||||||
|
- name: PARAM_SUBMODULES
|
||||||
|
value: $(params.submodules)
|
||||||
|
- name: PARAM_DEPTH
|
||||||
|
value: $(params.depth)
|
||||||
|
- name: PARAM_SSL_VERIFY
|
||||||
|
value: $(params.sslVerify)
|
||||||
|
- name: PARAM_CRT_FILENAME
|
||||||
|
value: $(params.crtFileName)
|
||||||
|
- name: PARAM_SUBDIRECTORY
|
||||||
|
value: $(params.subdirectory)
|
||||||
|
- name: PARAM_DELETE_EXISTING
|
||||||
|
value: $(params.deleteExisting)
|
||||||
|
- name: PARAM_HTTP_PROXY
|
||||||
|
value: $(params.httpProxy)
|
||||||
|
- name: PARAM_HTTPS_PROXY
|
||||||
|
value: $(params.httpsProxy)
|
||||||
|
- name: PARAM_NO_PROXY
|
||||||
|
value: $(params.noProxy)
|
||||||
- name: PARAM_VERBOSE
|
- name: PARAM_VERBOSE
|
||||||
value: $(params.verbose)
|
value: $(params.verbose)
|
||||||
|
- name: PARAM_SPARSE_CHECKOUT_DIRECTORIES
|
||||||
|
value: $(params.sparseCheckoutDirectories)
|
||||||
- name: PARAM_USER_HOME
|
- name: PARAM_USER_HOME
|
||||||
value: $(params.userHome)
|
value: $(params.userHome)
|
||||||
- name: WORKSPACE_OUTPUT_PATH
|
- name: WORKSPACE_OUTPUT_PATH
|
||||||
@ -131,13 +195,42 @@ spec:
|
|||||||
export GIT_SSL_CAINFO="${WORKSPACE_SSL_CA_DIRECTORY_PATH}/${PARAM_CRT_FILENAME}"
|
export GIT_SSL_CAINFO="${WORKSPACE_SSL_CA_DIRECTORY_PATH}/${PARAM_CRT_FILENAME}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
CHECKOUT_DIR="${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}"
|
||||||
|
|
||||||
|
cleandir() {
|
||||||
|
# Delete any existing contents of the repo directory if it exists.
|
||||||
|
#
|
||||||
|
# We don't just "rm -rf ${CHECKOUT_DIR}" because ${CHECKOUT_DIR} might be "/"
|
||||||
|
# or the root of a mounted volume.
|
||||||
|
if [ -d "${CHECKOUT_DIR}" ] ; then
|
||||||
|
# Delete non-hidden files and directories
|
||||||
|
rm -rf "${CHECKOUT_DIR:?}"/*
|
||||||
|
# Delete files and directories starting with . but excluding ..
|
||||||
|
rm -rf "${CHECKOUT_DIR}"/.[!.]*
|
||||||
|
# Delete files and directories starting with .. plus any other character
|
||||||
|
rm -rf "${CHECKOUT_DIR}"/..?*
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "${PARAM_DELETE_EXISTING}" = "true" ] ; then
|
||||||
|
cleandir || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
test -z "${PARAM_HTTP_PROXY}" || export HTTP_PROXY="${PARAM_HTTP_PROXY}"
|
||||||
|
test -z "${PARAM_HTTPS_PROXY}" || export HTTPS_PROXY="${PARAM_HTTPS_PROXY}"
|
||||||
|
test -z "${PARAM_NO_PROXY}" || export NO_PROXY="${PARAM_NO_PROXY}"
|
||||||
|
|
||||||
git config --global --add safe.directory "${WORKSPACE_OUTPUT_PATH}"
|
git config --global --add safe.directory "${WORKSPACE_OUTPUT_PATH}"
|
||||||
cd "${WORKSPACE_OUTPUT_PATH}"
|
/ko-app/git-init \
|
||||||
|
-url="${PARAM_URL}" \
|
||||||
git clone "${PARAM_URL}" .
|
-revision="${PARAM_REVISION}" \
|
||||||
git checkout "${PARAM_REVISION}"
|
-refspec="${PARAM_REFSPEC}" \
|
||||||
|
-path="${CHECKOUT_DIR}" \
|
||||||
|
-sslVerify="${PARAM_SSL_VERIFY}" \
|
||||||
|
-submodules="${PARAM_SUBMODULES}" \
|
||||||
|
-depth="${PARAM_DEPTH}" \
|
||||||
|
-sparseCheckoutDirectories="${PARAM_SPARSE_CHECKOUT_DIRECTORIES}"
|
||||||
|
cd "${CHECKOUT_DIR}"
|
||||||
RESULT_SHA="$(git rev-parse HEAD)"
|
RESULT_SHA="$(git rev-parse HEAD)"
|
||||||
EXIT_CODE="$?"
|
EXIT_CODE="$?"
|
||||||
if [ "${EXIT_CODE}" != 0 ] ; then
|
if [ "${EXIT_CODE}" != 0 ] ; then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user