Merge remote-tracking branch 'origin/5.12.6' into 5.12

Conflicts:
	.gitmodules

Change-Id: I82e695715beec4fd0cd58e31b11606e24afc4b0f
This commit is contained in:
Liang Qi
2020-01-10 12:18:00 +01:00
2 changed files with 105 additions and 32 deletions

View File

@@ -35,18 +35,37 @@
set -ex
# Download and install the docker engine.
sudo apt-get install curl -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce -y
. $(dirname "$0")/../../common/unix/DownloadURL.sh
localRepo=http://ci-files01-hki.intra.qt.io/input/docker
upstreamRepo=https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64
echo '
f4c941807310e3fa470dddfb068d599174a3daec containerd.io_1.2.10-3_amd64.deb
ee640d9258fd4d3f4c7017ab2a71da63cbbead55 docker-ce_19.03.4~3-0~ubuntu-bionic_amd64.deb
09402bf5dac40f0c50f1071b17f38f6584a42ad1 docker-ce-cli_19.03.4~3-0~ubuntu-bionic_amd64.deb
' \
| xargs -n2 | while read sha f
do
DownloadURL $localRepo/$f $upstreamRepo/$f $sha
done
sudo apt-get -y install ./containerd.io*.deb ./docker-ce*.deb ./docker-ce-cli*.deb
rm -f ./containerd.io*.deb ./docker-ce*.deb ./docker-ce-cli*.deb
sudo usermod -a -G docker $USER
sudo docker info
# Download and install the docker-compose extension.
sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# Download and install the docker-compose extension from https://github.com/docker/compose/releases
f=docker-compose-$(uname -s)-$(uname -m)
DownloadURL \
$localRepo/$f \
https://github.com/docker/compose/releases/download/1.24.1/$f \
cfb3439956216b1248308141f7193776fcf4b9c9b49cbbe2fb07885678e2bb8a
sudo install -m 755 ./docker-compose* /usr/local/bin/docker-compose
rm ./docker-compose*
# Start testserver provisioning
source "${BASH_SOURCE%/*}/testserver/docker_testserver.sh"

View File

@@ -1,8 +1,8 @@
#!/usr/bin/env bash
#!/bin/sh
#############################################################################
##
## Copyright (C) 2017 The Qt Company Ltd.
## Copyright (C) 2019 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
@@ -33,31 +33,85 @@
##
#############################################################################
# A helper script used for downloading a file from a URL or an alternative
# URL. Also the SHA1 is checked for the file. Target filename should also
# be given.
#
# If called directly from another script, it will exit the parent script
# as well, if not called in its own subshell with parentheses.
# URL. Also the SHA is checked for the file (SHA algorithm is autodetected
# based on the SHA length). Target filename should also be given.
set -ex
############################ BOILERPLATE ###############################
command -v sha1sum >/dev/null || alias sha1sum='shasum -a 1'
command -v sha256sum >/dev/null || alias sha256sum='shasum -a 256'
command -v sha384sum >/dev/null || alias sha384sum='shasum -a 384'
command -v sha512sum >/dev/null || alias sha512sum='shasum -a 512'
########################################################################
function DownloadURL {
url=$1
url_alt=$2
expectedSha1=$3
targetFile=$4
echo "Downloading from primary URL '$url'"
curl --fail -L --retry 5 --retry-delay 5 -o "$targetFile" "$url" || {
echo "Failed to download '$url' multiple times"
echo "Downloading from alternative URL '$url_alt'"
curl --fail -L --retry 5 --retry-delay 5 -o "$targetFile" "$url_alt" || { echo 'Failed to download even from alternative url'; exit 1; }
}
Download () {
url="$1"
targetFile="$2"
echo "Checking SHA1 on PKG '$targetFile'"
echo "$expectedSha1 *$targetFile" > "$targetFile.sha1"
sha1sum --check "$targetFile.sha1"
rm -f "$targetFile.sha1"
command -v curl >/dev/null \
&& curl --fail -L --retry 5 --retry-delay 5 -o "$targetFile" "$url" \
|| wget --tries 5 -O "$targetFile" "$url"
}
VerifyHash () {
file=$1
expectedHash=$2
if [ ! -f "$file" ]
then return 2 # file does not exist
fi
hashLength="$(echo "$expectedHash" | wc -c | sed 's/ *//g')"
# Use backticks because of bug with bash-3 (default on macOS),
# caused when there are unbalanced parentheses inside $()
# shellcheck disable=SC2006
hash=`case "$hashLength" in
41) sha1sum "$file" ;;
65) sha256sum "$file" ;;
97) sha384sum "$file" ;;
129) sha512sum "$file" ;;
*) echo "FATAL! Unknown hash length: $hashLength" 1>&2 && exit 1 ;;
esac | cut -d ' ' -f 1`
if [ ! "$expectedHash" = "$hash" ]
then
echo "FAIL! wrong file hash: $file $hash" 1>&2
return 1
fi
echo "OK verified integrity of: $file"
}
# Check if file already exists and is good, otherwise download it
DownloadURL () {
url=$1
url2=$2
expectedHash=$3
# Optional argument $4: destination filename
if [ x"$4" = x ]
then
# defaults to the last component of $url
targetFile=$(echo $url | sed 's|^.*/||')
else
targetFile=$4
fi
if VerifyHash "$targetFile" "$expectedHash"
then
echo "Skipping download, found and validated existing file: $targetFile"
else
echo "Downloading from primary URL: $url"
if ! Download "$url" "$targetFile"
then
echo "FAIL! to download, trying alternative URL: $url2" 1>&2
if ! Download "$url2" "$targetFile"
then
echo 'FAIL! to download even from alternative URL' 1>&2
return 1
fi
fi
VerifyHash "$targetFile" "$expectedHash"
fi
}