Merge pull request #1769 from nikita-bykov/pipx-windows

[Windows] Add pipx and install yamllint through it
This commit is contained in:
Maxim Lobanov
2020-11-05 11:27:58 +03:00
committed by GitHub
11 changed files with 66 additions and 16 deletions

View File

@@ -0,0 +1,14 @@
# Set custom directorys for pipx
$env:PIPX_BIN_DIR = "${env:ProgramFiles(x86)}\pipx_bin"
$env:PIPX_HOME = "${env:ProgramFiles(x86)}\pipx"
# Install pipx
pip install pipx
# Set environment variables
Add-MachinePathItem "${env:PIPX_BIN_DIR}"
Set-SystemVariable -SystemVariable PIPX_BIN_DIR -Value $env:PIPX_BIN_DIR
Set-SystemVariable -SystemVariable PIPX_HOME -Value $env:PIPX_HOME
# Test pipx
Invoke-PesterTests -TestFile "Tools" -TestName "Pipx"

View File

@@ -0,0 +1,12 @@
$pipxToolset = (Get-ToolsetContent).pipx
foreach($tool in $pipxToolset) {
if ($tool.python) {
$pythonPath = (Get-Item -Path "${env:AGENT_TOOLSDIRECTORY}\Python\${tool.python}.*\x64\python-${tool.python}*").FullName
Write-Host "Install ${tool.package} into python ${tool.python}"
pipx install $tool.package --python $pythonPath
} else {
Write-Host "Install ${tool.package} into default python"
pipx install $tool.package
}
}
Invoke-PesterTests -TestFile "PipxPackages"

View File

@@ -1,3 +0,0 @@
pip install yamllint
Invoke-PesterTests -TestFile "Tools" -TestName "yamllint"

View File

@@ -292,3 +292,8 @@ function Get-ShellTarget {
function Get-YAMLLintVersion { function Get-YAMLLintVersion {
yamllint --version yamllint --version
} }
function Get-PipxVersion {
$pipxVersion = pipx --version
return "Pipx $pipxVersion"
}

View File

@@ -59,7 +59,8 @@ $markdown += New-MDList -Style Unordered -Lines @(
(Get-RubyGemsVersion), (Get-RubyGemsVersion),
(Get-HelmVersion), (Get-HelmVersion),
(Get-ComposerVersion), (Get-ComposerVersion),
(Get-NugetVersion) (Get-NugetVersion),
(Get-PipxVersion)
) )
$markdown += New-MDHeader "Project Management" -Level 3 $markdown += New-MDHeader "Project Management" -Level 3

View File

@@ -0,0 +1,7 @@
Describe "PipxPackages" {
$pipxToolset = (Get-ToolsetContent).pipx
$testCases = $pipxToolset | ForEach-Object { @{package = $_.package; cmd = $_.cmd} }
It "<package>" -TestCases $testCases {
"$cmd" | Should -ReturnZeroExitCode
}
}

View File

@@ -214,12 +214,6 @@ Describe "ServiceFabricSDK" {
} }
} }
Describe "yamllint" {
It "yamllint" {
"yamllint --version" | Should -ReturnZeroExitCode
}
}
Describe "Svn" { Describe "Svn" {
It "svn" { It "svn" {
"svn --version --quiet" | Should -ReturnZeroExitCode "svn --version --quiet" | Should -ReturnZeroExitCode
@@ -269,3 +263,9 @@ Describe "Zstd" {
"zstd -V" | Should -ReturnZeroExitCode "zstd -V" | Should -ReturnZeroExitCode
} }
} }
Describe "Pipx" {
It "Pipx" {
"pipx --version" | Should -ReturnZeroExitCode
}
}

View File

@@ -237,5 +237,11 @@
"mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016", "mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016",
"microsoft/aspnetcore-build:1.0-2.0" "microsoft/aspnetcore-build:1.0-2.0"
] ]
} },
"pipx": [
{
"package": "yamllint",
"cmd": "yamllint --version"
}
]
} }

View File

@@ -280,5 +280,11 @@
"mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019", "mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019",
"microsoft/aspnetcore-build:1.0-2.0" "microsoft/aspnetcore-build:1.0-2.0"
] ]
} },
"pipx": [
{
"package": "yamllint",
"cmd": "yamllint --version"
}
]
} }

View File

@@ -235,8 +235,9 @@
"{{ template_dir }}/scripts/Installers/Install-PyPy.ps1", "{{ template_dir }}/scripts/Installers/Install-PyPy.ps1",
"{{ template_dir }}/scripts/Installers/Install-Toolset.ps1", "{{ template_dir }}/scripts/Installers/Install-Toolset.ps1",
"{{ template_dir }}/scripts/Installers/Configure-Toolset.ps1", "{{ template_dir }}/scripts/Installers/Configure-Toolset.ps1",
"{{ template_dir }}/scripts/Installers/Install-YAMLLint.ps1", "{{ template_dir }}/scripts/Installers/Update-AndroidSDK.ps1",
"{{ template_dir }}/scripts/Installers/Update-AndroidSDK.ps1" "{{ template_dir }}/scripts/Installers/Install-Pipx.ps1",
"{{ template_dir }}/scripts/Installers/Install-PipxPackages.ps1"
] ]
}, },
{ {

View File

@@ -249,9 +249,10 @@
"{{ template_dir }}/scripts/Installers/Install-PyPy.ps1", "{{ template_dir }}/scripts/Installers/Install-PyPy.ps1",
"{{ template_dir }}/scripts/Installers/Install-Toolset.ps1", "{{ template_dir }}/scripts/Installers/Install-Toolset.ps1",
"{{ template_dir }}/scripts/Installers/Configure-Toolset.ps1", "{{ template_dir }}/scripts/Installers/Configure-Toolset.ps1",
"{{ template_dir }}/scripts/Installers/Install-YAMLLint.ps1",
"{{ template_dir }}/scripts/Installers/Update-AndroidSDK.ps1", "{{ template_dir }}/scripts/Installers/Update-AndroidSDK.ps1",
"{{ template_dir }}/scripts/Installers/Install-AzureModules.ps1" "{{ template_dir }}/scripts/Installers/Install-AzureModules.ps1",
"{{ template_dir }}/scripts/Installers/Install-Pipx.ps1",
"{{ template_dir }}/scripts/Installers/Install-PipxPackages.ps1"
] ]
}, },
{ {