[windows] introduce dedicated PowerShell configuration step (#8453)

* windows: implement separate step for configuring Powershell

* windows: refactor PyPy checksum validation

PyPy checksum validation uses PowerHTML module which is now available
as a part of powershell profile

* reformat

* Update images/win/scripts/Installers/Configure-PowerShell.ps1

Co-authored-by: Vasilii Polikarpov <126792224+vpolikarpov-akvelon@users.noreply.github.com>

---------

Co-authored-by: Vasilii Polikarpov <126792224+vpolikarpov-akvelon@users.noreply.github.com>
This commit is contained in:
ilia-shipitsin
2023-10-06 12:03:28 +02:00
committed by GitHub
parent cbe9acb6bc
commit 2925b3ae95
5 changed files with 32 additions and 9 deletions

View File

@@ -0,0 +1,29 @@
################################################################################
## File: Configure-Powershell.ps1
## Desc: Manage PowerShell configuration
################################################################################
#region System
Write-Host "Setup PowerShellGet"
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
# Specifies the installation policy
Set-PSRepository -InstallationPolicy Trusted -Name PSGallery
#endregion
#region User (current user, image generation only)
if (-not (Test-Path $profile)) {
New-Item $profile -ItemType File -Force
}
@"
if ( -not(Get-Module -ListAvailable -Name PowerHTML)) {
Install-Module PowerHTML -Scope CurrentUser
}
if ( -not(Get-Module -Name PowerHTML)) {
Import-Module PowerHTML
}
"@ | Add-Content -Path $profile -Force
#endregion

View File

@@ -1,12 +1,6 @@
# Set TLS1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor "Tls12"
Write-Host "Setup PowerShellGet"
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
# Specifies the installation policy
Set-PSRepository -InstallationPolicy Trusted -Name PSGallery
# Install PowerShell modules
$modules = (Get-ToolsetContent).powershellModules
@@ -29,4 +23,4 @@ foreach($module in $modules)
}
Import-Module Pester
Invoke-PesterTests -TestFile "PowerShellModules" -TestName "PowerShellModules"
Invoke-PesterTests -TestFile "PowerShellModules" -TestName "PowerShellModules"

View File

@@ -84,8 +84,6 @@ $toolsetVersions = Get-ToolsetContent | Select-Object -ExpandProperty toolcache
$pypyVersions = Invoke-RestMethod https://downloads.python.org/pypy/versions.json
# required for html parsing
Install-Module PowerHTML -Scope CurrentUser
Import-Module PowerHTML
$checksums = (Invoke-RestMethod -Uri 'https://www.pypy.org/checksums.html' | ConvertFrom-HTML).SelectNodes('//*[@id="content"]/article/div/pre')
Write-Host "Starting installation PyPy..."

View File

@@ -150,6 +150,7 @@
],
"scripts": [
"{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1",
"{{ template_dir }}/scripts/Installers/Configure-PowerShell.ps1",
"{{ template_dir }}/scripts/Installers/Install-PowerShellModules.ps1",
"{{ template_dir }}/scripts/Installers/Install-WindowsFeatures.ps1",
"{{ template_dir }}/scripts/Installers/Install-Choco.ps1",

View File

@@ -134,6 +134,7 @@
],
"scripts": [
"{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1",
"{{ template_dir }}/scripts/Installers/Configure-PowerShell.ps1",
"{{ template_dir }}/scripts/Installers/Install-PowerShellModules.ps1",
"{{ template_dir }}/scripts/Installers/Install-WindowsFeatures.ps1",
"{{ template_dir }}/scripts/Installers/Install-Choco.ps1",