mirror of https://github.com/k3s-io/k3s
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
1.9 KiB
80 lines
1.9 KiB
#!/bin/bash |
|
set -e -x |
|
|
|
cd $(dirname $0)/.. |
|
|
|
ARCH=${DRONE_STAGE_ARCH:-$(arch)} |
|
. ./scripts/version.sh |
|
|
|
if [[ ! "$VERSION" =~ ^v[0-9]+\.[0-9]+\.[0-9]+(\-[^\+]*)?\+k3s.+$ ]]; then |
|
echo "k3s version $VERSION does not match regex for rpm upload" |
|
exit 0 |
|
fi |
|
|
|
TMPDIR=$(mktemp -d) |
|
cleanup() { |
|
exit_code=$? |
|
trap - EXIT INT |
|
rm -rf ${TMPDIR} |
|
exit ${exit_code} |
|
} |
|
trap cleanup EXIT INT |
|
|
|
export HOME=${TMPDIR} |
|
|
|
BIN_SUFFIX="" |
|
if [ ${ARCH} = aarch64 ] || [ ${ARCH} = arm64 ]; then |
|
BIN_SUFFIX="-arm64" |
|
elif [ ${ARCH} = armv7l ] || [ ${ARCH} = arm ]; then |
|
BIN_SUFFIX="-armhf" |
|
elif [ ${ARCH} = s390x ]; then |
|
BIN_SUFFIX="-s390x" |
|
fi |
|
|
|
# capture version of k3s |
|
k3s_version=$(sed -E -e 's/^v([^-+]*).*$/\1/' <<< $VERSION) |
|
# capture pre-release and metadata information of k3s |
|
k3s_release=$(sed -E -e 's/\+k3s/+/; s/\+/-/g; s/^[^-]*//; s/^--/dev-/; s/-+/./g; s/^\.+//; s/\.+$//;' <<< $VERSION) |
|
# k3s-selinux policy version needed for functionality |
|
k3s_policyver=0.1-1 |
|
|
|
rpmbuild \ |
|
--define "k3s_version ${k3s_version}" \ |
|
--define "k3s_release ${k3s_release}" \ |
|
--define "k3s_policyver ${k3s_policyver}" \ |
|
--define "k3s_binary k3s${BIN_SUFFIX}" \ |
|
--define "_sourcedir ${PWD}" \ |
|
--define "_specdir ${PWD}" \ |
|
--define "_builddir ${PWD}" \ |
|
--define "_srcrpmdir ${PWD}" \ |
|
--define "_rpmdir ${PWD}/dist/rpm" \ |
|
--define "_buildrootdir ${PWD}/.rpm-build" \ |
|
-bb package/rpm/k3s.spec |
|
|
|
if ! grep "BEGIN PGP PRIVATE KEY BLOCK" <<<"$PRIVATE_KEY"; then |
|
echo "PRIVATE_KEY not defined, skipping rpm sign and upload" |
|
exit 0 |
|
fi |
|
|
|
cat <<\EOF >~/.rpmmacros |
|
%_signature gpg |
|
%_gpg_name ci@rancher.com |
|
EOF |
|
gpg --import - <<<"$PRIVATE_KEY" |
|
|
|
expect <<EOF |
|
set timeout 60 |
|
spawn sh -c "rpmsign --addsign dist/rpm/**/k3s-*.rpm" |
|
expect "Enter pass phrase:" |
|
send -- "$PRIVATE_KEY_PASS_PHRASE\r" |
|
expect eof |
|
lassign [wait] _ _ _ code |
|
exit \$code |
|
EOF |
|
|
|
if [ -z "$AWS_S3_BUCKET" ]; then |
|
echo "AWS_S3_BUCKET skipping rpm upload" |
|
exit 0 |
|
fi |
|
|
|
rpm-s3 --bucket $AWS_S3_BUCKET dist/rpm/**/k3s-*.rpm
|
|
|