From 84ff024609e4eca003c604294b4102e73deba8c3 Mon Sep 17 00:00:00 2001 From: Ryan Chu Date: Thu, 23 May 2019 13:42:47 +0000 Subject: Revert "Provisioning: disable docker test servers on Windows 10 (x86_64)" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 577d01e9dfaa9e69608097c550bd1877b5a9b735. Reason for revert: force vmx instructions to Coin level B virtual machine Change-Id: I54a97fb6dc96315768c8047d487f1ed354ab4aac Reviewed-by: Tony Sarajärvi --- coin/provisioning/common/windows/docker.ps1 | 85 ++++++++++++++++++++++ .../qtci-windows-10-x86_64/95-docker.ps1 | 6 ++ 2 files changed, 91 insertions(+) create mode 100644 coin/provisioning/common/windows/docker.ps1 create mode 100644 coin/provisioning/qtci-windows-10-x86_64/95-docker.ps1 diff --git a/coin/provisioning/common/windows/docker.ps1 b/coin/provisioning/common/windows/docker.ps1 new file mode 100644 index 00000000..6f53eccd --- /dev/null +++ b/coin/provisioning/common/windows/docker.ps1 @@ -0,0 +1,85 @@ +############################################################################# +## +## 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. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see http://www.qt.io/terms-conditions. For further +## information use the contact form at http://www.qt.io/contact-us. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + +. "$PSScriptRoot\helpers.ps1" + +# This script installs Docker tool kits and Apple Bonjour on Windows. + +function DownloadAndInstall +{ + Param ( + [string]$externalUrl, + [string]$internalUrl, + [string]$package, + [string]$sha1, + [string]$parameters + ) + + Write-Host "Fetching $package from URL..." + Download $externalUrl $internalUrl $package + Verify-Checksum $package $sha1 + + Write-Host "Installing $package..." + Run-Executable $package $parameters + + Write-Host "Remove $package..." + Remove-Item -Path $package +} + +# Install Docker Toolbox +$package = Get-DownloadLocation "DockerToolbox.exe" +$externalUrl = "https://download.docker.com/win/stable/DockerToolbox.exe" +$internalUrl = "http://ci-files01-hki.intra.qt.io/input/windows/DockerToolbox.exe" +$sha1 = "62325c426ff321d9ebfb89664d65cf9ffaef2985" +DownloadAndInstall $externalUrl $internalUrl $package $sha1 "/SP- /SILENT" +Add-Path 'C:\Program Files\Docker Toolbox' +docker --version +docker-compose --version + +# Install Apple Bonjour +$package = Get-DownloadLocation "BonjourPSSetup.exe" +$externalUrl = "http://support.apple.com/downloads/DL999/en_US/BonjourPSSetup.exe" +$internalUrl = "http://ci-files01-hki.intra.qt.io/input/windows/BonjourPSSetup.exe" +$sha1 = "847f39e0ea80d2a4d902fe59657e18f5bc32a8cb" +DownloadAndInstall $externalUrl $internalUrl $package $sha1 "/qr" + +# Nested virtualization - Print CPU features to verify that CI has enabled VT-X/AMD-v support +$testserver = "$PSScriptRoot\..\shared\testserver\docker_testserver.sh" +$sysInfoStr = systeminfo +if ($sysInfoStr -like "*A hypervisor has been detected*") { + & 'C:\Program Files\Git\bin\bash.exe' --login $testserver Hyper-V +} elseif ($sysInfoStr -like "*Virtualization Enabled In Firmware: Yes*") { + & 'C:\Program Files\Git\bin\bash.exe' --login $testserver VMX +} else { + Write-Error "VMX not found error! Please make sure Coin has enabled VT-X/AMD-v." +} diff --git a/coin/provisioning/qtci-windows-10-x86_64/95-docker.ps1 b/coin/provisioning/qtci-windows-10-x86_64/95-docker.ps1 new file mode 100644 index 00000000..df735855 --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86_64/95-docker.ps1 @@ -0,0 +1,6 @@ +# Disable Hyper-V from Windows 10 Pro/Enterprise +# Because VirtualBox is a type 2 hypervisor, it can't run if Hyper-V virtual machines are in use. +# Otherwise, docker-machine will complain about "VT-x is not available (VERR_VMX_NO_VMX)". +Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -NoRestart + +. "$PSScriptRoot\..\common\windows\docker.ps1" -- cgit v1.2.3