mirror of
https://github.com/actions/runner-images.git
synced 2025-12-26 03:17:54 +08:00
[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:
29
images/win/scripts/Installers/Configure-PowerShell.ps1
Normal file
29
images/win/scripts/Installers/Configure-PowerShell.ps1
Normal 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
|
||||
@@ -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"
|
||||
|
||||
@@ -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..."
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user