2021-03-18 11:19:28 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
2021-09-07 14:11:21 +02:00
|
|
|
is_kasmvnc() {
|
|
|
|
local package="$1";
|
|
|
|
|
2022-08-19 15:11:15 +02:00
|
|
|
echo "$package" | grep -qP 'kasmvncserver(_|-)[0-9]'
|
2021-09-07 14:11:21 +02:00
|
|
|
}
|
|
|
|
|
2022-02-11 15:57:25 +01:00
|
|
|
detect_deb_package_arch() {
|
|
|
|
local deb_package="$1"
|
|
|
|
echo "$deb_package" | sed -e 's/.\+_\([^.]\+\)\.\(d\?\)deb/\1/'
|
|
|
|
}
|
|
|
|
|
|
|
|
find_deb_package() {
|
|
|
|
local dbgsym_package="$1"
|
|
|
|
|
|
|
|
echo "$dbgsym_package" | sed -e 's/-dbgsym//; s/ddeb/deb/'
|
|
|
|
}
|
|
|
|
|
|
|
|
fetch_xvnc_md5sum() {
|
|
|
|
local deb_package="$1"
|
|
|
|
deb_package=$(realpath "$deb_package")
|
|
|
|
|
|
|
|
local tmpdir=$(mktemp -d)
|
|
|
|
cd "$tmpdir"
|
|
|
|
dpkg-deb -e "$deb_package"
|
|
|
|
cat DEBIAN/md5sums | grep bin/Xkasmvnc | cut -d' ' -f 1
|
|
|
|
}
|
|
|
|
|
2021-03-18 11:19:28 +01:00
|
|
|
function prepare_upload_filename() {
|
|
|
|
local package="$1";
|
|
|
|
|
2021-09-07 14:11:21 +02:00
|
|
|
if ! is_kasmvnc "$package"; then
|
|
|
|
export upload_filename="$package"
|
|
|
|
return
|
|
|
|
fi
|
|
|
|
|
2021-03-18 11:19:28 +01:00
|
|
|
.ci/detect_os_arch_package_format "$package" > /tmp/os_arch_package_format;
|
|
|
|
source /tmp/os_arch_package_format;
|
|
|
|
detect_release_branch
|
2021-09-07 14:11:21 +02:00
|
|
|
|
|
|
|
detect_revision "$package" "$OS_ARCH"
|
|
|
|
if [ -n "$REVISION" ]; then
|
|
|
|
REVISION="_${REVISION}"
|
|
|
|
fi
|
|
|
|
|
2021-03-18 11:19:28 +01:00
|
|
|
if [ -n "$RELEASE_BRANCH" ]; then
|
2021-09-07 14:11:21 +02:00
|
|
|
export upload_filename="kasmvncserver_${PACKAGE_OS}_${RELEASE_VERSION}${REVISION}_${OS_ARCH}.${PACKAGE_FORMAT}";
|
2021-03-18 11:19:28 +01:00
|
|
|
else
|
|
|
|
export SANITIZED_BRANCH="$(echo $CI_COMMIT_REF_NAME | sed 's/\//_/g')";
|
2021-09-07 14:11:21 +02:00
|
|
|
export upload_filename="kasmvncserver_${PACKAGE_OS}_${RELEASE_VERSION}_${SANITIZED_BRANCH}_${CI_COMMIT_SHA:0:6}${REVISION}_${OS_ARCH}.${PACKAGE_FORMAT}";
|
2021-03-18 11:19:28 +01:00
|
|
|
fi
|
|
|
|
};
|
|
|
|
|
|
|
|
function upload_to_s3() {
|
|
|
|
local package="$1";
|
|
|
|
local upload_filename="$2";
|
2022-02-11 15:57:25 +01:00
|
|
|
local s3_bucket="$3";
|
2021-03-18 11:19:28 +01:00
|
|
|
|
|
|
|
# Transfer to S3
|
2022-02-11 15:57:25 +01:00
|
|
|
python3 amazon-s3-bitbucket-pipelines-python/s3_upload.py "${s3_bucket}" "$package" "${upload_filename}";
|
2021-03-18 11:19:28 +01:00
|
|
|
# Use the Gitlab API to tell Gitlab where the artifact was stored
|
2022-02-11 15:57:25 +01:00
|
|
|
export S3_URL="https://${s3_bucket}.s3.amazonaws.com/${upload_filename}";
|
2021-03-18 11:19:28 +01:00
|
|
|
};
|
2021-09-07 14:11:21 +02:00
|
|
|
|
2021-03-18 11:19:28 +01:00
|
|
|
function prepare_to_run_scripts_and_s3_uploads() {
|
|
|
|
export DEBIAN_FRONTEND=noninteractive;
|
|
|
|
apt-get update;
|
2022-02-11 15:57:25 +01:00
|
|
|
apt-get install -y ruby2.7 git wget;
|
2021-03-18 11:19:28 +01:00
|
|
|
apt-get install -y python3 python3-pip python3-boto3 curl pkg-config libxmlsec1-dev;
|
|
|
|
git clone https://bitbucket.org/awslabs/amazon-s3-bitbucket-pipelines-python.git;
|
|
|
|
};
|
|
|
|
|
|
|
|
detect_release_branch() {
|
|
|
|
if echo $CI_COMMIT_REF_NAME | grep -Pq '^release/([\d.]+)$'; then
|
|
|
|
export RELEASE_BRANCH=1;
|
|
|
|
fi
|
|
|
|
}
|
2021-09-07 14:11:21 +02:00
|
|
|
|
|
|
|
detect_revision() {
|
|
|
|
local package="$1"
|
|
|
|
local arch="$2"
|
|
|
|
|
|
|
|
REVISION=
|
|
|
|
|
|
|
|
if ! echo "$package" | grep -q '+'; then
|
|
|
|
return
|
|
|
|
fi
|
|
|
|
|
|
|
|
REVISION=$(echo "$package" | sed "s/_${arch}.\+//" | sed 's/.\++//')
|
|
|
|
}
|