aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTero Heikkinen <tero.heikkinen@qt.io>2023-11-01 12:52:36 +0200
committerTero Heikkinen <tero.heikkinen@qt.io>2024-05-14 19:47:28 +0300
commit3ac3b7d9f3ca331dcca28650e1ec2a390bf998db (patch)
treecd0e10d8999a215fa690f3a3718a95b616270d8b
parent7aa7c459ac63e50d1320a56cb98aa30abc5cb516 (diff)
Provisioning: Add Windows 11 on ARM as non-blocking in CI
Visual Studio 2022 is the first msvc having natively support for building and debugging ARM64 apps. [CI Platforms] Provisioning needed to take new Get-CpuArchitecture helpers.ps1 function into use in several installations. Requirements for other branches - Get-CpuArchitecture helpers.ps1 function - Skip qtwebengine with Windows 11 ARM (QTBUG-124632) List of excluded installations in Windows on ARM: - Could be added later - MinGW - QTQAINFRA-6079 - DirectX SDK for RTA - libclang - mcuexpresso - fbx for msvc2022 - Ruby - For python - conan - emsdk - Not supported yet - FFmpeg - Msys2 (for FFmpeg QTBUG-124399) - MySQL - PostgreSQL - Java JDK - Strawberry Perl Task-number: QTQAINFRA-6109 Task-number: QTQAINFRA-5855 Pick-to: 6.7 Change-Id: I4130e78add53f8a6e05eb41b7617b3f9ca802178 Reviewed-by: Simo Fält <simo.falt@qt.io>
-rw-r--r--coin/platform_configs/cmake_platforms.yaml11
-rw-r--r--coin/pre-provisioning/qtci-windows-11_22H2-aarch64/README_MANUAL_INSTALLATIONS64
-rw-r--r--coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-clean-manager.ps18
-rw-r--r--coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-defragment.ps142
-rw-r--r--coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-ntp.ps14
-rw-r--r--coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-schedule-tasks.ps172
-rw-r--r--coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-update-orchestrator.ps113
-rw-r--r--coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-windefender.ps121
-rw-r--r--coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-windows-file-protector.ps14
-rw-r--r--coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-windows-update-medic.ps125
-rw-r--r--coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-windows-updates.ps124
-rw-r--r--coin/pre-provisioning/qtci-windows-11_22H2-aarch64/msvc2022.txt74
-rw-r--r--coin/provisioning/common/windows/cmake.ps132
-rw-r--r--coin/provisioning/common/windows/disable-windows-module-installer.ps14
-rw-r--r--coin/provisioning/common/windows/exceutequeueditems.ps127
-rw-r--r--coin/provisioning/common/windows/install-ffmpeg.ps11
-rw-r--r--coin/provisioning/common/windows/install-notepad++.ps135
-rw-r--r--coin/provisioning/common/windows/install-openssh.ps132
-rw-r--r--coin/provisioning/common/windows/install-sevenzip.ps126
-rw-r--r--coin/provisioning/common/windows/install_telegraf.ps151
-rw-r--r--coin/provisioning/common/windows/ninja.ps138
-rw-r--r--coin/provisioning/common/windows/nodejs.ps127
-rw-r--r--coin/provisioning/common/windows/openssl-arm64.ps127
-rw-r--r--coin/provisioning/common/windows/python3.ps127
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/00-disable-netadapterlso.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/00-install-sevenzip.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/01-allow-remote-desktop-access.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/01-change-resolution.ps128
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/01-disable-notifications.ps19
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/01-disable-runtimebroker.ps14
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/01-disable-windows-telemetry.ps17
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/01-enable-guest-logon.ps12
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/01-install_telegraf.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/01-set-proxy.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/02-disable-autoreboot.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/02-disable-sleep.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/03-nodejs.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/05-enable-devmode.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/05-wsearch-off.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/06-longpath.ps12
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/06-mesa_llvmpipe.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/06-ninja.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/08-install-git.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/08-python3.ps19
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/09-install-openssh.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/09-install-sed.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/09-openssl-arm64.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/09-openssl.ps14
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/09-set-network-test-server.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/09-vulkansdk.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/22-mqtt_broker.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/23-winrtrunner.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/25-llvm-mingw.ps120
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/29-libusb.ps13
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/35-install-breakpad.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/36-install-gnuwin32.ps12
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/60-jom.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/70-cmake.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/85-disable_quickedit_powershell.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/90-3dstudio_3rdparty.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/90-install-notepad++.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/90-install-stm32cubeprogrammer.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/90-libusb.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/90-python-modules.ps15
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/96-disable-windows-module-installer.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/98-unset-proxy.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/99-share-test-folders.ps11
-rw-r--r--coin/provisioning/qtci-windows-11_22H2-aarch64/99-version.ps11
68 files changed, 746 insertions, 70 deletions
diff --git a/coin/platform_configs/cmake_platforms.yaml b/coin/platform_configs/cmake_platforms.yaml
index a7602bd4..926bbfb0 100644
--- a/coin/platform_configs/cmake_platforms.yaml
+++ b/coin/platform_configs/cmake_platforms.yaml
@@ -126,6 +126,17 @@ Configurations:
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
]
-
+ Id: 'windows-11_22h2-arm64-msvc2022'
+ Template: 'qtci-windows-11_22H2-aarch64-51'
+ Compiler: 'MSVC2022'
+ Features: ['DebugAndRelease', 'UseConfigure', 'InsignificantTests']
+ Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib -c++std c++20 -no-sql-psql'
+ Environment variables: [
+ 'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_arm64}}\..',
+ 'NON_QTBASE_CMAKE_ARGS=-DFEATURE_native_grpc=OFF -DFEATURE_clangcpp=OFF -DFEATURE_qdoc=OFF',
+ 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
+ ]
+-
Id: 'windows-10_22h2-msvc2019-developer-build'
Template: 'qtci-windows-10_22H2-x86_64-51'
Compiler: 'MSVC2019'
diff --git a/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/README_MANUAL_INSTALLATIONS b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/README_MANUAL_INSTALLATIONS
new file mode 100644
index 00000000..abd3954d
--- /dev/null
+++ b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/README_MANUAL_INSTALLATIONS
@@ -0,0 +1,64 @@
+# Follow manual pre-setup from intra to install Windows 11 ARM and virtio drivers:
+# "How to create a Windows 11 ARM tier1 image using Qemu"
+
+# Configure Windows after pre-setup
+* Enable Remote Desktop:
+ - Settings - System - Remote Desktop - On
+* Resolution set to 1280x800
+ - Unfortunately not possible, only 1280x1024 is available
+* Coin-setup:
+ - Installing Boostrap agent
+ - Disabling fast boot
+ - Disabling firewall
+ - Disabling UAC
+ - Enabling autologin
+ - Automatic login
+ - Disabling windows updates
+* Turn off Windows defender:
+ - Microsoft Defender Antivirus turned off: Open 'gpedit.msc': 'Computer Configuration' - 'Administrative Templates' - 'Windows Components' - 'Microsoft Defender Antivirus'
+ - Edit 'Turn off Microsoft Defender Antivirus' > 'Enabled' > 'Apply'
+ - Reboot on Safe mode:
+ - Open msconfig - Boot tab - enable “Safe boot“ - apply - restart
+ - In Safe mode:
+ - Take Ownership of Defender:
+ - Open properties - Right click "C:\Program Files\Windows Defender\Platform" and select 'Properties'
+ - Open Security tab - Advanced - Owner: Change - Advanced - Find now - Select Administrators - Ok - Ok
+ - Remove all Permissions: Permissions tab - Select 'Disable inheritance' - Remove all entries -Select 'Replace all child object permi…' - Apply
+ - Disable Windows defender also from RegEdit:
+ - Open regedit - Navigate to 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services'
+ - Change the following folders the key Start to 4
+ - Sense (Windows defender advanced threat protection)
+ - WdBoot (Windows defender boot)
+ - WdFilter (Microsoft antimalware file system filter driver)
+ - WdNisDrv (Windows Defender Network Inspection Driver)
+ - WdNisSvc (Windows Defender Network Inspection Service)
+ - WinDefend (Windows Defender Antivirus Service)
+ - mpssvc (Windows Defender Firewall)
+ - NOTE! Without these step windows defender can't be disabled!
+ - Reboot back to normal mode
+* Background defrag disabled: 'Defragment And Optimize Drives' - 'change settings' - unchecked "run on a schedule"
+ - Run in terminal: 'schtasks /Delete /TN "Microsoft\Windows\Defrag\ScheduledDefrag"'
+* Time:
+ - Settings - System - Date & time - Time zone: 'Co-ordinated Universal Time'
+ - Settings - System - Date & time - "Set the time automatically: Off"
+* Regional format:
+ - Settings - Time & language - Language and region - regional format - English (United States)
+* Power saver:
+ - Settings - System - Power - Screen and sleep: set 'When plugged in, turn off my screen after' to 'never'
+* Windows search disabled:
+ - 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Services' - 'Windows search' - stop & disable
+* Sysmain disabled:
+ - 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Services' - 'SysMain' - stop & disable
+* Windows update:
+ - Settings - Windows Update - run available updates (Windows update2023-09 Cumulative Update for Windows 11 Version 22H2 for arm64-based Systems (KB5030219))
+ - After reboot disable windows updates:
+ - 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Services' - 'Windows updates' - stop & disable
+* Turn windows features on or off -> Check the "SMB 1.0/CIFS File Sharing Support"
+* (Restart Windows)
+* Google Chrome installed for RTA
+* Virus & threat protection settings:
+ * Check that there's no active antivirus providers
+* Activate Windows
+
+# Next
+Proceed to install pre-provisioning scripts manually to Tier1 image
diff --git a/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-clean-manager.ps1 b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-clean-manager.ps1
new file mode 100644
index 00000000..45ce141f
--- /dev/null
+++ b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-clean-manager.ps1
@@ -0,0 +1,8 @@
+# This script will disable automatic disk cleanup
+
+. "$PSScriptRoot\..\..\provisioning\common\windows\helpers.ps1"
+
+Run-Executable "reg.exe" "ADD `"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy`" /V 04 /T REG_dWORD /D 0 /F"
+
+# Maintenance task used by the system to launch a silent auto disk cleanup when running low on free disk space.
+DisableSchedulerTask "DiskCleanup\SilentCleanup"
diff --git a/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-defragment.ps1 b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-defragment.ps1
new file mode 100644
index 00000000..bb449e56
--- /dev/null
+++ b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-defragment.ps1
@@ -0,0 +1,42 @@
+# Copyright (C) 2019 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+# Windows 7 does not have Get-ScheduledTask and Unregister-ScheduledTask
+# thus needing its own version.
+Write-Host "Disabling defragmentation"
+$version = Get-CimInstance Win32_OperatingSystem | Select-Object -ExpandProperty Caption
+if ($version -like '*Windows 7*'){
+ $pi = New-Object System.Diagnostics.ProcessStartInfo
+ $pi.FileName = "C:\Windows\System32\schtasks.exe"
+ $pi.RedirectStandardError = $true
+ $pi.UseShellExecute = $false
+ $pi.Arguments = "/Delete /TN `"\Microsoft\Windows\Defrag\ScheduledDefrag`" /F"
+ $prog = New-Object System.Diagnostics.Process
+ $prog.StartInfo = $pi
+ $prog.Start() | Out-Null
+ $err = $prog.StandardError.ReadToEnd()
+ $prog.WaitForExit()
+ if ($prog.ExitCode -eq 0){
+ Write-Host "Scheduled defragmentation removed"
+ } else {
+ if ($err -like '*cannot find the file*'){
+ Write-Host "No scheduled defragmentation task found"
+ exit 0
+ } else {
+ Write-Host "Error while deleting scheduled defragmentation task: $err"
+ }
+ }
+}
+else {
+ try {
+ $state = (Get-ScheduledTask -ErrorAction Stop -TaskName "ScheduledDefrag").State
+ Write-Host "Scheduled defragmentation task found in state: $state"
+ }
+ catch {
+ Write-Host "No scheduled defragmentation task found"
+ exit 0
+ }
+ Write-Host "Unregistering scheduled defragmentation task"
+ Unregister-ScheduledTask -ErrorAction Stop -Confirm:$false -TaskName ScheduledDefrag
+ Write-Host "Scheduled Defragmentation task was cancelled"
+}
diff --git a/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-ntp.ps1 b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-ntp.ps1
new file mode 100644
index 00000000..22651763
--- /dev/null
+++ b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-ntp.ps1
@@ -0,0 +1,4 @@
+. "$PSScriptRoot\..\..\provisioning\common\windows\helpers.ps1"
+
+# Disable the NTP from syncing
+Run-Executable "w32tm.exe" "/config /syncfromflags:NO"
diff --git a/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-schedule-tasks.ps1 b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-schedule-tasks.ps1
new file mode 100644
index 00000000..88b83879
--- /dev/null
+++ b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-schedule-tasks.ps1
@@ -0,0 +1,72 @@
+. "$PSScriptRoot\..\..\provisioning\common\windows\helpers.ps1"
+
+# This script will remove unneeded Tasks from Task Scheduler
+
+# Application Experience 'Microsoft Compatibility Appraiser' - "Collects program telemetry information if opted-in to the Microsoft Customer Experience Improvement Program."
+DisableSchedulerTask "Application Experience\Microsoft Compatibility Appraiser"
+
+# Application Experience 'ProgramDataUpdater' - "Collects program telemetry information if opted-in to the Microsoft Customer Experience Improvement Program"
+DisableSchedulerTask "Application Experience\ProgramDataUpdater"
+
+# Autochk 'Proxy' - "This task collects and uploads autochk SQM data if opted-in to the Microsoft Customer Experience Improvement Program."
+DisableSchedulerTask "Autochk\Proxy"
+
+# Chkdsk 'ProactiveScan' - "NTFS Volume Health Scan"
+DisableSchedulerTask "Chkdsk\ProactiveScan"
+
+# Chkdsk 'SyspartRepair'
+DeleteSchedulerTask "Chkdsk\SyspartRepair"
+
+# Customer Experience Improvement Program 'Consolidator' - "If the user has consented to participate in the Windows Customer Experience Improvement Program, this job collects and sends usage data to Microsoft."
+DisableSchedulerTask "Customer Experience Improvement Program\Consolidator"
+
+# Customer Experience Improvement Program 'sbCeip' - "The USB CEIP (Customer Experience Improvement Program) task collects Universal Serial Bus related statistics and information about your machine and sends it to the Windows Device Connectivity engineering group at Microsoft. The information received is used to help improve the reliability, stability, and overall functionality of USB in Windows. If the user has not consented to participate in Windows CEIP, this task does not do anything."
+DisableSchedulerTask "Customer Experience Improvement Program\UsbCeip"
+
+# Device Information 'Device'
+DisableSchedulerTask "Device Information\Device"
+
+# Diagnosis 'Scheduled' - "The Windows Scheduled Maintenance Task performs periodic maintenance of the computer system by fixing problems automatically or reporting them through Security and Maintenance."
+DisableSchedulerTask "Diagnosis\Scheduled"
+
+# DiskDiagnostic 'Microsoft-Windows-DiskDiagnosticDataCollector' - "The Windows Disk Diagnostic reports general disk and system information to Microsoft for users participating in the Customer Experience Program."
+DisableSchedulerTask "DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector"
+
+# ExploitGuard 'ExploitGuard MDM policy Refresh' - "Task for applying changes to the machine's Exploit Protection settings."
+DisableSchedulerTask "ExploitGuard\ExploitGuard MDM policy Refresh"
+
+# Feedback/Siuf 'DmClient'
+DisableSchedulerTask "Feedback\Siuf\DmClient"
+
+# Feedback/Siuf 'DmClient'OnScenarioDownload'
+DisableSchedulerTask "Feedback\Siuf\DmClientOnScenarioDownload"
+
+# File Classification Infrastructure 'Property Definition Sync'
+DisableSchedulerTask "File Classification Infrastructure\Property Definition Sync"
+
+# InstallService 'ScanForUpdates'
+DisableSchedulerTask "InstallService\ScanForUpdates"
+
+# InstallService 'ScanForUpdatesAsUser'
+DisableSchedulerTask "InstallService\ScanForUpdatesAsUser"
+
+# LanguageComponentsInstaller 'Installation' - "Install language components that match the user's language list."
+DisableSchedulerTask "LanguageComponentsInstaller\Installation"
+
+# LanguageComponentsInstaller 'ReconcileLanguageResources' - "Install language components that match the user's language list."
+DisableSchedulerTask "LanguageComponentsInstaller\ReconcileLanguageResources"
+
+# PI 'Secure-Boot-Update' - "This task updates the Secure Boot variables."
+DisableSchedulerTask "PI\Secure-Boot-Update"
+
+# PI 'Sqm-Tasks' - "This task gathers information about the Trusted Platform Module (TPM), Secure Boot, and Measured Boot."
+DisableSchedulerTask "PI\Sqm-Tasks"
+
+# Power Efficiency Diagnotics 'AnalyzeSystem' - "This task analyzes the system looking for conditions that may cause high energy use."
+DisableSchedulerTask "PushToInstall\Registration"
+
+# Servicing 'StartComponentCleanup'
+DisableSchedulerTask "Servicing\StartComponentCleanup"
+
+# SoftwareProtectionPlatform 'SvcRestartTaskNetwork' - "This task restarts the Software Protection Platform service when a new network is detected"
+DisableSchedulerTask "SoftwareProtectionPlatform\SvcRestartTaskNetwork"
diff --git a/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-update-orchestrator.ps1 b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-update-orchestrator.ps1
new file mode 100644
index 00000000..72473d8f
--- /dev/null
+++ b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-update-orchestrator.ps1
@@ -0,0 +1,13 @@
+# Disable UpdateOrchestrator
+
+$name = "UpdateOrchestrator"
+$path = "C:\Windows\System32\Tasks\Microsoft\Windows\$name"
+
+takeown /F $path /A /R
+icacls $path /grant Administrators:F /T
+del "$path\Schedule Scan"
+del "$path\Schedule Scan Static Task"
+del "$path\USO_UxBroker"
+
+# Disable Update orchestrator service
+reg.exe ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc" /V Start /T REG_dWORD /D 4 /F
diff --git a/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-windefender.ps1 b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-windefender.ps1
new file mode 100644
index 00000000..17b30db0
--- /dev/null
+++ b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-windefender.ps1
@@ -0,0 +1,21 @@
+# Copyright (C) 2020 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+# Turning off win defender.
+#
+# If disabled manually, windows will automatically enable it after
+# some period of time. Disabling it speeds up the builds.
+# NOTE! Windows Defender Antivirus needs to be turned off!
+# Open 'gpedit.msc': 'Computer Configuration' - 'Administrative Templates' - 'Windows Components' - 'Windows Defender Antivirus'
+# Edit 'Turn off Windows Defender Antivirus' > 'Enabled' > 'Apply'
+
+. "$PSScriptRoot\..\..\provisioning\common\windows\helpers.ps1"
+
+Run-Executable "reg.exe" "ADD `"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender`" /V DisableAntiSpyware /T REG_dWORD /D 1 /F"
+Run-Executable "reg.exe" "ADD `"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender`" /V DisableRoutinelyTakingAction /T REG_dWORD /D 1 /F"
+
+# Disable 'QueueReporting' - "Windows Error Reporting task to process queued reports."
+DisableSchedulerTask "Windows Error Reporting\QueueReporting"
+
+# Disable WindowsUpdate from Task Scheduler
+DisableSchedulerTask "WindowsUpdate\Scheduled Start"
diff --git a/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-windows-file-protector.ps1 b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-windows-file-protector.ps1
new file mode 100644
index 00000000..f1d09fb5
--- /dev/null
+++ b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-windows-file-protector.ps1
@@ -0,0 +1,4 @@
+# Disable Windows File Protection
+# Windows File Protection feature in Microsoft Windows prevents programs from replacing critical Windows system files.
+
+reg.exe ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V SFCDisable /T REG_dWORD /D 0xffffff9d /F
diff --git a/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-windows-update-medic.ps1 b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-windows-update-medic.ps1
new file mode 100644
index 00000000..6accbd3b
--- /dev/null
+++ b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-windows-update-medic.ps1
@@ -0,0 +1,25 @@
+# Windows Update Medic Service (WaaSMedicSvc)'PerformRemediation' helps recover update-related services to the supported configuration.
+# WaasMedicSvc keeps re-starting Windows Update, even if it disabled manually.
+# Even Admin user don't have privileged to disable PerformRemediation from Task Scheduler which means that WaaSMedicSvc.dll need's to be removed from the system
+
+$limit = (Get-Date).AddMinutes(20)
+$path = "C:\Windows\System32\WaaSMedicSvc.dll"
+
+DO {
+ takeown /F $path
+ icacls $path /grant Administrators:f
+ Write-host "Deleting $path"
+
+ Try {
+ del $path
+ }
+ Catch [System.UnauthorizedAccessException] {
+ Write-host "Access to the path '$path' is denied."
+ Continue
+ }
+
+ if ((Get-Date) -gt $limit) {
+ exit 1
+ }
+
+}while (Test-Path -Path "$path")
diff --git a/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-windows-updates.ps1 b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-windows-updates.ps1
new file mode 100644
index 00000000..62e19814
--- /dev/null
+++ b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/disable-windows-updates.ps1
@@ -0,0 +1,24 @@
+# Copyright (C) 2017 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+# This script disables the automatic Windows updates
+
+$service = get-service wuauserv
+if (-not $service) {
+ Write-Host "Windows Update service not found."
+ exit 0
+}
+
+if ($service.Status -eq "Stopped") {
+ Write-Host "Windows Update service already stopped."
+} else {
+ Write-Host "Stopping Windows Update service."
+ Stop-Service -Name "wuauserv" -Force
+}
+
+$startup = Get-WmiObject Win32_Service | Where-Object {$_.Name -eq "wuauserv"} | Select -ExpandProperty "StartMode"
+if ($startup -ne "Disabled") {
+ set-service wuauserv -startup disabled
+} else {
+ Write-Host "Windows Update service startup already disabled."
+}
diff --git a/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/msvc2022.txt b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/msvc2022.txt
new file mode 100644
index 00000000..9fd62d00
--- /dev/null
+++ b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/msvc2022.txt
@@ -0,0 +1,74 @@
+### Visual Studio Professional 2022 Official release ###
+Visual Studio Professional 2022 version 17.3.5 was installed manually using installer: http://ci-files01-hki.ci.qt.io/input/windows/vs_professional__msvc2022_1339502178.1525841376.exe
+Visual Studio Professional 2022 was updated to 17.8.2 vith Visual Studio Installer
+
+Installed MSVC-2022 Components:
+
+.NET Framework 4.6.1 SDK
+.NET Framework 4.6.1 targeting pack
+.NET Framework 4.6.2 SDK
+.NET Framework 4.6.2 targeting pack
+.NET Framework 4.8 SDK
+.NET Framework 4.8 targeting pack
+.NET Native
+.NET Portable Library targeting pack
+CLR data typer for SQL Sever
+Connectivity and publishing tools
+Data sources for SQL Server support
+SQL Server Command Linne Utilities
+SQL Server Data Tools
+SQL Server Express 2019 LocalDB
+SQL Server ODBC Driver
+ClickOnce Publishing
+Developer Analytics tools
+NuGet package manager
+Text Template Transformation
+C# and Visual Basic Roslyn compilers
+C++ 2022 Redistributable Update
+C++ Cmake tools for Windows
+C++/CLI support for v143 build tools (14.30-17.0)
+C++/CLI support for v143 build tools (Latest)
+MSBuild
+MSVC v143 - VS 2022 C++ ARM build tools (Latest)
+MSVC v143 - VS 2022 C++ ARM build tools (v14.30-17.0)
+MSVC v143 - VS 2022 C++ ARM64 build tools (Latest)
+MSVC v143 - VS 2022 C++ ARM64 build tools (v14.30-17.0)
+MSVC v143 - VS 2022 C++ ARM64/ARM64EC build tools (Latest)
+.NET profiling tools
+C++ profiling tools
+JavaScript diagnostics
+Just-In-Time debugger
+C# and Visual Basic
+C++ core features
+JavaSript and TypeScript language support
+Razor Language Services
+Graphics debugger and GPU profiler for DirectX
+Image and 3D model editors
+C++ ATL for latest v143 build tools (ARM)
+C++ ATL for latest v143 build tools (ARM64)
+TypeScript 4.7 SDK
+TypeScript Server
+Windows 10 SDK (10.0.18362.0)
+Windows 10 SDK (10.0.19041.0)
+Windows 10 SDK (10.0.20348.0)
+Windows 11 SDK (10.0.22000.0)
+Windows 11 SDK (10.0.22621.0)
+Windows Universal C Runtime
+
+# NOTE! Work loads were added during installation!
+
+############################################################
+### Visual Studio 2022 build tools ###
+
+ Visual studio 2022 build tools version 17.3.5 was installed manually using installer: "http://ci-files01-hki.ci.qt.io/input/windows/vs_BuildTools_msvc2022.exe"
+ * Only default installation, no additional selections
+ Visual Studio 2022 build tools were updated to 17.6.4 vith Visual Studio Installer
+ * Some of the installed framework versions are out of support and do not get any security updates
+
+############################################################
+### Debugging tools ###
+
+* Check that debugging tools are installed
+ * Modify 'Windows Software Development Kit - Windows 10.0.18362.1' from 'Add or remove programs'
+ - Add feature 'Debugging Tools for Windows'
+############################################################
diff --git a/coin/provisioning/common/windows/cmake.ps1 b/coin/provisioning/common/windows/cmake.ps1
index d2ed4cc8..af1e2872 100644
--- a/coin/provisioning/common/windows/cmake.ps1
+++ b/coin/provisioning/common/windows/cmake.ps1
@@ -6,18 +6,40 @@
$majorminorversion = "3.27"
$version = "3.27.7"
-$zip = Get-DownloadLocation ("cmake-" + $version + "-windows-i386.zip")
-$officialurl = "https://cmake.org/files/v" + $majorminorversion + "/cmake-" + $version + "-windows-i386.zip"
-$cachedurl = "\\ci-files01-hki.ci.qt.io\provisioning\cmake\cmake-" + $version + "-windows-i386.zip"
+$cpu_arch = Get-CpuArchitecture
+Write-Host "Installing CMake for architecture $cpu_arch"
+switch ($cpu_arch) {
+ arm64 {
+ $arch = "arm64"
+ $sha1 = "52ee08671dcb478c5ec6e862f41717f65047c598"
+ $majorminorversion = "3.29"
+ $version = "3.29.2"
+ Break
+ }
+ x64 {
+ $arch = "i386"
+ $sha1 = "b6147215a5f9cd1138b012265229fbf2224d02c6"
+ }
+ default {
+ throw "Unknown architecture $cpu_arch"
+ }
+}
+
+$filename = "cmake-" + $version + "-windows-" + $arch
+$filename_zip = $filename + ".zip"
+
+$zip = Get-DownloadLocation ($filename_zip)
+$officialurl = "https://cmake.org/files/v" + $majorminorversion + "/" + $filename_zip
+$cachedurl = "https://ci-files01-hki.ci.qt.io/input/cmake/" + $filename_zip
Write-Host "Removing old cmake"
Remove "C:\CMake"
Download $officialurl $cachedurl $zip
-Verify-Checksum $zip "b6147215a5f9cd1138b012265229fbf2224d02c6"
+Verify-Checksum $zip $sha1
Extract-7Zip $zip C:
-$defaultinstallfolder = "C:\cmake-" + $version + "-windows-i386"
+$defaultinstallfolder = "C:\" + $filename
Rename-Item $defaultinstallfolder C:\CMake
Add-Path "C:\CMake\bin"
diff --git a/coin/provisioning/common/windows/disable-windows-module-installer.ps1 b/coin/provisioning/common/windows/disable-windows-module-installer.ps1
index c7f85ff7..2d829b04 100644
--- a/coin/provisioning/common/windows/disable-windows-module-installer.ps1
+++ b/coin/provisioning/common/windows/disable-windows-module-installer.ps1
@@ -1,4 +1,6 @@
+. "$PSScriptRoot\helpers.ps1"
+
# Disable Windows Module Installer (Trusted Installer).
# Trusted Installe enables installation, modification, and removal of Windows updates and optional components.
# If this service is disabled, install or uninstall of Windows updates might fail for this computer.
-sc.exe config TrustedInstaller start=disabled
+Run-Executable "sc.exe" "config TrustedInstaller start=disabled"
diff --git a/coin/provisioning/common/windows/exceutequeueditems.ps1 b/coin/provisioning/common/windows/exceutequeueditems.ps1
index 28ed007f..0d6a7267 100644
--- a/coin/provisioning/common/windows/exceutequeueditems.ps1
+++ b/coin/provisioning/common/windows/exceutequeueditems.ps1
@@ -2,8 +2,29 @@
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
. "$PSScriptRoot\helpers.ps1"
-Start-Process -NoNewWindow -FilePath "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\ngen.exe" -ArgumentList ExecuteQueuedItems -Wait
+function ngen() {
+ Param (
+ [ValidateSet("Framework","Framework64","FrameworkArm64")][string]$framework
+ )
+ Start-Process -NoNewWindow -FilePath "C:\WINDOWS\Microsoft.NET\$framework\v4.0.30319\ngen.exe" -ArgumentList ExecuteQueuedItems -Wait
+}
-if( (is64bitWinHost) -eq 1 ) {
- Start-Process -NoNewWindow -FilePath "C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\ngen.exe" -ArgumentList ExecuteQueuedItems -Wait
+$cpu_arch = Get-CpuArchitecture
+switch ($cpu_arch) {
+ arm64 {
+ ngen("FrameworkArm64")
+ Break
+ }
+ x64 {
+ ngen("Framework")
+ ngen("Framework64")
+ Break
+ }
+ x86 {
+ ngen("Framework")
+ Break
+ }
+ default {
+ throw "Unknown architecture $cpu_arch"
+ }
}
diff --git a/coin/provisioning/common/windows/install-ffmpeg.ps1 b/coin/provisioning/common/windows/install-ffmpeg.ps1
index b806f58d..f8ad9f15 100644
--- a/coin/provisioning/common/windows/install-ffmpeg.ps1
+++ b/coin/provisioning/common/windows/install-ffmpeg.ps1
@@ -25,7 +25,6 @@ Remove $download_location
$config = Get-Content "$PSScriptRoot\..\shared\ffmpeg_config_options.txt"
Write-Host "FFmpeg configuration $config"
-
function InstallFfmpeg {
Param (
[string]$buildSystem,
diff --git a/coin/provisioning/common/windows/install-notepad++.ps1 b/coin/provisioning/common/windows/install-notepad++.ps1
index f0648d41..17e86d27 100644
--- a/coin/provisioning/common/windows/install-notepad++.ps1
+++ b/coin/provisioning/common/windows/install-notepad++.ps1
@@ -5,16 +5,33 @@
# This script will install Notepad++
-$version = "7.3"
-if (Is64BitWinHost) {
- $arch = ".x64"
- $sha1 = "E7306DF1D6E81801FB4BE0868610DB70E979B0AA"
-} else {
- $arch = ""
- $sha1 = "d4c403675a21cc381f640b92e596bae3ef958dc6"
+$version = "8.6.5"
+
+$cpu_arch = Get-CpuArchitecture
+switch ($cpu_arch) {
+ arm64 {
+ $arch = ".arm64"
+ $sha1 = "eecb8a6b6ed3cb1e467d227b8b7751283c35434e"
+ Break
+ }
+ x64 {
+ $arch = ".x64"
+ $sha1 = "a0bf3fb15015bc1fbcb819d9a9c61f4762f4a10f"
+ Break
+ }
+ x86 {
+ $arch = ""
+ $sha1 = "ba940c6b526da1ce127f43b835b4d8c9d5c4b59c"
+ Break
+ }
+ default {
+ throw "Unknown architecture $cpu_arch"
+ }
}
-$url_cache = "\\ci-files01-hki.ci.qt.io\provisioning\windows\npp." + $version + ".Installer" + $arch + ".exe"
-$url_official = "https://notepad-plus-plus.org/repository/7.x/" + $version + "/npp." + $version + ".Installer" + $arch + ".exe"
+
+$filename_exe = "npp." + $version + ".Installer" + $arch + ".exe"
+$url_cache = "https://ci-files01-hki.ci.qt.io/input/windows/" + $filename_exe
+$url_official = "https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v" + $version + "/" + $filename_exe
$nppPackage = "C:\Windows\Temp\npp-$version.exe"
Download $url_official $url_cache $nppPackage
diff --git a/coin/provisioning/common/windows/install-openssh.ps1 b/coin/provisioning/common/windows/install-openssh.ps1
index d31270e0..1f746b14 100644
--- a/coin/provisioning/common/windows/install-openssh.ps1
+++ b/coin/provisioning/common/windows/install-openssh.ps1
@@ -7,19 +7,31 @@
$version = "v9.2.2.0p1-Beta"
$temp = "$env:tmp"
-if (Is64BitWinHost) {
- $zipPackage = "OpenSSH-Win64"
- $url_cache = "http://ci-files01-hki.ci.qt.io/input/windows/" + $zipPackage + ".zip"
- $url_official = "https://github.com/PowerShell/Win32-OpenSSH/releases/download/" + $version + "/" + $zipPackage
- $sha1 = "D3EA57408C0D3CF83167DF39639FED5397358B79"
-} else {
- $zipPackage = "OpenSSH-Win32"
- $url_cache = "http://ci-files01-hki.ci.qt.io/input/windows/openssh/" + $version + "/" + $zipPackage + ".zip"
- $url_official = "https://github.com/PowerShell/Win32-OpenSSH/releases/download/" + $version + "/" + $zipPackage
- $sha1 = "4642C62F72C108C411E27CE282A863791B63329B"
+$cpu_arch = Get-CpuArchitecture
+switch ($cpu_arch) {
+ arm64 {
+ $zipPackage = "OpenSSH-ARM64"
+ $sha1 = "ca3e8f44a550b7ae71c8e122acd4ed905d66feb0"
+ Break
+ }
+ x64 {
+ $zipPackage = "OpenSSH-Win64"
+ $sha1 = "1397d40d789ae0911b3cc818b9dcd9321fed529b"
+ Break
+ }
+ x86 {
+ $zipPackage = "OpenSSH-Win32"
+ $sha1 = "4642C62F72C108C411E27CE282A863791B63329B"
+ Break
+ }
+ default {
+ throw "Unknown architecture $cpu_arch"
+ }
}
Write-Host "Fetching $zipPackage $version..."
+$url_cache = "http://ci-files01-hki.ci.qt.io/input/windows/openssh/" + $version + "/" + $zipPackage + ".zip"
+$url_official = "https://github.com/PowerShell/Win32-OpenSSH/releases/download/" + $version + "/" + $zipPackage + ".zip"
Download $url_official $url_cache "$temp\$zipPackage"
Verify-Checksum "$temp\$zipPackage" $sha1
diff --git a/coin/provisioning/common/windows/install-sevenzip.ps1 b/coin/provisioning/common/windows/install-sevenzip.ps1
index a0d44390..47a34e2b 100644
--- a/coin/provisioning/common/windows/install-sevenzip.ps1
+++ b/coin/provisioning/common/windows/install-sevenzip.ps1
@@ -8,12 +8,26 @@
$version = "23.01"
$nonDottedVersion = "2301"
-if (Is64BitWinHost) {
- $arch = "-x64"
- $sha1 = "7DF28D340D7084647921CC25A8C2068BB192BDBB"
-} else {
- $arch = ""
- $sha1 = "D5D00E6EA8B8E68CE7A704FD478DC950E543C25C"
+$cpu_arch = Get-CpuArchitecture
+switch ($cpu_arch) {
+ arm64 {
+ $arch = "-arm64"
+ $sha1 = "be65c2ea6119c04945c66b13413892f2bb03d9a7"
+ Break
+ }
+ x64 {
+ $arch = "-x64"
+ $sha1 = "7DF28D340D7084647921CC25A8C2068BB192BDBB"
+ Break
+ }
+ x86 {
+ $arch = ""
+ $sha1 = "D5D00E6EA8B8E68CE7A704FD478DC950E543C25C"
+ Break
+ }
+ default {
+ throw "Unknown architecture $cpu_arch"
+ }
}
$url_cache = "https://ci-files01-hki.ci.qt.io/input/windows/7z" + $nonDottedVersion + $arch + ".exe"
diff --git a/coin/provisioning/common/windows/install_telegraf.ps1 b/coin/provisioning/common/windows/install_telegraf.ps1
index d7d339ed..3090a25e 100644
--- a/coin/provisioning/common/windows/install_telegraf.ps1
+++ b/coin/provisioning/common/windows/install_telegraf.ps1
@@ -7,28 +7,53 @@
# Install a specific version of Telegraf
# https://github.com/influxdata/telegraf/releases
-$version = "1.12.6"
-
-if (Is64BitWinHost) {
- $arch = "amd64"
- $sha256 = "5d025d85070e8c180c443580afa8a27421a7bbcf14b5044894e9f3298d0ce97a"
-} else {
- $arch = "i386"
- $sha256 = "5178a0bdaab448c2ef965b0e36f835849cea731ccd87c4a4527f0f05fbbdf271"
+$version = "1.12.6" # TODO: ARM is not supported in this version
+$has_telegraf_ver = $false
+
+$cpu_arch = Get-CpuArchitecture
+switch ($cpu_arch) {
+ arm64 {
+ $arch = "arm64"
+ $sha256 = "5925642aad9a35886b172050203287cf33078313f543021781885ed94d9cbcff"
+ $version = "1.29.4" # TODO: ARM needs this, update this to all
+ $has_telegraf_ver = $true
+ Break
+ }
+ x64 {
+ $arch = "amd64"
+ $sha256 = "5d025d85070e8c180c443580afa8a27421a7bbcf14b5044894e9f3298d0ce97a"
+ Break
+ }
+ x86 {
+ $arch = "i386"
+ $sha256 = "5178a0bdaab448c2ef965b0e36f835849cea731ccd87c4a4527f0f05fbbdf271"
+ Break
+ }
+ default {
+ throw "Unknown architecture $cpu_arch"
+ }
}
-$filename = "telegraf-" + $version + "_windows_" + $arch + ".zip"
+$telegraf_ver = "telegraf-" + $version
+$filename_zip = $telegraf_ver + "_windows_" + $arch + ".zip"
-$url_cache = "http://ci-files01-hki.ci.qt.io/input/telegraf/" + $filename
-$url_official = "https://dl.influxdata.com/telegraf/releases/" + $filename
-$tempfile = "C:\Windows\Temp\" + $filename
+$url_cache = "http://ci-files01-hki.ci.qt.io/input/telegraf/" + $filename_zip
+$url_official = "https://dl.influxdata.com/telegraf/releases/" + $filename_zip
+$tempfile = "C:\Windows\Temp\" + $filename_zip
Write-Host "Fetching Telegraf $version..."
Download $url_official $url_cache $tempfile
Verify-Checksum $tempfile $sha256 sha256
Write-Host "Installing telegraf.exe under C:\Utils\telegraf"
-Extract-7Zip $tempfile C:\Utils "telegraf"
+
+if ($has_telegraf_ver -eq $true) {
+ Extract-7Zip $tempfile C:\Utils
+ Rename-Item "C:\Utils\$telegraf_ver" "C:\Utils\telegraf"
+} else {
+ Extract-7Zip $tempfile C:\Utils "telegraf"
+}
+
Copy-Item "$PSScriptRoot\..\..\common\windows\telegraf-coin.conf" C:\telegraf-coin.conf
. "$PSScriptRoot\telegraf_password.ps1"
diff --git a/coin/provisioning/common/windows/ninja.ps1 b/coin/provisioning/common/windows/ninja.ps1
index d5557d82..956e7835 100644
--- a/coin/provisioning/common/windows/ninja.ps1
+++ b/coin/provisioning/common/windows/ninja.ps1
@@ -1,17 +1,43 @@
. "$PSScriptRoot\helpers.ps1"
-$zip = Get-DownloadLocation "ninja-1.10.2-win-x86.zip"
-
-Download http://master.qt.io/development_releases/prebuilt/ninja/v1.10.2/ninja-win-x86.zip \\ci-files01-hki.ci.qt.io\provisioning\ninja\ninja-1.10.2-win-really-x86.zip $zip
-Verify-Checksum $zip "1a22ee9269df8ed69c4600d7ee4ccd8841bb99ca"
+$cpu_arch = Get-CpuArchitecture
+switch ($cpu_arch) {
+ arm64 {
+ $arch = "arm64"
+ $version = "1.12.0"
+ $longPathFixed = $true # fixed https://github.com/ninja-build/ninja/pull/2225 in 1.12.0
+ $zip = Get-DownloadLocation "ninja-$version-win-$arch.zip"
+ $internalUrl = "https://ci-files01-hki.ci.qt.io/input/ninja/v$version/ninja-win$arch.zip"
+ $externalUrl = "https://github.com/ninja-build/ninja/releases/download/v$version/ninja-win$arch.zip"
+ $sha1 = "51bf1bac149ae1e3d1572fa9fa87d6431dbddc8b"
+ Break
+ }
+ x64 {
+ $arch = "amd64"
+ $version = "1.10.2"
+ $longPathFixed = $false
+ $zip = Get-DownloadLocation "ninja-$version-win-x86.zip"
+ # TODO: Fix this QTQAINFRA-6296
+ $internalUrl = "http://master.qt.io/development_releases/prebuilt/ninja/v$version/ninja-win-x86.zip"
+ $externalUrl = "\\ci-files01-hki.ci.qt.io\provisioning\ninja\ninja-$version-win-really-x86.zip"
+ $sha1 = "1a22ee9269df8ed69c4600d7ee4ccd8841bb99ca"
+ Break
+ }
+ default {
+ throw "Unknown architecture $cpu_arch"
+ }
+}
+Download $internalUrl $externalUrl $zip
+Verify-Checksum $zip $sha1
Extract-7Zip $zip C:\Utils\Ninja
Remove "$zip"
Add-Path "C:\Utils\Ninja"
-Write-Output "Ninja = 1.10.2" >> ~/versions.txt
+Write-Output "Ninja ($arch) = $version" >> ~/versions.txt
+if ( -Not $longPathFixed ) {
$manifest = @"
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
@@ -33,3 +59,5 @@ Invoke-MtCommand "C:\Program Files (x86)\Microsoft Visual Studio\2019\Profession
} else {
Invoke-MtCommand "C:\Program Files (x86)\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsall.bat" amd64 $manifest "C:\Utils\Ninja\ninja.exe"
}
+
+}
diff --git a/coin/provisioning/common/windows/nodejs.ps1 b/coin/provisioning/common/windows/nodejs.ps1
index 5e9b8a0c..3dc6ffe5 100644
--- a/coin/provisioning/common/windows/nodejs.ps1
+++ b/coin/provisioning/common/windows/nodejs.ps1
@@ -7,12 +7,27 @@
# Needed by QtWebengine
$version = "20.7.0"
-if (Is64BitWinHost) {
- $arch = "x64"
- $sha256 = "b3e5cbf8e247c75f9ddd235d49cfe40f25dde65bdd0eec4cefbca2805d80376b"
-} else {
- $arch = "x86"
- $sha256 = "d6a3c63a5ae71374c144a33c418ab96be497b08df0e9f51861a78127db03aeb5"
+$cpu_arch = Get-CpuArchitecture
+switch ($cpu_arch) {
+ arm64 {
+ $arch = "arm64"
+ $sha256 = "ab4b990c2c1d4a55d565813e7a2f71669dc4d1005faa47185d30bde4416975ab"
+ $version = "20.12.2" # TODO: ARM starts with newer, LTS
+ Break
+ }
+ x64 {
+ $arch = "x64"
+ $sha256 = "b3e5cbf8e247c75f9ddd235d49cfe40f25dde65bdd0eec4cefbca2805d80376b"
+ Break
+ }
+ x86 {
+ $arch = "x86"
+ $sha256 = "d6a3c63a5ae71374c144a33c418ab96be497b08df0e9f51861a78127db03aeb5"
+ Break
+ }
+ default {
+ throw "Unknown architecture $cpu_arch"
+ }
}
$package = "C:\Windows\temp\nodejs-$version.7z"
diff --git a/coin/provisioning/common/windows/openssl-arm64.ps1 b/coin/provisioning/common/windows/openssl-arm64.ps1
index 2a3de12d..16627039 100644
--- a/coin/provisioning/common/windows/openssl-arm64.ps1
+++ b/coin/provisioning/common/windows/openssl-arm64.ps1
@@ -35,10 +35,29 @@ Verify-Checksum $zip_package $sha1
Extract-7Zip $zip_package C:\
Remove $zip_package
-Set-EnvironmentVariable "OPENSSL_ROOT_DIR_x64_arm64" "$installFolder"
-Set-EnvironmentVariable "OPENSSL_CONF_x64_arm64" "$installFolder\bin\openssl.cfg"
-Set-EnvironmentVariable "OPENSSL_INCLUDE_x64_arm64" "$installFolder\include"
-Set-EnvironmentVariable "OPENSSL_LIB_x64_arm64" "$installFolder\lib"
+$cpu_arch = Get-CpuArchitecture
+switch ($cpu_arch) {
+ arm64 {
+ # For native arm64
+ Set-EnvironmentVariable "OPENSSL_ROOT_DIR_arm64" "$installFolder"
+ Set-EnvironmentVariable "OPENSSL_CONF_arm64" "$installFolder\bin\openssl.cfg"
+ Set-EnvironmentVariable "OPENSSL_INCLUDE_arm64" "$installFolder\include"
+ Set-EnvironmentVariable "OPENSSL_LIB_arm64" "$installFolder\lib"
+ Break
+ }
+ x64 {
+ # For cross-compiling x64_arm64
+ Set-EnvironmentVariable "OPENSSL_ROOT_DIR_x64_arm64" "$installFolder"
+ Set-EnvironmentVariable "OPENSSL_CONF_x64_arm64" "$installFolder\bin\openssl.cfg"
+ Set-EnvironmentVariable "OPENSSL_INCLUDE_x64_arm64" "$installFolder\include"
+ Set-EnvironmentVariable "OPENSSL_LIB_x64_arm64" "$installFolder\lib"
+ }
+ default {
+ throw "Unknown architecture $cpu_arch"
+ }
+}
+
+Prepend-Path "$installFolder\bin"
# Store version information to ~/versions.txt, which is used to print version information to provision log.
Write-Output "OpenSSL ARM= $version" >> ~/versions.txt
diff --git a/coin/provisioning/common/windows/python3.ps1 b/coin/provisioning/common/windows/python3.ps1
index a714da16..46f75d7c 100644
--- a/coin/provisioning/common/windows/python3.ps1
+++ b/coin/provisioning/common/windows/python3.ps1
@@ -16,13 +16,26 @@ param(
$package = "C:\Windows\temp\python-$version.exe"
# check bit version
-if ( $archVer -eq 64 ) {
- Write-Host "Installing 64 bit Python"
- $externalUrl = "https://www.python.org/ftp/python/$version/python-$version-amd64.exe"
- $internalUrl = "http://ci-files01-hki.ci.qt.io/input/windows/python-$version-amd64.exe"
-} else {
- $externalUrl = "https://www.python.org/ftp/python/$version/python-$version.exe"
- $internalUrl = "http://ci-files01-hki.ci.qt.io/input/windows/python-$version.exe"
+$cpu_arch = Get-CpuArchitecture
+Write-Host "Installing $cpu_arch Python"
+switch ($cpu_arch) {
+ arm64 {
+ $externalUrl = "https://www.python.org/ftp/python/$version/python-$version-arm64.exe"
+ $internalUrl = "http://ci-files01-hki.ci.qt.io/input/windows/python-$version-arm64.exe"
+ Break
+ }
+ x64 {
+ if ($archVer -eq "64") {
+ $externalUrl = "https://www.python.org/ftp/python/$version/python-$version-amd64.exe"
+ $internalUrl = "http://ci-files01-hki.ci.qt.io/input/windows/python-$version-amd64.exe"
+ } else {
+ $externalUrl = "https://www.python.org/ftp/python/$version/python-$version.exe"
+ $internalUrl = "http://ci-files01-hki.ci.qt.io/input/windows/python-$version.exe"
+ }
+ }
+ default {
+ throw "Unknown architecture $cpu_arch"
+ }
}
Write-Host "Fetching from URL..."
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/00-disable-netadapterlso.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/00-disable-netadapterlso.ps1
new file mode 100644
index 00000000..d20f1402
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/00-disable-netadapterlso.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\disable-netadapterlso.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/00-install-sevenzip.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/00-install-sevenzip.ps1
new file mode 100644
index 00000000..a9044256
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/00-install-sevenzip.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\install-sevenzip.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/01-allow-remote-desktop-access.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-allow-remote-desktop-access.ps1
new file mode 100644
index 00000000..af05e838
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-allow-remote-desktop-access.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\allow-remote-desktop-access.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/01-change-resolution.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-change-resolution.ps1
new file mode 100644
index 00000000..c1e73a62
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-change-resolution.ps1
@@ -0,0 +1,28 @@
+$x_value = "1280"
+$y_value = "800"
+
+Function ChangeResolution {
+ Param (
+ [string]$driver
+ )
+
+ $path = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration"
+
+ reg.exe ADD "$path\$driver\00\" /V PrimSurfSize.cx /T REG_dWORD /D $x_value /F
+ reg.exe ADD "$path\$driver\00\" /V PrimSurfSize.cy /T REG_dWORD /D $y_value /F
+ reg.exe ADD "$path\$driver\00\00" /V DwmClipBox.bottom /T REG_dWORD /D $y_value /F
+ reg.exe ADD "$path\$driver\00\00" /V DwmClipBox.right /T REG_dWORD /D $x_value /F
+ reg.exe ADD "$path\$driver\00\00" /V PrimSurfSize.cx /T REG_dWORD /D $x_value /F
+ reg.exe ADD "$path\$driver\00\00" /V PrimSurfSize.cy /T REG_dWORD /D $y_value /F
+ reg.exe ADD "$path\$driver\00\00" /V ActiveSize.cy /T REG_dWORD /D $y_value /F
+ reg.exe ADD "$path\$driver\00\00" /V ActiveSize.cx /T REG_dWORD /D $x_value /F
+
+}
+
+Write-Host "Changing the resolution to ${x_value}x${y_value}"
+ChangeResolution "MSBDD_NOEDID_1234_1111_00000000_00020000_0^E3701873EC28AFCFF631E725354CDC2D"
+ChangeResolution "MSBDD_NOEDID_15AD_0405_00000000_000F0000_0^C13AE38966E73205F75BFACA84EB83A5"
+ChangeResolution "MSBDD_RHT12340_2A_07DE_3A_1234_1111_00000000_00020000_0^EC6E4468E7627A114F1F86EA72F3C134"
+ChangeResolution "MSBDD_RHT12340_2A_07DE_3D_1234_1111_00000000_00010000_0^4189234F4C5A30C0FE2E08AED7E5F516"
+ChangeResolution "MSBDD_RHT12340_2A_07DE_3D_1234_1111_00000000_00020000_0^0E45B5CD7061674FC90A8064A6FE81F4"
+ChangeResolution "MSNILNOEDID_1414_008D_FFFFFFFF_FFFFFFFF_0^030B4FCE00727AC1593E5B6FD18648D6"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/01-disable-notifications.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-disable-notifications.ps1
new file mode 100644
index 00000000..ada20147
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-disable-notifications.ps1
@@ -0,0 +1,9 @@
+# Windows 'Notifications & actions'
+# Disable 'Get notifications from apps and other senders'
+reg.exe ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\PushNotifications" /V ToastEnabled /T REG_dWORD /D 0 /F
+
+# Disable 'Show me the Windows welcome experience after udpates and occasionally when I sign in to highlight what's new and suggested'
+reg.exe ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /V SubscribedContent-310093Enabled /T REG_dWORD /D 0 /F
+
+# Disable 'Get tips, tricks and suggestions as you use Windows'
+reg.exe ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /V SubscribedContent-338389Enabled /T REG_dWORD /D 0 /F
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/01-disable-runtimebroker.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-disable-runtimebroker.ps1
new file mode 100644
index 00000000..8ae8190d
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-disable-runtimebroker.ps1
@@ -0,0 +1,4 @@
+# Disable RunTime Broker
+# The RunTime Broker is a Windows system process, which helps to manage app permissions on your pc between Windows apps and ensures apps are behaving themselves.
+# Coordinates execution of background work for WinRT application. If this service is stopped or disabled, then background work might not be triggered.
+reg.exe ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TimeBrokerSvc" /V Start /T REG_dWORD /D 4 /F
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/01-disable-windows-telemetry.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-disable-windows-telemetry.ps1
new file mode 100644
index 00000000..3f5a75f4
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-disable-windows-telemetry.ps1
@@ -0,0 +1,7 @@
+# Disable Connected User Experiences and Telemetry service
+# The Connected User Experiences and Telemetry service enables features that support in-application and connected user experiences.
+# Additionally, this service manages the event driven collection and transmission of diagnostic and usage information
+# (used to improve the experience and quality of the Windows Platform) when the diagnostics and usage privacy option settings are enabled under Feedback and Diagnostics.
+reg.exe ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Data Collection" /V AllowTelemetry /T REG_dWORD /D 0 /F
+stop-service diagtrack
+set-service diagtrack -startuptype disabled
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/01-enable-guest-logon.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-enable-guest-logon.ps1
new file mode 100644
index 00000000..3cf989d3
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-enable-guest-logon.ps1
@@ -0,0 +1,2 @@
+# Allow SMB client guest logons to SMB server.
+reg.exe ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /V AllowInsecureGuestAuth /T REG_dWORD /D 1 /F
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/01-install_telegraf.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-install_telegraf.ps1
new file mode 100644
index 00000000..77fa8cbf
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-install_telegraf.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\install_telegraf.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/01-set-proxy.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-set-proxy.ps1
new file mode 100644
index 00000000..13b1ec60
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-set-proxy.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\set-proxy.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/02-disable-autoreboot.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/02-disable-autoreboot.ps1
new file mode 100644
index 00000000..73430b76
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/02-disable-autoreboot.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\disable-autoreboot.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/02-disable-sleep.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/02-disable-sleep.ps1
new file mode 100644
index 00000000..5bf811ef
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/02-disable-sleep.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\disable-sleep.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/03-nodejs.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/03-nodejs.ps1
new file mode 100644
index 00000000..6032e945
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/03-nodejs.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\nodejs.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/05-enable-devmode.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/05-enable-devmode.ps1
new file mode 100644
index 00000000..01e6f8b0
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/05-enable-devmode.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\win10-enable-devmode.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/05-wsearch-off.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/05-wsearch-off.ps1
new file mode 100644
index 00000000..eed6b734
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/05-wsearch-off.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\wsearch-off.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/06-longpath.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/06-longpath.ps1
new file mode 100644
index 00000000..6561d57b
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/06-longpath.ps1
@@ -0,0 +1,2 @@
+. "$PSScriptRoot\..\common\windows\longpath.ps1"
+
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/06-mesa_llvmpipe.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/06-mesa_llvmpipe.ps1
new file mode 100644
index 00000000..1b1a07e9
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/06-mesa_llvmpipe.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\mesa_llvmpipe.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/06-ninja.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/06-ninja.ps1
new file mode 100644
index 00000000..ba571a1e
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/06-ninja.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\ninja.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/08-install-git.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/08-install-git.ps1
new file mode 100644
index 00000000..38106de7
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/08-install-git.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\install-git.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/08-python3.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/08-python3.ps1
new file mode 100644
index 00000000..5ca36491
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/08-python3.ps1
@@ -0,0 +1,9 @@
+# Parameters:
+# - Arch 32/64
+# - installer sha1
+# - install target dir
+# - version
+# - Optional true/false if set as default with PYTHON3/PIP3_PATH variables, default false
+
+# Downloading https://www.python.org/ftp/python/3.12.3/python-3.12.3-arm64.exe
+. "$PSScriptRoot\..\common\windows\python3.ps1" 64 "a7fe973fd406c0db2b982d83e9feb30f8fde704f" "C:\Python312_64" "3.12.3" $true
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/09-install-openssh.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/09-install-openssh.ps1
new file mode 100644
index 00000000..9de844da
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/09-install-openssh.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\install-openssh.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/09-install-sed.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/09-install-sed.ps1
new file mode 100644
index 00000000..b3c8fded
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/09-install-sed.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\install-sed.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/09-openssl-arm64.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/09-openssl-arm64.ps1
new file mode 100644
index 00000000..c1bbf271
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/09-openssl-arm64.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\openssl-arm64.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/09-openssl.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/09-openssl.ps1
new file mode 100644
index 00000000..db3013e0
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/09-openssl.ps1
@@ -0,0 +1,4 @@
+# Windows ARM has own common script
+# - "$PSScriptRoot\..\common\windows\openssl-arm64.ps1"
+# - need to check should these be combined or excluded
+#. "$PSScriptRoot\..\common\windows\openssl.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/09-set-network-test-server.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/09-set-network-test-server.ps1
new file mode 100644
index 00000000..7918fabf
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/09-set-network-test-server.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\set-network-test-server.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/09-vulkansdk.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/09-vulkansdk.ps1
new file mode 100644
index 00000000..54a3d563
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/09-vulkansdk.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\vulkansdk.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/22-mqtt_broker.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/22-mqtt_broker.ps1
new file mode 100644
index 00000000..71deb0d4
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/22-mqtt_broker.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\mqtt_broker.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/23-winrtrunner.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/23-winrtrunner.ps1
new file mode 100644
index 00000000..078f862e
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/23-winrtrunner.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\winrtrunner.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/25-llvm-mingw.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/25-llvm-mingw.ps1
new file mode 100644
index 00000000..9ce91521
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/25-llvm-mingw.ps1
@@ -0,0 +1,20 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+. "$PSScriptRoot\..\common\windows\helpers.ps1"
+
+# This script installs LLVM-Mingw by mstorsjo
+# https://github.com/mstorsjo/llvm-mingw/releases/tag/20240320
+
+$zip = Get-DownloadLocation "llvm-mingw-20240320-ucrt-aarch64.zip"
+$url_cache = "http://ci-files01-hki.ci.qt.io/input/windows/llvm-mingw-20240320-ucrt-aarch64.zip"
+$url_official = "https://github.com/mstorsjo/llvm-mingw/releases/download/20240320/llvm-mingw-20240320-ucrt-aarch64.zip"
+
+Download $url_official $url_cache $zip
+Verify-Checksum $zip "1ea4870551a6aaf0d51332be1ea10ce776ee3b42"
+Extract-7Zip $zip C:\
+
+Rename-Item C:\llvm-mingw-20240320-ucrt-aarch64 C:\llvm-mingw
+
+Write-Output "llvm-mingw = 18.1.2" >> ~/versions.txt
+Remove-Item -Path $zip
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/29-libusb.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/29-libusb.ps1
new file mode 100644
index 00000000..6035912d
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/29-libusb.ps1
@@ -0,0 +1,3 @@
+
+
+. "$PSScriptRoot\..\common\windows\libusb.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/35-install-breakpad.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/35-install-breakpad.ps1
new file mode 100644
index 00000000..9360a326
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/35-install-breakpad.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\install-breakpad.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/36-install-gnuwin32.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/36-install-gnuwin32.ps1
new file mode 100644
index 00000000..0e2abbac
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/36-install-gnuwin32.ps1
@@ -0,0 +1,2 @@
+. "$PSScriptRoot\..\common\windows\install-gnuwin32.ps1"
+
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/60-jom.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/60-jom.ps1
new file mode 100644
index 00000000..b246ce25
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/60-jom.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\jom.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/70-cmake.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/70-cmake.ps1
new file mode 100644
index 00000000..73dc7bc2
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/70-cmake.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\cmake.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/85-disable_quickedit_powershell.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/85-disable_quickedit_powershell.ps1
new file mode 100644
index 00000000..547e15a8
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/85-disable_quickedit_powershell.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\disable-quickedit.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/90-3dstudio_3rdparty.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/90-3dstudio_3rdparty.ps1
new file mode 100644
index 00000000..114f52f9
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/90-3dstudio_3rdparty.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\3dstudio_3rdparty.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/90-install-notepad++.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/90-install-notepad++.ps1
new file mode 100644
index 00000000..455d92bf
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/90-install-notepad++.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\install-notepad++.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/90-install-stm32cubeprogrammer.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/90-install-stm32cubeprogrammer.ps1
new file mode 100644
index 00000000..25c2bb42
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/90-install-stm32cubeprogrammer.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\install-stm32cubeprogrammer.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/90-libusb.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/90-libusb.ps1
new file mode 100644
index 00000000..29a1cfa4
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/90-libusb.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\libusb.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/90-python-modules.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/90-python-modules.ps1
new file mode 100644
index 00000000..adf9e30b
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/90-python-modules.ps1
@@ -0,0 +1,5 @@
+. "$PSScriptRoot\..\common\windows\helpers.ps1"
+
+# Needed by packaging scripts
+$scriptsPath = [System.Environment]::GetEnvironmentVariable('PIP3_PATH', [System.EnvironmentVariableTarget]::Machine)
+Run-Executable "$scriptsPath\pip3.exe" "install bs4"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/96-disable-windows-module-installer.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/96-disable-windows-module-installer.ps1
new file mode 100644
index 00000000..fb8ec541
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/96-disable-windows-module-installer.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\disable-windows-module-installer.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/98-unset-proxy.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/98-unset-proxy.ps1
new file mode 100644
index 00000000..0c25a0fb
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/98-unset-proxy.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\unset-proxy.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/99-share-test-folders.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/99-share-test-folders.ps1
new file mode 100644
index 00000000..576fcfdc
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/99-share-test-folders.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\share-test-folders.ps1"
diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/99-version.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/99-version.ps1
new file mode 100644
index 00000000..36e498bc
--- /dev/null
+++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/99-version.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\windows\version.ps1"