mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-02-20 18:20:27 +01:00
Compare commits
1 Commits
async-cpp-
...
leilzh/tes
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9bd0e32382 |
72
.pipelines/EnsureGitInstalled.ps1
Normal file
72
.pipelines/EnsureGitInstalled.ps1
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
param(
|
||||||
|
[string]$Architecture = "x64"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Check if Git is installed
|
||||||
|
function Test-GitInstalled {
|
||||||
|
try {
|
||||||
|
git --version > $null 2>&1
|
||||||
|
return $true
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
return $false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Install Git
|
||||||
|
function Install-Git {
|
||||||
|
Write-Host "##[section]Installing Git for Windows ($Architecture)..."
|
||||||
|
|
||||||
|
$gitInstallerUrl = if ($Architecture.ToLower() -eq "arm64") {
|
||||||
|
"https://github.com/git-for-windows/git/releases/latest/download/Git-2.50.1-arm64.exe"
|
||||||
|
} else {
|
||||||
|
"https://github.com/git-for-windows/git/releases/latest/download/Git-2.50.1-64-bit.exe"
|
||||||
|
}
|
||||||
|
|
||||||
|
$installerPath = "$env:TEMP\GitInstaller.exe"
|
||||||
|
|
||||||
|
try {
|
||||||
|
Write-Host "##[command]Downloading Git installer..."
|
||||||
|
Invoke-WebRequest -Uri $gitInstallerUrl -OutFile $installerPath -UseBasicParsing
|
||||||
|
|
||||||
|
Write-Host "##[command]Installing Git silently..."
|
||||||
|
Start-Process -FilePath $installerPath -ArgumentList "/VERYSILENT", "/NORESTART" -Wait
|
||||||
|
|
||||||
|
# Clean up
|
||||||
|
Remove-Item $installerPath -Force -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
# Refresh PATH
|
||||||
|
$env:Path = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")
|
||||||
|
|
||||||
|
return $true
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Host "##[error]Failed to install Git: $($_.Exception.Message)"
|
||||||
|
return $false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main logic
|
||||||
|
Write-Host "##[section]Checking Git installation..."
|
||||||
|
|
||||||
|
if (Test-GitInstalled) {
|
||||||
|
Write-Host "##[section]Git is already installed"
|
||||||
|
} else {
|
||||||
|
Write-Host "##[warning]Git not found, installing..."
|
||||||
|
|
||||||
|
if (Install-Git) {
|
||||||
|
Start-Sleep -Seconds 3
|
||||||
|
|
||||||
|
if (Test-GitInstalled) {
|
||||||
|
Write-Host "##[section]Git installation successful"
|
||||||
|
} else {
|
||||||
|
Write-Host "##[error]Git installation failed"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Write-Host "##[error]Failed to install Git"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "##[section]Git setup completed successfully"
|
||||||
@@ -109,12 +109,9 @@ jobs:
|
|||||||
sdk: true
|
sdk: true
|
||||||
version: '9.0'
|
version: '9.0'
|
||||||
|
|
||||||
- task: VisualStudioTestPlatformInstaller@1
|
- template: steps-install-test-dependencies.yml
|
||||||
displayName: Ensure VSTest Platform
|
parameters:
|
||||||
|
platform: ${{ parameters.platform }}
|
||||||
- pwsh: |-
|
|
||||||
& '$(build.sourcesdirectory)\.pipelines\InstallWinAppDriver.ps1'
|
|
||||||
displayName: Download and install WinAppDriver
|
|
||||||
|
|
||||||
- ${{ if not(variables.isBuildNow) }}:
|
- ${{ if not(variables.isBuildNow) }}:
|
||||||
- task: DownloadPipelineArtifact@2
|
- task: DownloadPipelineArtifact@2
|
||||||
|
|||||||
49
.pipelines/v2/templates/steps-install-test-dependencies.yml
Normal file
49
.pipelines/v2/templates/steps-install-test-dependencies.yml
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
parameters:
|
||||||
|
- name: platform
|
||||||
|
type: string
|
||||||
|
default: "x64"
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- task: NuGetToolInstaller@1
|
||||||
|
displayName: Install NuGet Tool
|
||||||
|
|
||||||
|
- task: NuGetCommand@2
|
||||||
|
displayName: Install Microsoft.UI.Xaml 2.8.7
|
||||||
|
inputs:
|
||||||
|
command: 'custom'
|
||||||
|
arguments: 'install Microsoft.UI.Xaml -Version 2.8.7 -OutputDirectory $(Agent.TempDirectory)\packages -NonInteractive'
|
||||||
|
|
||||||
|
- powershell: |-
|
||||||
|
$arch = if ('${{ parameters.platform }}' -eq 'ARM64') { 'arm64' } else { 'x64' }
|
||||||
|
& '$(build.sourcesdirectory)\.pipelines\EnsureGitInstalled.ps1' -Architecture $arch
|
||||||
|
displayName: "Ensure Git is installed"
|
||||||
|
|
||||||
|
- pwsh: |-
|
||||||
|
# Check if winget is available
|
||||||
|
try {
|
||||||
|
winget --version > $null 2>&1
|
||||||
|
Write-Host "##[section]Winget is already installed"
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Host "##[section]Installing Winget..."
|
||||||
|
|
||||||
|
# Download and install App Installer (which includes winget)
|
||||||
|
$wingetUrl = "https://aka.ms/getwinget"
|
||||||
|
$installerPath = "$env:TEMP\Microsoft.DesktopAppInstaller.msixbundle"
|
||||||
|
|
||||||
|
Invoke-WebRequest -Uri $wingetUrl -OutFile $installerPath -UseBasicParsing
|
||||||
|
Add-AppxPackage -Path $installerPath
|
||||||
|
|
||||||
|
# Clean up
|
||||||
|
Remove-Item $installerPath -Force -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
Write-Host "##[section]Winget installation completed"
|
||||||
|
}
|
||||||
|
displayName: "Ensure Winget is installed"
|
||||||
|
|
||||||
|
- task: VisualStudioTestPlatformInstaller@1
|
||||||
|
displayName: Ensure VSTest Platform
|
||||||
|
|
||||||
|
- powershell: |-
|
||||||
|
& '$(build.sourcesdirectory)\.pipelines\InstallWinAppDriver.ps1'
|
||||||
|
displayName: Download and install WinAppDriver
|
||||||
Reference in New Issue
Block a user