mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-09 05:01:46 +00:00
Add build-official-release.sh
This commit does 4 things: * Adds a script which will: (a) clone from a git tag, make release, and give you very detailed instructions as to what to do from that point. * Changes `push-official-release.sh` so we can't push "dirty" releases anymore (which `build-official-release.sh` also double checks at the end.) * Fixes #9576 by ensuring a correct umask. * Changes common.sh to gtar all the way through, to ensure that bloody OS X tar never touches the release process, because I don't want to have to understand two tar programs and how release artifacts are created from both (c.f. #10615.)
This commit is contained in:
@@ -185,6 +185,21 @@ function kube::build::verify_prereqs() {
|
||||
KUBE_BUILD_CONTAINER_NAME="kube-build-${KUBE_ROOT_HASH}"
|
||||
KUBE_BUILD_DATA_CONTAINER_NAME="kube-build-data-${KUBE_ROOT_HASH}"
|
||||
DOCKER_MOUNT_ARGS=("${DOCKER_MOUNT_ARGS_BASE[@]}" --volumes-from "${KUBE_BUILD_DATA_CONTAINER_NAME}")
|
||||
|
||||
# Find gnu tar if it is available, bomb out if not.
|
||||
TAR=tar
|
||||
if which gtar &>/dev/null; then
|
||||
TAR=gtar
|
||||
else
|
||||
if which gnutar &>/dev/null; then
|
||||
TAR=gnutar
|
||||
fi
|
||||
fi
|
||||
if ! "${TAR}" --version | grep -q GNU; then
|
||||
echo " !!! Cannot find GNU tar. Build on Linux or install GNU tar"
|
||||
echo " on Mac OS X (brew install gnu-tar)."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -337,7 +352,7 @@ function kube::build::build_image() {
|
||||
kube::build::build_image_cross
|
||||
|
||||
mkdir -p "${build_context_dir}"
|
||||
tar czf "${build_context_dir}/kube-source.tar.gz" $(kube::build::source_targets)
|
||||
"${TAR}" czf "${build_context_dir}/kube-source.tar.gz" $(kube::build::source_targets)
|
||||
|
||||
kube::version::get_version_vars
|
||||
kube::version::save_version_vars "${build_context_dir}/kube-version-defs"
|
||||
@@ -763,26 +778,7 @@ function kube::release::create_tarball() {
|
||||
local tarfile=$1
|
||||
local stagingdir=$2
|
||||
|
||||
# Find gnu tar if it is available
|
||||
local tar=tar
|
||||
if which gtar &>/dev/null; then
|
||||
tar=gtar
|
||||
else
|
||||
if which gnutar &>/dev/null; then
|
||||
tar=gnutar
|
||||
fi
|
||||
fi
|
||||
|
||||
local tar_cmd=("$tar" "czf" "${tarfile}" "-C" "${stagingdir}" "kubernetes")
|
||||
if "$tar" --version | grep -q GNU; then
|
||||
tar_cmd=("${tar_cmd[@]}" "--owner=0" "--group=0")
|
||||
else
|
||||
echo " !!! GNU tar not available. User names will be embedded in output and"
|
||||
echo " release tars are not official. Build on Linux or install GNU tar"
|
||||
echo " on Mac OS X (brew install gnu-tar)"
|
||||
fi
|
||||
|
||||
"${tar_cmd[@]}"
|
||||
"${TAR}" czf "${tarfile}" -C "${stagingdir}" kubernetes --owner=0 --group=0
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -850,7 +846,7 @@ function kube::release::gcs::stage_and_hash() {
|
||||
srcdir=$(dirname ${src})
|
||||
srcthing=$(basename ${src})
|
||||
mkdir -p ${GCS_STAGE}/${dst}
|
||||
tar c -C ${srcdir} ${srcthing} | tar x -C ${GCS_STAGE}/${dst}
|
||||
"${TAR}" c -C ${srcdir} ${srcthing} | "${TAR}" x -C ${GCS_STAGE}/${dst}
|
||||
done
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user