From 96e2da2992900a2f9f60b11898ffc50b3a6bd6f8 Mon Sep 17 00:00:00 2001 From: Jeff Grafton Date: Wed, 22 Nov 2017 12:29:29 -0800 Subject: [PATCH] Use git archive to produce kubernetes-src.tar.gz when possible --- build/lib/release.sh | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/build/lib/release.sh b/build/lib/release.sh index 85a1d784f5..afacffbdce 100644 --- a/build/lib/release.sh +++ b/build/lib/release.sh @@ -98,18 +98,23 @@ function kube::release::package_tarballs() { # Package the source code we built, for compliance/licensing/audit/yadda. function kube::release::package_src_tarball() { + local -r src_tarball="${RELEASE_TARS}/kubernetes-src.tar.gz" kube::log::status "Building tarball: src" - local source_files=( - $(cd "${KUBE_ROOT}" && find . -mindepth 1 -maxdepth 1 \ - -not \( \ - \( -path ./_\* -o \ - -path ./.git\* -o \ - -path ./.config\* -o \ - -path ./.gsutil\* \ - \) -prune \ - \)) - ) - "${TAR}" czf "${RELEASE_TARS}/kubernetes-src.tar.gz" -C "${KUBE_ROOT}" "${source_files[@]}" + if [[ "${KUBE_GIT_TREE_STATE-}" == "clean" ]]; then + git archive -o "${src_tarball}" HEAD + else + local source_files=( + $(cd "${KUBE_ROOT}" && find . -mindepth 1 -maxdepth 1 \ + -not \( \ + \( -path ./_\* -o \ + -path ./.git\* -o \ + -path ./.config\* -o \ + -path ./.gsutil\* \ + \) -prune \ + \)) + ) + "${TAR}" czf "${src_tarball}" -C "${KUBE_ROOT}" "${source_files[@]}" + fi } # Package up all of the cross compiled clients. Over time this should grow into