diff options
Diffstat (limited to 'coin/provisioning/common')
-rwxr-xr-x | coin/provisioning/common/linux/android_linux.sh | 7 | ||||
-rwxr-xr-x | coin/provisioning/common/linux/version.sh | 6 | ||||
-rwxr-xr-x | coin/provisioning/common/macos/InstallPKGFromURL.sh | 14 | ||||
-rwxr-xr-x | coin/provisioning/common/macos/homebrew.sh | 17 | ||||
-rw-r--r-- | coin/provisioning/common/macos/telegraf-coin.conf | 8 | ||||
-rwxr-xr-x | coin/provisioning/common/macos/version.sh | 6 | ||||
-rw-r--r-- | coin/provisioning/common/shared/requirements.txt | 2 | ||||
-rw-r--r-- | coin/provisioning/common/shared/telegraf/telegraf_packages.sha256.txt | 10 | ||||
-rwxr-xr-x | coin/provisioning/common/unix/DownloadURL.sh | 41 | ||||
-rwxr-xr-x | coin/provisioning/common/unix/libclang.sh | 4 | ||||
-rwxr-xr-x | coin/provisioning/common/unix/telegraf_install.sh | 2 | ||||
-rw-r--r-- | coin/provisioning/common/windows/android.ps1 | 5 | ||||
-rw-r--r-- | coin/provisioning/common/windows/install_telegraf.ps1 | 6 | ||||
-rw-r--r-- | coin/provisioning/common/windows/version.ps1 | 6 |
14 files changed, 93 insertions, 41 deletions
diff --git a/coin/provisioning/common/linux/android_linux.sh b/coin/provisioning/common/linux/android_linux.sh index 44bd2281..ca9110b8 100755 --- a/coin/provisioning/common/linux/android_linux.sh +++ b/coin/provisioning/common/linux/android_linux.sh @@ -37,6 +37,8 @@ # It also runs update for SDK API, latest SDK tools, latest platform-tools and build-tools version +set -e + # shellcheck source=../unix/DownloadURL.sh source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh" # shellcheck source=../unix/check_and_set_proxy.sh @@ -80,8 +82,11 @@ else sudo chown -R qt:users "$targetFolder" fi -# Run the following command under `eval` or `sh -c` so that the shell properly splits it +# Stop the sdkmanager from printing thousands of lines of #hashmarks. +# Run the following command under `eval` or `sh -c` so that the shell properly splits it. sdkmanager_no_progress_bar_cmd="tr '\r' '\n' | grep -v '^\[[ =]*\]'" +# But don't let the pipeline hide sdkmanager failures. +set -o pipefail echo "Running SDK manager for platforms;$sdkApiLevel, platform-tools and build-tools;$sdkBuildToolsVersion." # shellcheck disable=SC2031 diff --git a/coin/provisioning/common/linux/version.sh b/coin/provisioning/common/linux/version.sh index 3e2a7f19..9e23a77e 100755 --- a/coin/provisioning/common/linux/version.sh +++ b/coin/provisioning/common/linux/version.sh @@ -41,3 +41,9 @@ echo "*********************************************" echo "***** SW VERSIONS *****" cat ~/versions.txt echo "*********************************************" +echo "*************** mount ***********************" +mount +echo "*********************************************" +echo "*************** df **************************" +df -hT +echo "*********************************************" diff --git a/coin/provisioning/common/macos/InstallPKGFromURL.sh b/coin/provisioning/common/macos/InstallPKGFromURL.sh index 77ef128a..d9b55d3b 100755 --- a/coin/provisioning/common/macos/InstallPKGFromURL.sh +++ b/coin/provisioning/common/macos/InstallPKGFromURL.sh @@ -42,7 +42,9 @@ function InstallPKGFromURL { targetDirectory=$4 echo "Creating temporary file" - targetFile=$(mktemp "$TMPDIR$(uuidgen).pkg") + package_basename=$(echo "$url" | sed 's|^.*/||') + tmpdir=$(mktemp -d) + targetFile="$tmpdir/$package_basename" echo "Downloading PKG from primary URL '$url'" curl --fail -L --retry 5 --retry-delay 5 -o "$targetFile" "$url" || ( echo "Failed to download '$url' multiple times" @@ -50,10 +52,12 @@ function InstallPKGFromURL { curl --fail -L --retry 5 --retry-delay 5 -o "$targetFile" "$url_alt" ) echo "Checking SHA1 on PKG '$targetFile'" - echo "$expectedSha1 *$targetFile" > "$targetFile.sha1" - /usr/bin/shasum --check "$targetFile.sha1" + echo "$expectedSha1 *$targetFile" > "$targetFile".sha1 + /usr/bin/shasum --check "$targetFile".sha1 echo "Run installer on PKG" sudo installer -package "$targetFile" -target "$targetDirectory" - echo "Removing file '$targetFile'" - rm "$targetFile" + + rm -f "$targetFile".sha1 + rm -f "$targetFile" + rmdir "$tmpdir" } diff --git a/coin/provisioning/common/macos/homebrew.sh b/coin/provisioning/common/macos/homebrew.sh index 715477c0..66463c44 100755 --- a/coin/provisioning/common/macos/homebrew.sh +++ b/coin/provisioning/common/macos/homebrew.sh @@ -1,12 +1,21 @@ -#!/usr/bin/env bash +#!/bin/sh # Will install homebrew package manager for macOS. # WARNING: Requires commandlinetools -# TODO audit and cache this file locally, see QTQAINFRA-3134 -curl -L -o /tmp/homebrew_install https://raw.githubusercontent.com/Homebrew/install/master/install +set -e + +. "$(dirname "$0")"/../../common/unix/DownloadURL.sh + + +DownloadURL \ + http://ci-files01-hki.intra.qt.io/input/mac/homebrew-install.c744a716f9845988d01e6e238eee7117b8c366c9.rb \ + https://raw.githubusercontent.com/Homebrew/install/c744a716f9845988d01e6e238eee7117b8c366c9/install \ + b9782cc0b550229de77b429b56ffce04157e60486ab9df00461ccf3dad565b0a \ + /tmp/homebrew_install /usr/bin/ruby /tmp/homebrew_install </dev/null -brew update +# No need to manually do `brew update`, the homebrew installer script does it. +### brew update diff --git a/coin/provisioning/common/macos/telegraf-coin.conf b/coin/provisioning/common/macos/telegraf-coin.conf index 24440a05..006de88c 100644 --- a/coin/provisioning/common/macos/telegraf-coin.conf +++ b/coin/provisioning/common/macos/telegraf-coin.conf @@ -24,7 +24,13 @@ # collect_cpu_time = false # report_active = false [[inputs.disk]] - ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] + # macOS needs two extra filesystem exceptions: + # + cd9660: This is a read-only filesystem, and always 100% full + # + msdos: Sometimes at boot a short-lived unique mount of type "msdos" + # is performed, at the random directory + # /Volumes/firmwaresyncd.XXXXXX. + # The uniqueness of the path bloats the cardinality of InfluxDB. + ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs", "cd9660", "msdos"] #[[inputs.diskio]] # linux-only [[inputs.kernel]] [[inputs.mem]] diff --git a/coin/provisioning/common/macos/version.sh b/coin/provisioning/common/macos/version.sh index 3e2a7f19..e57fb60b 100755 --- a/coin/provisioning/common/macos/version.sh +++ b/coin/provisioning/common/macos/version.sh @@ -41,3 +41,9 @@ echo "*********************************************" echo "***** SW VERSIONS *****" cat ~/versions.txt echo "*********************************************" +echo "*************** mount ***********************" +mount +echo "*********************************************" +echo "*************** df **************************" +df -h +echo "*********************************************" diff --git a/coin/provisioning/common/shared/requirements.txt b/coin/provisioning/common/shared/requirements.txt index 60239142..7285caca 100644 --- a/coin/provisioning/common/shared/requirements.txt +++ b/coin/provisioning/common/shared/requirements.txt @@ -9,7 +9,7 @@ argh==0.26.2 click==6.7 coloredlogs==10.0 humanfriendly==4.15.1 -Jinja2==2.10 +Jinja2==2.10.3 MarkupSafe==1.0 path.py==11.0.1 pathtools==0.1.2 diff --git a/coin/provisioning/common/shared/telegraf/telegraf_packages.sha256.txt b/coin/provisioning/common/shared/telegraf/telegraf_packages.sha256.txt index 7d1cdada..28304114 100644 --- a/coin/provisioning/common/shared/telegraf/telegraf_packages.sha256.txt +++ b/coin/provisioning/common/shared/telegraf/telegraf_packages.sha256.txt @@ -1,6 +1,4 @@ -https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_windows_i386.zip d2dea67a28fd7a9e21395d14f0b7ce1b6413e85cc9ffd89cc7ff8f35e8af5837 -https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_windows_amd64.zip 88d8c8146b561f43726e61688b42d0b5ab88fc22607b94df5a2c8245bbb27e29 -https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_darwin_amd64.tar.gz 58a2b294c1b6408c396b5526719cf7cad557f7075fed10ff0b2a74141ea2d629 -https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_linux_amd64.tar.gz 070a76800d1a5f33413b8948286f75caa55ebd924f6fb6996a753b9979799ef5 -https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_linux_i386.tar.gz 964077b6846708f579a100d7ea6090e2d8350ace75ec735d539bc452bc551038 -https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1-static_linux_amd64.tar.gz bb03814c99c037ce0758e3884660910f2f6fd78f3d49a8e1ef531693b3cfe25d +https://dl.influxdata.com/telegraf/releases/telegraf-1.12.6_darwin_amd64.tar.gz 2bc056e1ad38af2ba95d2cb1d43b513cc611fdd3b851b2ff5e09991d52b01253 +https://dl.influxdata.com/telegraf/releases/telegraf-1.12.6_linux_amd64.tar.gz b33cf0f5935a5c225ab0de69db1e6b249d581f3213313de62a8de928aedadbec +https://dl.influxdata.com/telegraf/releases/telegraf-1.12.6_windows_amd64.zip 5d025d85070e8c180c443580afa8a27421a7bbcf14b5044894e9f3298d0ce97a +https://dl.influxdata.com/telegraf/releases/telegraf-1.12.6_windows_i386.zip 5178a0bdaab448c2ef965b0e36f835849cea731ccd87c4a4527f0f05fbbdf271 diff --git a/coin/provisioning/common/unix/DownloadURL.sh b/coin/provisioning/common/unix/DownloadURL.sh index 5bafc33d..1d48a565 100755 --- a/coin/provisioning/common/unix/DownloadURL.sh +++ b/coin/provisioning/common/unix/DownloadURL.sh @@ -39,10 +39,12 @@ # based on the SHA length). Target filename should also be given. ############################ 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' + +command -v sha1sum >/dev/null || sha1sum () { shasum -a 1 "$@" ; } +command -v sha256sum >/dev/null || sha256sum () { shasum -a 256 "$@" ; } +command -v sha384sum >/dev/null || sha384sum () { shasum -a 384 "$@" ; } +command -v sha512sum >/dev/null || sha512sum () { shasum -a 512 "$@" ; } + ######################################################################## @@ -98,20 +100,27 @@ DownloadURL () { targetFile=$4 fi - if VerifyHash "$targetFile" "$expectedHash" + # If a non-empty file already exists + if [ -s "$targetFile" ] then - echo "Skipping download, found and validated existing file: $targetFile" - else - echo "Downloading from primary URL: $url" - if ! Download "$url" "$targetFile" + if VerifyHash "$targetFile" "$expectedHash" + then + echo "Skipping download, found and validated existing file: $targetFile" + return + else + echo "WARNING: Non-empty but different file found at destination; will re-download and overwrite file: $targetFile" + fi + fi + + 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, trying alternative URL: $url2" 1>&2 - if ! Download "$url2" "$targetFile" - then - echo 'FAIL! to download even from alternative URL' 1>&2 - return 1 - fi + echo 'FAIL! to download even from alternative URL' 1>&2 + return 1 fi - VerifyHash "$targetFile" "$expectedHash" fi + VerifyHash "$targetFile" "$expectedHash" } diff --git a/coin/provisioning/common/unix/libclang.sh b/coin/provisioning/common/unix/libclang.sh index a9d1cc49..6fa6c040 100755 --- a/coin/provisioning/common/unix/libclang.sh +++ b/coin/provisioning/common/unix/libclang.sh @@ -65,10 +65,10 @@ zip="/tmp/libclang.7z" destination="/usr/local/libclang-$version" DownloadURL $url_cached $url $sha1 $zip -7z x $zip -o/tmp/ +sudo 7z x $zip -o/usr/local/ +sudo mv /usr/local/libclang "$destination" rm -rf $zip -sudo mv /tmp/libclang "$destination" echo "export LLVM_INSTALL_DIR=$destination" >> ~/.bash_profile echo "libClang = $version" >> ~/versions.txt diff --git a/coin/provisioning/common/unix/telegraf_install.sh b/coin/provisioning/common/unix/telegraf_install.sh index 1412650e..b2dd244e 100755 --- a/coin/provisioning/common/unix/telegraf_install.sh +++ b/coin/provisioning/common/unix/telegraf_install.sh @@ -73,7 +73,7 @@ $CMD_INSTALL -m 755 "$PROVISIONING_DIR"/common/shared/telegraf/telegraf-ioping. [ x"$PROVISIONING_OS" = xmacos ] && os=darwin || os=linux [ x"$PROVISIONING_ARCH" = xx86 ] && arch=i386 || arch=amd64 -package_filename=telegraf-1.12.1_${os}_${arch}.tar.gz +package_filename=telegraf-1.12.6_${os}_${arch}.tar.gz package_sha256_list="$PROVISIONING_DIR"/common/shared/telegraf/telegraf_packages.sha256.txt package_sha256=$(sed -n "s/.*$package_filename *//p" "$package_sha256_list") diff --git a/coin/provisioning/common/windows/android.ps1 b/coin/provisioning/common/windows/android.ps1 index 537e14a2..2cf18cdc 100644 --- a/coin/provisioning/common/windows/android.ps1 +++ b/coin/provisioning/common/windows/android.ps1 @@ -95,9 +95,12 @@ Out-File -FilePath C:\Utils\Android\licenses\android-sdk-license -Encoding utf8 # Get a PATH where Java's path is defined from previous provisioning [Environment]::SetEnvironmentVariable("PATH", [Environment]::GetEnvironmentVariable("PATH", "Machine"), "Process") +# Attempt to catch all errors of sdkmanager.bat, even when hidden behind a pipeline. +$ErrorActionPreference = "Stop" + cd $toolsFolder\bin\ $sdkmanager_args += "platforms;$sdkApiLevel", "platform-tools", "build-tools;$sdkBuildToolsVersion" -$command = 'for($i=0;$i -lt 6;$i++) { $response += "y`n"}; $response | .\sdkmanager.bat @sdkmanager_args' +$command = 'for($i=0;$i -lt 6;$i++) { $response += "y`n"}; $response | .\sdkmanager.bat @sdkmanager_args | Out-Null' Invoke-Expression $command $command = 'for($i=0;$i -lt 6;$i++) { $response += "y`n"}; $response | .\sdkmanager.bat --licenses' iex $command diff --git a/coin/provisioning/common/windows/install_telegraf.ps1 b/coin/provisioning/common/windows/install_telegraf.ps1 index fee550b1..0a64cfd4 100644 --- a/coin/provisioning/common/windows/install_telegraf.ps1 +++ b/coin/provisioning/common/windows/install_telegraf.ps1 @@ -37,14 +37,14 @@ # Install a specific version of Telegraf # https://github.com/influxdata/telegraf/releases -$version = "1.12.1" +$version = "1.12.6" if (Is64BitWinHost) { $arch = "amd64" - $sha256 = "88d8c8146b561f43726e61688b42d0b5ab88fc22607b94df5a2c8245bbb27e29" + $sha256 = "5d025d85070e8c180c443580afa8a27421a7bbcf14b5044894e9f3298d0ce97a" } else { $arch = "i386" - $sha256 = "d2dea67a28fd7a9e21395d14f0b7ce1b6413e85cc9ffd89cc7ff8f35e8af5837" + $sha256 = "5178a0bdaab448c2ef965b0e36f835849cea731ccd87c4a4527f0f05fbbdf271" } $filename = "telegraf-" + $version + "_windows_" + $arch + ".zip" diff --git a/coin/provisioning/common/windows/version.ps1 b/coin/provisioning/common/windows/version.ps1 new file mode 100644 index 00000000..7f701f63 --- /dev/null +++ b/coin/provisioning/common/windows/version.ps1 @@ -0,0 +1,6 @@ +Write-Host '******************** SW VERSIONS ********************' +type ~/versions.txt +Write-Host '*****************************************************' +Write-Host '******************** Get-PSDrive ********************' +Get-PSDrive +Write-Host '*****************************************************' |